Multiplatformní vývoj aplikací pomocí frameworku Flutter

6 minut čtení

Vývoj mobilní aplikace sám o sobě není jednoduchý úkol, který se však ještě více zkomplikuje jestliže se rozhodneme cílit na obě největší platformy současnosti, tedy na Android a iOS. Jedná se o dvě zcela rozdílné platformy, tudíž i vývoj aplikace se v mnoha ohledech liší. Platformy využívají jiné vývojové prostředí, programovací jazyk, knihovny a frameworky. Z toho vyplývá, že pokud chceme vytvořit dvě totožné aplikace, pro každou platformu jednu, musíme větší část vývoje odvést dvakrát. Je třeba mít dva zkušené vývojové týmy, jeden pro každou platformu. Navíc je nutné každou aplikaci testovat zvlášť a je nezbytné udržovat dva zdrojové kódy. Výše zmíněný postup představuje značné množství repetitivní práce a jedná se o nativní vývoj. Ale musí tomu tak opravdu být?

Nemusí! Níže to rozebereme o něco podrobněji:

V dnešní době existuje řada multiplatformních nástrojů, které lze využít pro tvorbu mobilních aplikací. Jedním z prvních je Xamarin, který se dnes již netěší takové popularitě, jako dříve. Xamarin byl následně vystřídán frameworkem React Native, jehož hlavní výhodou je, že vychází z frameworku React. Pokud jste webový vývojář a používáte framework React, nebo máte zkušenosti s webovými technologiemi jako je HTML, CSS a JavaScript, bude pro vás tento framework výrazně přívětivější.

Dalším nástrojem je framework Flutter. Vznikl v roce 2018 a od té doby jeho popularita neustále stoupá. V dnešní době se řadí mezi nejoblíbenější multiplatformní nástroj pro vývoj aplikací. Na rozdíl od React Native Flutter nevyužívá webové technologie ale programovací jazyk Dart. Samotný Flutter i Dart jsou open source projekty a na jejich vývoji a údržbě se podílí společnost Google.

Flutter i Dart jsou neustále ve vývoji a pravidelně získávají nové funkce. Flutter již není pouze multiplatformní řešení pro tvorbu mobilních aplikací, nýbrž je v tomto frameworku možné vyvíjet i desktopové a webové aplikace. Flutter podporuje všechny tři základní desktopové operační systémy (Windows, MacOS a Linux). Když k tomu přidáme ještě podporu pro webové aplikace, je možné konstatovat, že Flutter je jedinečný multiplatformní nástroj, který dokáže ušetřit v některých případech až stovky hodin při vývoji.

Flutter se zaměřuje na to, aby se co možná nejvíce přiblížil výkonu a rychlosti nativně napsaným aplikacím. A nejen to, cílem je rovněž aby aplikace pro koncové uživatele tak i vypadala z hlediska UI a chování celé aplikace.

Jedna z klíčových výhod frameworku Flutter je jeho komunita. Právě komunita stojí za mnoha balíčky, které dokáží zkrátit dobu vývoje až o desítky hodin. Pokud vývojář nenajde nějakou funkcionalitu nebo widget přímo ve Flutteru, není problém ji vyhledat na webové stránce pub.dev a přidat si ji do svého projektu. 

Co se týče samotného vývoje, Flutter disponuje ještě dvěma triky v rukávu.  Prvním je funkce hot reload, která umožňuje vývojářům během okamžiku vidět úpravy, které udělali a to bez nutnosti kompilovat celý kód znovu. Druhým z nich je nástroj DevTools, který slouží pro debugování a optimalizaci aplikace.

S frameworkem Flutter společně s backendem Firebase máme v ASN Plus bohaté zkušenosti. Využili jsme je například pro tvorbu mobilní aplikace Leviathan. Tato aplikace využívá technologii Bluetooth Low Energy (BLE) pro komunikaci s řídící jednotkou airsoftových zbraní Leviathan, kterou jsme rovněž pro firmu JeffTron vyvinuli. Aplikace umožňuje bezdrátovou aktualizaci firmwaru v řídící jednotce ve zbrani prostřednictvím bootloaderu. Díky teto funkcionalitě je možné doručit všem zařízením Leviathan na světě (a jsou jich k dnešku desítky tisíc) opravy chyb, nebo například úplně nové funkce. Aplikace dále umožňuje kalibraci optických senzoru na zbrani, sledování podrobných statistik střelby a mnoho dalšího.

Leviathan Jefftron

Pokud máte nápad na elektronické zařízení, nebo byste chtěli vyvinout mobilní aplikaci k již existujícímu zařízení, můžete tento úkol svěřit nám, stejně jako to udělala společnost JeffTron. Naši programátoři se s Vámi rádi setkají a prodiskutuji s Vámi vaši vizi a představy, které máte od nové aplikace. Podle vašich požadavků vybereme vhodný postup a nástroje, které budeme využívat během vývoje. V průběhu vývoje budou s Vámi naši programátoři neustále v kontaktu a diskutovat s Vámi případné změny v zadání. Jak se bude vývoj chýlit ke konci, poskytneme vám beta-verzi aplikace pro doladění posledních drobností. Ve finále vám pomůžeme i s distribucí aplikace na konkrétní platformy.