Flutter Flash News (09/2024)
 Flutter Flash News (09/2024)
 Flutter Flash News (09/2024)

Flutter Flash News (09/2024)

Flutter

Flutter

Flutter

V zářijovém vydání bleskových novinek si posvítíme na problematickou tvorbu formulářů ve Flutteru a horlivou debatu kolem Builder patternu.

19. 9. 2024

Builder pattern je anti-pattern?

Matt Caroll z FlutterBounty hunters vydal článek s neotřelou myšlenkou „Builder pattern nepatří do Widget stromu”. A my v Netglade částečně souhlasíme.

V předchozích Flutter Flash News jsme zmínili „Tailwind” pro Flutter – Fluttermix, který na Builder patternu staví. Faktem je, že tvoření Flutter widget tree tímto způsobem se stává méně přehledným, jelikož není dané jasné pořadí widgetů.

Stejně tak musíme přiznat, že i my občas rádi využijeme „builder” pattern, třeba skrz package flutter_animate.

Celý článek naleznete zde.

IDE budou opět chytřejší

Našeho vývojáře Honzu Bittnera přestalo bavit, že IDE nezvládne automatické odebrání widgetů u Column/Row anebo Sliverů. A proto se, jak se říká, „zdravě naštval” a do Dart SDK vytvořil Pull Request, který tuto podporu přidává GitHub - Pull Reguest #56638: feat: make remove widget work for slivers.

Snad se této úpravy co nejdříve dočkáme ve stable verzi. 🤞

Je const opravdu performance boost?

Nedávno se otevřelo zajímavé issue, které navrhuje odebrat lint pravidla na const z výchozího balíku pravidel. Proč? Const totiž nepřidává nijak významné zrychlení aplikace, a naopak velmi často vývojáře při vývoji brzdí.

Určitě jste také zažili situaci, kdy upravujete widget a půlka IDE najednou svítí červeně, protože některý nadřazený widget byl const a už být nemůže.

Osobně nám tyto linty příliš nevadí, zejména díky DCM a jeho automatickému opravování. Issue budu nicméně rád sledovat a jsem zvědavý, kam se diskuze posune.

Tvorba formulářů ve Flutteru je utrpení?

Jestli je něco ve Flutter zdlouhavé a ne moc příjemné, je to tvorba formulářů. A to formulář nemusí být nikterak složitý. Stačí požadavek na překlady chyb nebo validace inputu na základě vstupu z jiného.

Je třeba vytvořit Statefull widget, pro každý TextEditingController, a nezapomenout na dispose(). Můžeme si dopomoct i skrze flutter_hooks. Ale i s těmi narazíme. Brzy zjistíme, že potřebujeme některé inputy rozumně sdílet nebo minimálně jejich validace.

A nejsme v tom sami. Nedávno na Twitteru (X, pro nás navždy Twitter 😌) sdílel uživatel Casey Rogers tento tweet.

Diskuze pod příspěvkem poukazuje na podstatu problému – „vanilla” cesta není pohodlná a lidé hledají alternativy.

V Netglade už delší dobu používáme vlastní knihovnu na tvorbu formulářů – glade_forms. Obsahuje podporu fluent api pro definici validací, závislé validátory, překlady a spoustu dalšího.

Jako vždy budeme rádi, když jí dáte šanci. 😉

Tak na viděnou u halloweenského vydání. 🎃