Flutter - Vývoj software a webových aplikací

Vývoj software a webových aplikací

Flutter

OBSAH

  1. Původ a vývoj
  2. Flutter vs. React Native
  3. Výhody a nevýhody
  4. Podpora a Google dokumentace

 

 

PŮVOD A VÝVOJ

Flutter, poprvé představen pod původním názvem “Sky” na Dart Developer Summitu v roce 2015 jedním ze svých zakladatelů Ericem Seidelem, je dnes jedním z nejnovějších zcela open source frameworků navržených pro realizaci multiplatformních aplikací.

Vzhledem ke svému nedávnému narození je historie Flutteru krátká, ale jistě zajímavá a úspěšná.

Ve své první verzi “Sky” byl Flutter navržen pro vytváření nativních aplikací a rozhraní pro Android.

Asi o několik let později výrobce Google oznámil Flutter Release Preview 2 během Keynote Google Days v Šanghaji. Jako opravdový zlom v tom, co všechno mohl Flutter představovat jako multiplatformní framework, bychom měli označit verzi Flutter 1.0, vydanou v roce 2018 během události Flutter Live.

Od té doby Flutter představuje to, co bylo od začátku cílem výrobce Google, což bylo realizovat Software Development Kit (SDK) pro vývoj vysoce kvalitních mobilních aplikací ve statisticky krátkém čase jak na operačních systémech iOS, tak na operačních systémech typu Android.

Díky neustálé aktualizaci od Googlu (obzvláště od vydání verze 1.9) a aktivní vývojářské komunitě vytvořené na podporu Flutteru se nyní Flutter může chlubit nejen významnou online podporou, ale i seznamem rozšířeným ve prospěch platforem podporovaných tímto frameworkem.

Během několika let se Flutter stal inovativním a efektivním řešením pro vývoj multiplatforem (nebo cross platforem) zaměřených na řešení mnoha problémů spojených s vývojem hybridních aplikací, jako jsou například nízký výkon a pomalý cyklus kompilace a výkonu.

 

FLUTTER VS REACT NATIVE

Multiplatformní řešení se nyní stala předmětem zájmu i vývojářů, kteří si musí vybrat a používat přístup a framework, který nejlépe vyhovuje potřebám finálního projektu, protože tento typ řešení získává značnou popularitu také mezi společnostmi a soukromníky, kteří stále více chtějí vědět, jaké se používají technologie a nástroje a které jsou nejvhodnější pro vznik daného projektu.

Vývoj nových jazyků a nástrojů zaměřených na zlepšení výkonu aplikací spolu s neustálým a stále rostoucím zájmem o vytváření stále inovativnějších a od sebe navzájem odlišných projektů vedl ke vzniku řady různých frameworků pro vývoj multiplatformních aplikací.

Multiplatformní aplikace se liší v řadě aspektů a funkcí od nativních aplikací, protože ty jsou programovány výhradně v programovacím jazyce specifickém pro každý systém, a proto každý systém potřebuje odlišný vývoj. Multiplatformní aplikace však nabízejí značnou výhodu vývoje jedné aplikace s jedním základním kódem platné pro více operačních systémů.

V tomto smyslu zaručuje vývoj multiplatformních aplikací nižší náklady a výrazně kratší dobu, i když má určitá omezení a nevýhody ve srovnání s úplně nativními aplikacemi.

Vytvoření multiplatformní aplikace má však dva různé přístupy.

V prvním případě je možné používat jazyk pro vývoj webových stránek a následně jej adaptovat v nativním kontejneru a vytvářet tak hybridní aplikace.

Ve druhém případě je možné použít nativní nástroje renderování jakož i nástroje, které fungují jako most mezi základním kódem a  nativními komponenty a vytvářejí tak multiplatformní aplikace díky použití příslušných frameworků, jako jsou například Flutter nebo React Native.

Ačkoliv se od sebe poměrně liší původem vývoje, strukturou kódu, výkonem používání, komunitou podpory a dalším, Flutter a React Native jsou dnes dvě hlavní multiplatformová řešení na trhu, která využívají nativní nástroje renderování.

React Native, uveřejněný ve své oficiální verzi v roce 2015 Facebookem se liší od Flutteru už svou základní strukturou a blíží se spíše k těm frameworkům, které mají vlastnosti a funkce pro vývoj webových aplikací spojených také s použitím ReactJS (knihovna Javascript), stejně jako s použitím jazyků HTML a CSS.

Flutter je na druhou stranu založen na programovacím jazyce, který společně s užíváním C a C++ umožňuje vývojářům používat specifické “balíčky vývoje pro aplikace” (SDK) jak pro iOS, tak pro Android. Tyto Software Development Kit jsou pozoruhodně efektivní pro generování vysokého výkonu z hlediska rychlosti a grafického přizpůsobení.

V tomto smyslu je Flutter prakticky nepřekonatelný z hlediska výkonu a to díky jedné důležité funkci, která umožňuje vývojářům provádět změny v kódu bez nutnosti změny nebo restartování stavu dané spuštěné aplikace. Jinými slovy, tato funkce umožňuje aplikacím přizpůsobit se dokonale jak současným operačním systémům, tak jejich předchozím verzím.

Kromě toho, že  mají jeden základní kód, chovají se aplikace vyvíjené ve Flutteru podobně jak na iOS, tak na Android a napodobují jejich nativní komponenty.

React Native však předpokládá použití komponentů, které jsou podobné nativním aplikacím pro iOS a Android. Aby se však mohla aplikace ukázat stejným způsobem na jakémkoliv typu operačního systému, tak jako v případě Flutteru, je tato funkce možná pouze prostřednictvím využití externí knihovny.

