Kontaktujte nás
Radi vám poradíme
Stále si nejste jisti, jakým směrem se s aplikací vydat? Kontaktujte nás ještě dnes a my vám pomůžeme zjistit, co je pro váš projekt ideální.
17. Jul 2023
BusinessVe světě mobilních aplikací probíhá „věčná“ debata o ideálním způsobu vývoje a tuto otázku často dostáváme i od našich klientů. V tomto článku se dozvíte výhody a nevýhody jednotlivých možností vývoje a také se podíváme na technické a netechnické argumenty z pohledu našich obchodních analytiků, architektů řešení a vývojářů, kteří mají zkušenosti s jazyky Kotlin, Swift a Flutter.
Nativní aplikace jsou vyvíjeny pro konkrétní platformu, například iOS nebo Android. Programovací jazyk použitý k vytvoření těchto aplikací je kompatibilní s operačním systémem. Díky používání jazyků specifických pro danou platformu mohou vývojáři lépe využívat nativní funkce platformy. Aplikace vytvořená pro Android tedy nebude fungovat na zařízeních Apple.
Cross-platformový přístup k vývoji mobilních aplikací umožňuje vytvořit jedinou aplikaci, která bude fungovat stejně na více operačních systémech. To znamená, že nemusíte vytvářet samostatné verze pro každou platformu zvlášť.
Nativnímu vývoji se věnujeme od samého počátku a za tu dobu jsme se setkali s mnoha implementacemi nativních knihoven, prací s rozšířenou realitou, kamerou, videem, bluetoothem, skenerem NFC, zabezpečením, widgety a mnoha dalšími možnostmi, které nabízejí platformy iOS a Android. Naše odborné znalosti v oblasti nativního vývoje se proto týkají nejen programovacích jazyků, ale také integrace hardwaru a softwaru třetích stran.
Téměř všechny známé a oblíbené aplikace, které používá velké množství uživatelů, jsou postaveny na nativních technologiích. Z hlediska obchodního modelu je důležitá „trvalost“ technologií. Cross-platformové technologie, jako je Flutter, se mění velmi dynamicky, zatímco React native nebo některé knihovny třetích stran stagnují, což může při sestavování aplikace vést k nekompatibilitě. Všechny tyto faktory mohou vést k různým problémům, jako je zpoždění vývoje, nedostupnost vývojářů nebo používání zastaralých technologií.
Uvědomujeme si však, že v některých obchodních případech může být vývoj cross-platform správnou cestou. Důležité je rozhodnout se na základě klíčových parametrů vyplývajících z vaší obchodní strategie. Proto jsme pro vás připravili klíčové oblasti designu a vývoje včetně výhod a rizik jednotlivých forem vývoje.
Uživatelé hledají aplikace, které vypadají a působí, jako by do jejich zařízení patřily. Nativní aplikace pro iOS a Android jsou vytvořeny pomocí komponent uživatelského rozhraní, na které jsou uživatelé zvyklí z jiných nativních aplikací, což vytváří přirozenou a zároveň výjimečnou uživatelskou zkušenost.
Na druhou stranu může být v některých cross-platform aplikacích obtížné se orientovat, protože se prvky často překrývají a porušují doporučení. Cross-platform aplikace taky nemají nativní vzhled a nepůsobí nativně, což omezuje prvky UX v aplikaci. Celé to ale závisí hlavně na použité technologii. React Native používá nativní komponenty, takže doporučení pro UI/UX by neměla být problémem. Flutter má v tomto případě doplňkové knihovny, jejichž podpora je sporná. Flutter prosazuje jednotné uživatelské rozhraní napříč platformami, takže je vhodný pro aplikace s velmi nestandardním UI (nebyznysové).
Cross-platform aplikace v současné době zároveň nepodporují všechny prvky přístupnosti. Při vývoji a designu se od počátku zaměřujeme také na uživatele s tělesným znevýhodněním, zejména se zrakovým. A v tomto případě nelze ve Flutteru použít změnu velikosti písma ani hlasové ovládání.
Přechod do režimu offline může být velkou konkurenční výhodou. I když jsou uživatelé s vaší aplikací spokojeni, nedostatek offline funkcí je může donutit hledat alternativy. Offline funkce jsou důležité například v oblasti fintechu, zdravotnictví nebo u navigací. Nativní i cross-platform aplikace umožňují práci v režimu offline.
Využití cross-platform vývoje může vést k omezené podpoře a zvyšuje pravděpodobnost nedostatků při integraci specifického hardwaru. Každá knihovna, aplikace nebo hardware má na prvním místě podporu pro nativní vývoj. To pomáhá zajistit bezproblémovou integraci nového produktu do stávající infrastruktury.
Nativní aplikace iOS pracují s pamětí RAM mnohem efektivněji, takže aplikace reagují rychleji. Z technického hlediska Flutter používá Garbage collector a veškerý vývoj pro iOS je postaven na automatickém počítání referencí (ARC), které je mnohem efektivnější z hlediska paměti, takže nativní aplikace pro iOS využívají 1/3 paměti RAM ve srovnání s Flutterem. Potřeba další abstrakční vrstvy a procesu vykreslování cross-platformovou aplikaci zpomalují.
Problém se týká především všech frameworků, které používají bridge*, nebo běží výhradně ve WebView* (Ionic, Cordova). Aplikacím, které ke komunikaci s platformami používají bridge, je automaticky přiřazený bottleneck*, který je v mnoha případech velmi znatelný. Zároveň používají nativní komponenty, takže knihovny v těchto frameworcích mohou mít snadno různé verze nativních knihoven, což způsobuje obrovské konflikty v nativní části.
Použitá technologie má navíc velký vliv na velikost samotné aplikace. U aplikací pro iOS můžeme hovořit o 1/2 velikosti aplikace vytvořené ve Swiftu ve srovnání s Flutterem.
Cross-platform aplikace jsou skvělým způsobem, jak snížit náklady a zvýšit efektivitu, což je jistě jedna z hlavních předností, která stojí za zvážení. Vývoj nativních aplikací může být kvůli vývoji pro více platforem nákladný. V překladu to znamená, že budete potřebovat tým pro každou platformu – například jeden pro iOS a jeden pro Android. V tomto případě vám k vytvoření cross-platform aplikace stačí namísto dvou vývojářských týmů pouze jeden. ⚠️ Tento tým však bude muset mít zkušenosti s vývojem pro obě platformy.
K vytvoření „základní“ verze aplikace, která funguje na více platformách, stačí jeden vývojový proces, takže můžete svou mobilní aplikaci uvést na trh rychleji. Je však důležité zmínit, že i když je samotný vývoj rychlejší, testování takových aplikací trvá stejně dlouho.
Hlavním problémem při vývoji a údržbě cross-platform aplikací je zastupitelnost lidí. Zejména u menších dodavatelů vývoje může odchod developera způsobit vážný problém.
Aplikace vytvořené v nativním prostředí jsou obvykle lépe škálovatelné díky flexibilitě správy zdrojů a mnoha dostupným nástrojům. Naopak u vývoje cross-platform jsou možnosti škálování značně omezené, zejména při práci s rozhraními třetích stran a periferiemi.
Bezpečnost je v digitálním světě dlouhodobě tématem číslo jedna a u vývojářů aplikací a podniků by tomu nemělo být jinak. Cross-platform aplikace jsou postaveny na nativních frameworcích, takže jsou stejně bezpečné jako nativní aplikace, ale pokud uvažujete o hybridních řešeních založených na webových technologiích (HTML, CSS, JavaScript), určitě tento parametr pečlivě zvažte.
Náš tým se vývoji nativních aplikací věnuje od samého počátku. Za tu dobu jsme měli možnost pracovat na projektech, kde jsme se setkali s mnoha implementacemi nativních knihoven, prací s rozšířenou realitou, kamerou, videem, bluetoothem, skenerem NFC, zabezpečením, widgety a mnoha dalšími možnostmi, které platformy iOS a Android nabízí. Naše odborné znalosti v oblasti nativního vývoje se proto netýkají jen programovacích jazyků, ale i integrace mnoha hardwarových a softwarových zařízení třetích stran.
V naší praxi jsme se setkali s různými možnostmi Cross-platform vývoje, které jsme měli možnost vyzkoušet, ale nativní vývoj bohužel plně nahradit nedokázaly. Proto byla nutná i znalost nativních technologií.
Za zásadní považujeme také výše uvedené faktory, jako je udržitelnost, zastupitelnost vývojářů a dodavatelů, garantovaná podpora a kompatibilita, rozšiřitelnost na další zařízení, lepší výkon a škálovatelnost.
Nativní vývoj mobilní aplikace pro iOS i Android nám umožňuje pravidelně přicházet s inovacemi při zachování výkonu aplikace, škálovatelnosti a nejlepšího možného mobilního zážitku, proto je mobilní bankovníctví Tatra banky považováno za nejinovativnější na slovenském trhu.
Nativní vývoj nám zároveň umožňuje snadné přihlašování do aplikace pomocí obličeje a otisku prstu díky integraci pokročilé biometrie od lídra na trhu Innovatrics. Komplexní balík technologií společnosti Innovatrics pro online autentizaci zahrnuje také detekci a autentizaci údajů z dokladů totožnosti, biometrii obličeje NIST FRVT či akreditovanou detekci živosti iBeta Level 2, která je účinnou součástí prevence zneužití identity, což je v odvětví fintechu nezbytné. Aplikaci lze samozřejmě přizpůsobit nejen pro iOS a Android, ale i pro různé velikosti obrazovky.
Cílem při vytváření online mobilní lékárny pro Benu bylo vytvořit co nejjednodušší a nejsrozumitelnější uživatelský zážitek a zároveň zachovat všechny funkce, které jsme s klientem zmapovali. Aplikace pro platformy Android a iOS tedy bylo nutné vytvořit nativně.
Hlavními výhodami použití nativního vývoje jsou v tomto případě vyšší bezpečnost aplikace, soulad s legislativou v oblasti farmacie, lepší uživatelská zkušenost a integrace nativních knihoven. Uživatel může například přidat recept prostřednictvím fotoaparátu, z fotografie nebo prostřednictvím SMS.
Ačkoli rozhodně cross-platform aplikace nezavrhujeme, existuje řada situací, ve kterých je efektivnější zvážit tyto přístupy. Kdy tomu tak je?
Oba jazyky mají jistě své výhody i nevýhody, ale naším cílem je vytvářet smysluplné a zodpovědné digitální produkty, a to si žádá možnosti nativní platformy, proto se držíme nativního jazyka.
Kontaktujte nás
Stále si nejste jisti, jakým směrem se s aplikací vydat? Kontaktujte nás ještě dnes a my vám pomůžeme zjistit, co je pro váš projekt ideální.