Nie jest tajemnicą, że jakiś czas temu zainteresowaliśmy się w JCD NativeScriptem. W ramach cyklu artykułów opowiadamy o tym na naszym blogu (na przykład tutaj). Dlatego jednym z najbardziej wyczekiwanych przez nas wątków Angular Poland Conference był właśnie {N}, a zwłaszcza wykorzystanie Schematics do migracji aplikacji webowych do mobilnych i natywnych aplikacji oraz zapowiedź wprowadzenia migracji w odwrotną stronę.
Koncepcja dodania w pełni natywnej aplikacji do już gotowej aplikacji webowej, opisana przez
Sebastiana Witalca, wygląda bardzo obiecująco pod względem wielokrotnego wykorzystania kodu. Doświadczyliśmy tego podczas pracy nad aplikacją Flowboard (co opiszemy niebawem w oddzielnym case study), gdzie web był zrobiony w starszej technologii AngularJS, a mimo to wiele kodu można było odzyskać i dostosować na potrzeby aplikacji mobilnej. Jak opowiadał podczas prelekcji Sebastian - wspomniane schematics jeszcze bardziej to ułatwiają.
Kolejny temat - generyczne i mapowane typy w TypeScript’cie oraz ciekawe zastosowania typeof i keyof poruszył
Todd Motto. Temat wart zgłębienia ze względu na swoją elastyczność i możliwość tworzenia bardziej ogólnych fragmentów kodu, który można stosować w różnych kontekstach.
Prelekcja szefa 7N,
Jeppe Hedaa o mierzeniu wydajności zespołu, wprowadzająca matematyczne podejście do obliczenia “koni mechanicznych” firmy deweloperskiej przybliżyła inspirujące i na pewno warte głębszego przeanalizowania spojrzenie na zarządzanie firmą IT. Jego książka “Nucleon: The Missing Formula That Measures Your IT Development Team's Performance” to kolejna pozycja, która trafia na listę “must read”!
Martin Sonnenholzer opowiedział o wykorzystaniu customowych strategii doładowania modułów z wykorzystaniem Łańcucha Markova. Wszystkim Angularowcom znana jest koncepcja lazy loadingu modułów w celu ograniczenia czasu uruchomienia aplikacji. Zaproponowane rozwiązanie pozwala oszacować, który moduł doładować w tle, jeszcze zanim użytkownik o niego poprosi klikając w link.
Spośród wszystkich poruszonych tematów pojawiło się kilka takich, które zainspirowały nas szczególnie i postanowiliśmy wdrożyć je “od zaraz” do codziennej pracy:
- Po prezentacii Christoffera Noringa: dalszy rozwój Schematics; tworzenie własnych procesów modyfikacji struktury plików, lub samej zawartości plików. Pozwala to na dowolne rozszerzanie Angularowego CLI.
- Po prezentacji Michaela Hladky’ego: zarządzanie stanami w aplikacjach; otoczenie całej aplikacji warstwą danych, oznaczające zmniejszenie złożoności komponentów i łatwiejsze zmiany w strukturze pobierania danych.
- Po prezentacji Aarona Frosta: Prettier i integracja z WebStormem; wspólny styleguide kodu dla zespołu, wspólne, automatyczne formatowanie tekstu przy każdym commitcie. Podpowiedź od Aarona - aby wdrożyć Prettier do istniejącego już projektu podpiętego do systemu kontroli wersji najlepiej wykonać jeden duży commit z poprawkami, zamiast modyfikacji plików nad którymi pracujemy - zmiana 1 linijki wyglądałaby przez jego formatowanie w commicie na zmianę całego pliku.
- Po prezentacji Tomasza Borowskiego: UnitTesting i mockowanie dependencji; Stanowczo warto podczas tworzenia komponentów mieć na uwadze ograniczenie ilości zależności .
- Po prezentacji Macieja Tredera: wykorzystanie operatora takeUntil w pracy z biblioteką RxJS , do zamknięcia na raz wszystkich subskrypcji - świetny tip na zebranie wszystkich unsubscribe w jedno miejsce!
- Po prezentacji Schmueli Jacobs: komponenty ładowane dynamicznie ze specjalnego serwisu; to koncepcja, którą stosowaliśmy w dynamicznych formularzach w Flowboard, rozwinięta jeszcze dalej - wyodrębnienie dynamicznych komponentów do modułu będącego pluginem dla projektu.
Inspirujące tematy do dalszego zgłębienia:
- Nowe CLI Angulara, pozwalające na tworzenie bibliotek komponentów - interesujący temat szczególnie w większych projektach z współdzieloną bazą kodu (David Müllerchen)
- Dobra integracja Angulara z PWA - dostępne z poziomu CLI (szczególnie przydatne w połączeniu z NativeScriptem - pozwala na tworzenie wszystkich popularnych obecnie rodzajów aplikacji). Niestety nadal rozczarowuje wsparcie PWA przez przeglądarki Internetowe. Safari nie wspiera praktycznie żadnych dodatkowych funkcjonalności; Chrome i Mozilla nie wspierają tych samych funkcji. Koncepcja jest jednak ciekawa ze względu na swoją progresywność - użytkownik ze słabym wsparciem PWA otrzymuje pełnowartościowy produkt; zmieniając urządzenie dostaje bogatsze doświadczenie w zależności od dostępnych usług. Niestety nie pozwala to na kompleksowe i kompletnie zaprojektowane doświadczenie z produktem, stawiając PWA w roli ciekawego, ale jednak dodatku. (Simona Cotin)
- Odpalanie aplikacji Angulara na mikroprocesorach w IOT, bliskie memu sercu. Swoją zabawę z JS zacząłem od aplikacji w NodeJS na Raspberry Pi (Maciej Czerwiakowski)
- Casestudy customowego serwisu do dynamicznych tłumaczeń (Rafał Brzoska i Łukasz ‘Max’ Kokoszka)
Choć historia, jaką przebył Angular jest fascynująca i inspirująca, jeszcze bardziej ucieszyły nas zapowiedzi dalszych ulepszeń - tych w Angular 7 jak i premiery kolejnych wersji. Po prezentacji
Matiasa Niemela i
Radoslava Kirova czekamy zwłaszcza na rozwój Animacji w Angularze jako pipe animujący zmiany klas, bez użycia keyframes oraz ogłoszenie Angular Labs do wczesnego dostępu do najnowszych rozwiązań jeszcze w fazie testów.
Tyle na dziś. Śledźcie koniecznie dalszy rozwój tego frameworku - na przykład na
oficjalnej stronie Angulara i polskiej
grupie angularowców. Jeśli zaś zaciekawił Was temat NativeScripta, zapraszamy do prowadzonej przez nas
grupy {N} Poland.
Autor: JCD
Od przeszło dekady konsekwentnie przekształcamy zaawansowane idee w funkcjonalne aplikacje oraz internetowe platformy usługowe. Nasza działalność koncentruje się na głębokim zrozumieniu natury przedsiębiorstwa oraz kluczowych wymagań, które są fundamentem dla każdego przedsięwzięcia.
Stale łączymy metody kreatywne z systematycznym, badawczym podejściem, przekonani, że jedynie przez dogłębną analizę i zrozumienie specyfiki wyzwań, jesteśmy w stanie w pełni współpracować z naszymi klientami w celu kreowania innowacyjnych rozwiązań. Te rozwiązania nie tylko ulepszają doświadczenie użytkowników, ale również zapewniają naszym klientom strategiczną przewagę na rynku. Nasze procesy projektowe są zatem oparte na aktywnym słuchaniu, szczegółowej analizie i ciągłym dialogu z klientami. W ten sposób nieustannie pracujemy na rzecz tworzenia nie tylko technologii, ale także wartości, które wyznaczają nowe standardy w cyfrowym krajobrazie biznesu.