Pokud jde o podporu nabízenou těmito dvěma frameworky, jednou z největších výhod React Native je jeho poměrně velká komunita ve srovnání s Flutterem. Naopak Flutter nabízí bezpochyby větší a podrobnější dokumentaci.

React Native je tedy určitě všestrannější a univerzálnější framework. To nevylučuje, že modernější Flutter nemůže růst z hlediska komunity, nástrojů a knihoven, které momentálně představují jednu z mála nevýhod.

 

VÝHODY A NEVÝHODY

Ačkoliv byl Flutter nedávno vyvinut, byl již využíván mnoha důležitými společnostmi, které byly schopny realizovat a učinit výkon dané aplikace podobným aplikacím, které jsou zcela nativní, a přizpůsobit je jak na iOS, tak na Android.

Vytvoření mobilní aplikace s Flutterem nabízí značné a četné výhody, především co se týče kvality výkonu během používání a rekordní dobu vývoje.

Některé výhody:

  • Dynamický vývoj: funkce, která umožňuje vývojářům experimentovat a vidět okamžitě přímo ve spuštěné aplikaci změny provedené v kódu.
  • Omezené automatizované testy: možnost vytvářet jedinečný automatizovaný test pro každou jednotlivou aplikaci, protože je stejný v obou operačních systémech.
  • Jediná kódová základna: prostřednictvím Flutteru stačí napsat jediný základ kódu pro dva různé operační systémy.
  • Vysoce kvalitní výkon: aplikace vyvíjené ve Flutteru se dokonale přizpůsobí oběma operačním systémům a fungují plynule a rychle téměř na každé nativní aplikaci.
  • Uživatelsky přívětivý a vysoce přizpůsobitelný: Flutter je složen z mnoha grafických widgetů již hotových nebo přizpůsobených.
  • Flexibilní uživatelská rozhraní, která se velmi snadno implementují: ta samá aplikace bude vypadat stejně jak na dnešních operačních systémech, tak na starších verzích.
  • Perfektní kompatibilita se službami a nástroji Google: Flutter se dokonale propojí s jakýmkoliv nástrojem Google.
  • Widget: ve Flutteru existují různé typy widgetů, z nichž každá je vyvinuta pro konkrétní úkol.
  • Bohatá a podrobná oficiální dokumentace.

 

Flutter má také některé nevýhody, především co se týká chybějící integrace funkcí přímo závislých na nativních platformách nebo nedostatek některých nativních aplikací.

 

Některé nevýhody:

 

  • Velikost komunity: Flutter zatím nemá za sebou četnou komunitu, nevýhoda je také kvůli použití Dart, což je programovací jazyk, který je stále málo používaný ve srovnání s Javascriptem.
  • Malá podpora a knihovny ve srovnání s nativním vývojem: nevýhoda kvůli jeho nedávnému vývoji
  • Velikost aplikace: aplikace vyvinuté ve Flutteru mají větší rozměr ve srovnání s nativními aplikacemi, což je nevýhoda, kterou Google tým již zohledňuje.

 

Flutter je neustále vyvíjen týmem Google jako multiplatformní framework, který, přestože nemá zatím předpoklady pro překonání standardního vývoje nativních aplikací, je dnes softwarem již vysoce ceněným a používaným i pro důležité projekty.

Flutter je ideální především pro vývoj malých aplikací zaměřených především na uživatelské prostředí, stejně jako je vhodný pro realizaci nových projektů, protože umožňuje plynulý a rychlý vývoj. Na druhou stranu může být opačný proces složitý a členitý a může zahrnovat také prvky Flutteru v již existující aplikaci.

Navíc, stejně jako při vytváření nových projektů, je Flutter velmi rychlý a efektivní pro realizace prototypů. Ve skutečnosti je jednou z největších výhod Flutteru právě úspora času.

 

PODPORA A GOOGLE DOKUMENTACE

I přes svůj nedávný vznik se Flutter stává stále rychleji opěrným bodem pro vývoj multiplatformních aplikací.

Flutter je v neustálém vývoji také díky komunitě a i když existuje jen pár let, může se již pochlubit kanálem účelově vytvořeným pro komunikaci mezi vývojovými komunitami s týmem Google, známými mobilními aplikacemi ( jako jsou Alibaba, Groupon, Capital One, Philips Hue a mnoho dalších ) s velkým počtem downloadů pro oba operační systémy iOS a Android na platformách App Store a Play Store, dále 1 800 vyvinutých pluginů a programovací jazyk (Dart), který má za sebou starší vývoj a v současné době již zastaralé používání a je momentálně používán také ve webové verzi.

Navíc, oficiální web Flutteru shromažďuje rozsáhlou dokumentaci složenou z průvodců pro podporu používání frameworku na Windows, macOS a Linux.

Podpora online pro Flutter, stejně jako rozsáhlá dokumentace na oficiálních webových stránkách, umožňuje vývojářům používat ten samý kód k přenosu jednodušším a rychlejším způsobem, což jsou vlastnosti umožňující jistou koherentnost co se týče uživatelského zážitku na jakémkoliv typu zařízení.

Dokumentace Flutteru je online a je více než rozsáhlá, podrobná a dobře rozdělená podle kategorií a obsahu. Tato dokumentace disponuje nejen textovým obsahem, ale také videonávody.

Pokud jde o komunitu, ta neustále roste. Existuje množství kanálů a platforem (YouTube, Twitter, Medium, Gitter, Slack a ještě mnoho dalších), na kterých lze získat odpovědi a mít tak neustále přehled o jakémkoliv tématu ohledně Flutteru.

 

Autor: Roberta Foglia