Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Flutter — cross-platform vývoj v praxi

24. 05. 2021 3 min čtení CORE SYSTEMSdevelopment

Flutter 2 přinesl stable podporu webu a desktopových platforem. Po třech projektech v produkci — fintech aplikace, interní firemní portál a B2C e-commerce — máme jasný názor na to, kde Flutter exceluje a kde stále naráží na limity.

Proč Flutter a ne React Native

Na začátku 2021 jsme stáli před rozhodnutím: React Native nebo Flutter pro nový mobilní projekt. React Native má větší ekosystém a JavaScript vývojáře seženete snáz. Ale Flutter nás přesvědčil třemi věcmi:

  • Výkon: Flutter kompiluje do nativního ARM kódu přes AOT (Ahead-of-Time) compilation. Žádný JavaScript bridge. Animace běží na 60 FPS i na low-end zařízeních.
  • Konzistence UI: Flutter renderuje vlastní pixely přes Skia engine — UI vypadá identicky na iOS i Androidu. Žádné překvapení při testování na druhé platformě.
  • Hot reload: Sub-sekundový hot reload dramaticky zrychluje iteraci. Změníte widget, uvidíte výsledek okamžitě. Oproti native vývoji je to game changer.

Dart — jazyk, který překvapí

Největší obava před adopcí Flutteru byl Dart. Nikdo z týmu ho neznal. Realita? Vývojář se silným Java/Kotlin nebo TypeScript backgroundem je produktivní za 2-3 dny. Dart je čistý, typovaný jazyk s moderními features — null safety (od Dart 2.12), async/await, extension methods.

Sound null safety, zavedené v březnu 2021, je obrovský krok vpřed. Null reference exceptions jsou v Dartu minulostí — kompilátor vás donutí ošetřit nullable typy. Po letech NullPointerException v Javě je to osvobození.

Architektura — state management

Flutter nabízí desítky přístupů ke state managementu. Po experimentování jsme se ustálili na BLoC (Business Logic Component) pattern s knihovnou flutter_bloc. Proč:

  • Testovatelnost: BLoC je čistý Dart — unit testy bez Flutter dependencies
  • Oddělení UI a logiky: Widgety jen zobrazují stav, BLoC řeší business logiku
  • Škálovatelnost: Pattern funguje pro malé i velké aplikace
  • Debugging: Bloc Observer loguje každý state change — skvělé pro debugging

Pro menší projekty (prototypy, interní nástroje) používáme Provider nebo Riverpod — méně boilerplate, rychlejší start.

Výkon v praxi

Fintech aplikace s komplexními grafy, real-time daty a animacemi. Výkonnostní metriky na Pixel 4a (mid-range zařízení):

  • Cold start: 1.2s (srovnatelné s nativní Kotlin aplikací)
  • Frame rate: stabilních 60 FPS i při scrollování složitých listů
  • APK size: 12 MB (release build s tree shaking)
  • RAM: ~80 MB v idle, ~120 MB při aktivním použití

Jediný výkonnostní problém jsme zaznamenali u webové verze — Flutter web v roce 2021 je stále pomalejší než nativní webová aplikace. Pro interní nástroje OK, pro public-facing web bychom ho nedoporučili.

Ekosystém a packages

pub.dev má přes 20 000 packages. Kvalita je různá, ale klíčové knihovny jsou solidní:

  • dio pro HTTP — interceptory, retry, cancel tokens
  • freezed pro immutable data classes — generuje ==, hashCode, copyWith
  • hive pro lokální storage — rychlý key-value store
  • firebase_* pro backend — auth, Firestore, push notifications

Problém nastává u platform-specific pluginů. Pokud potřebujete Bluetooth, NFC nebo pokročilou kamerovou funkcionalitu, pluginy existují, ale kvalita a údržba kolísá. Občas musíte psát platform channels sami.

Kdy Flutter nepoužít

Flutter není univerzální řešení. Nedoporučujeme ho pro:

  • Heavily platform-specific apps: ARKit/ARCore integrace, Widgets na iOS, Watch apps
  • Public-facing web: Flutter web nemá SEO, accessibility je omezená, bundle size je velký
  • Existující nativní codebase: Migrace z Kotlin/Swift na Flutter zřídka dává smysl
  • Jednorázové prototypy: Pokud cílíte jen na jednu platformu, nativní vývoj je efektivnější

Flutter v roce 2021 — zralý pro produkci

Flutter 2 je production-ready framework pro mobilní vývoj. Pokud potřebujete jednu codebase pro iOS i Android s nativním výkonem, je to nejlepší volba na trhu. Web a desktop support jsou bonus, ale ještě ne na úrovni mobilní části. Největší přínos? Jeden tým, jeden jazyk, dvě platformy — a ušetřených 30-40 % nákladů oproti dvěma nativním týmům.

fluttermobilecross-platformdart