Zápisky z DartConf 2018
Publikováno: 19.2.2018
Máte ty plavky? Dobrá! Tak si je zase sundejte, protože teď se na dva dny zavřeme se 150 dalšími Dartisty do přednáškového sálu. Ale protože já to vydržel za vás, tak vy už nemusíte. Výcuc toho nejzajímavějšího za 5… 4… 3…
Dart 2.0
Středobodem celé akce byl Dart 2.0 a strong mode. Jinými slovy – Dart se čím dál víc vzdaluje nejmenovaným netypovým jazykům a plně se opírá do své typovosti (ahead-of-time kompilace, type inference, generické metody, FutureOr…) Fascinující přednášku o tom měl Leaf Petersen:
Z jakých předpokladů Dart vycházel, jakým směrem a proč se vyvíjí dál. Rozhodně zajímavé nahlédnutí do hlav lidí, kteří o vývoji Dartu rozhodují (např. jak při tom vytěžují zdrojové kódy existujících Dart projektů – data-driven language changes).
(Pozn. pro aktivní Dartisty: Ve výhledu je mimo jiné omezení int-u na 64 bitů a klíčová slova “new” a “const” budou nepovinná).
Motorem všech těchto změn je ale v tuto chvíli nepochybně…
Flutter
Pokud vás zatím Flutter minul, možná neuškodí trocha live-coding motivace:
Začnou s defaultním Hello worldem a pak do toho 20 minut buší, až z toho vypadne Yelp (no … skoro). Více se o něm můžete dozvědět v mém článku Flutter.io – mobilní aplikace, znovu a lépe.
Ve Flutteru jako takovém vlastně zásadní novinky nejsou, ale dotahují se takové věci jako je tooling:
Flutter inspector vám ukáže, co přesně se děje ve stromu vašich komponent. Ve spojení s hot-reloadem je to mocný nástroj na ladění složitějších layoutů.
Vůbec je celkem příjemné vidět, že počáteční nadšení z Flutteru se zvolna transformuje v hledání best practices a správné architektury. Já to z AngularDart sice neznám, ale Reactisti (a pro Flutter to platí taky) snad potvrdí, že správa stavu složitější aplikace není úplně intuitivní úloha a určité intelektuální úsilí to vyžaduje.
Správě stavu se proto věnovali hned dvě přednášky.
Pěkné shrnutí Flutter možností, které se v závěru dobere řešení pomocí Redux:
A ukázka toho, jak to řešil Google na vlastních projektech – především v kontextu sdílení kódu mezi AngularDart a Flutter projekty:
Tam se dobrali něčeho, čemu říkají “BLOC” – business logic component. To je platformově nezávislé, asynchronní zapouzdření stavu a související business logiky. Elegantní řešení, které se bude líbit všem OOPčkařům. Já se asi vydám spíš tím Reduxem – budu mít takový … standardnější pocit. Ale zajímavé jsou obě přednášky.
Ale nesmíme zapomenout ani na Angular Dart
Kde jsme a kam jdeme (např. analyzer plugin, který rozumí Angular šablonám a integruje se s IDE, nebo lepší tree-shaking):
Jak kompilovat Dart, aby běžel v node.js runtime:
Řízení Flutter animací pomocí Redux:
… nebo API usability:
(Chápete to? Oni tam mají člověka čistě na API UX a dělají na to user testing!