Začali jsme programovat ve flutteru a naše aplikace jsou teď rychlejší a příjemnější. Se stejnými lidmi, náklady i časem na vývoj.
Flutter je platforma pro vývoj mobilních aplikací, která umožní jednou napsaný program spustit na Android i iOS. Odpadá tedy nutnost psaní dvou stejných aplikací jako v případě nativního vývoje. V porovnání s hybridním přístupem, který toto umožňuje také, dosahuje Flutter vyšší rychlosti zobrazení a příjemnějšího uživatelského rozhraní. Platformu představila společnost Google v roce 2015, od té doby si prošla obdobím svých dětských nemocí a dnes je použitelná pro seriózní vývoj. V létě 2022 dosáhla na 16. místo popularity na Gitstar (https://gitstar-ranking.com/repositories) , což dokazuje její popularitu mezi vývojáři. Pro provozovatele to znamená jakýsi příslib, že aplikace ve Flutteru budou dlouho podporovány.
Pro naše agenturní klienty je vždy důležité, jak je aplikace svižná, jaký má celkový uživatelský feeling. Vývoj ve Flutteru zde nabízí rychlost nativu za cenu hybridu. Pro aplikace, které mají podtrhnout prestiž podnikání, je to důležité. Požadavkem agenturních zákazníků je často také dostát grafickému návrhu na pixel přesně, tak říkajíc „pixel perfect“. UI je možné realizovat za použití vektorové grafiky. Vykreslování řeší vlastní grafický engine a není rozdíl mezi zařízeními různých verzí nebo operačních systémů.
Vývojářů se zkušenostmi je v porovnání s nativním či hybridním vývojem zatím méně, avšak platformu Flutter a jazyk DART se lze naučit relativně rychle. Naše vývojáře to hodně bavilo. Dokumentace je dostatek i komunita dostatečně veliká. Oproti hybridnímu vývoji je zde třeba mít základy nativu, protože část vývojového cyklu se odehrává v této části. A tak je třeba základně ovládat XCode a Andorid Studio, plus je mít nainstalované.
Z pohledu obchodu a projektového řízení byly na začátku otázky – jak se změní výkonnost týmu, jaká rizika zde hrozí. Zatím to vypadá, že rychlost vývoje řádově odpovídá hybridnímu přístupu. V porovnání s náročností nativního vývoje je 4x rychlejší (vývoj aplikace pro jednu platformu je 2x rychlejší, krát dvě platformy). Rizika? Na počátku jsme se setkávali s potížemi na iOS, kde bylo poznat, že primární platformou je Android, avšak v novějších verzích už není žádný rozdíl poznat.
Subjektivně se zatím zdá, že při vývoji ve Flutteru klesl počet chyb spojených s rozdílem zařízení a velikostí displejů. Pokud jde o podporu starších zařízení, nezaznamenali jsme žádné omezení. Velikost aplikace narostla o cca 10MB. A to nejdůležitější – schválení na Apple bylo zatím vždy bez problémů.
Z pohledu vývojáře – v bodech
Jazyk DART:
- bylo třeba se ho naučit, ale šlo to dobře a rychle
- knihovny obsahují mnoho užitečných funkcí, např. pro práci s kolekcemi, převodem typů
- je vidět, že je určný pro mobilní aplikace, nenese si s sebou historické dědictví jako javascript
Struktura aplikace:
- dartová část se kompiluje do nativní
- je třeba ovládat nativní vývoj
- dá se použít VS Code, není třeba používat X code ani android studio
- existuje velké množství pluginů. Ty mají dobrou dokumentaci, kvalita je ok.
UI/UX:
- UI se tvoří programově, žádný story board nebo xml
- kódování je rychlejší, méně chyb
- ve srovnání s CSS není třeba řešit různé jiné prohlížeče
- optimalizované překreslování, opravdu se překreslují pouze změněné části obrazovky
Knihovny komponent
- velké množství
- zrychluje vývoj
- komponenty je možné stáhnout a upravovat
Ostatní
- build pro web je nepoužitelný
- v porovnání s vývojem pro android – je to přehlednější a logičtější
Závěr
Přechod na vývoj mobilních aplikací ve Flutteru se ukázal jako jednoznačně dobrý krok vpřed. Škoda, že jsme to neudělali dříve. I když je to otázka, protože byly nevyřešené potíže s podporou na iOS.