Kontaktujte nás
Radi vám poradíme
Stále si nie ste istí, ktorým smerom sa s aplikáciou vydať? Kontaktujte nás ešte dnes a my vám pomôžeme zistiť, čo je pre váš projekt ideálne.
30. Jan 2023
BusinessVo svete mobilných aplikácií prebieha "večná" diskusia o ideálnom spôsobe vývoja a túto otázku často dostávame aj od našich klientov. V tomto článku dozviete výhody a nevýhody jednotlivých možností vývoja a pozrieme sa aj na technické a netechnické argumenty z pohľadu našich biznis analytikov, architektov riešení a vývojárov, ktorí majú skúsenosti s jazykmi Kotlin, Swift a Flutter.
Natívne aplikácie sú vyvinuté pre konkrétnu platformu, napríklad iOS alebo Android. Programovací jazyk použitý na vytvorenie týchto aplikácií je kompatibilný s operačným systémom. Používaním jazykov špecifických pre danú platformu môžu vývojári lepšie využívať natívne funkcie platformy. Takže aplikácia vytvorená pre Android nebude fungovať na zariadeniach Apple.
Cross-platformový prístup vývoja mobilných aplikácií umožňuje vytvoriť jednu aplikáciu, ktorá funguje na viacerých operačných systémoch rovnako. To znamená, že nemusíte vytvárať samostatné verzie pre každú jednotlivú platformu.
Natívnemu vývoju sa venujeme od úplného začiatku, za ten čas sme sa stretli s mnohými implementáciami natívnych knižníc, prácou s rozšírenou realitou, kamerou, videom, Bluetooth, NFC skenerom, bezpečnosťou, widgetmi a mnohými ďalšími možnosťami, ktoré ponúkajú iOS a Android platformy. Naša expertíza v natívnom vývoji sa teda nepohybuje len na úrovni programovacích jazykov ale aj integrácii hardwaru a softvéru tretích strán.
Takmer všetky známe a obľúbené aplikácie používané veľkým množstvom používateľom sú postavené na natívnych technológiách. Z pohľadu obchodného modelu je dôležitá “trvácnosť” technológií. Cross-platformové technológie, ako napríklad Flutter, sa menia extrémne dynamicky, zatiaľ čo React native, či niektoré knižnice tretích strán stagnujú, čo môže viesť k nekompatibilite pri zostavovaní aplikácie. Všetky tieto faktory môžu viesť k rôznym problémom, ako je oneskorenie vývoja, nedostupnosť vývojárov alebo používanie zastaraných technológií.
Avšak uvedomujeme si, že v niektorých biznis prípadoch môže byť cross-platform vývoj správnou cestou, dôležité je sa rozhodnúť na základe kľúčových parametrov vyplývajúcich z vašej biznisovej stratégie. Preto sme pre vás pripravili kľúčové oblasti dizajnu a vývoja aj s benefitmi a rizikami jednotlivých foriem vývoja.
Používatelia hľadajú aplikácie, ktoré vyzerajú a pôsobia, akoby patrili do ich zariadenia. Natívne aplikácie pre iOS a Android sú vytvorené pomocou komponentov používateľského rozhrania, na ktoré sú používatelia zvyknutí z iných natívnych aplikácií, vďaka čomu vytvoríte prirodzený a zároveň výnimočný používateľský zážitok.
Na druhej strane u niektorých cross-platform aplikácií môže byť navigácia zložitá, pretože prvky sa často prekrývajú a porušujú guidelines, cross-platform aplikáciám tiež chýba natívny look and feel, čo obmedzuje UX prvky aplikácie. To však závisí najmä od použitej technológie, React Native používa natívne komponenty, takže UI/UX guidelines by nemali byť problémom. Flutter má v tomto prípade doplnkové knižnice, ktorých podpora je otázna. Flutter presadzuje jednotné UI medzi platformami, takže je vhodný pre aplikácie s veľmi neštandardným UI (nebiznisové).
Cross-platform aplikácie zároveň v súčasnosti nepodporujú všetky prvky Accessiblity. Pri vývoji a dizajne sme sa od začiatku zameriavame aj na používateľov s telesným znevýhodnením, najmä zrakovým. Zmenu veľkosti písma alebo hlasové ovládanie nie je možné v tomto prípade v aplikácii Flutter použiť.
Prechod do režimu offline môže byť veľkou konkurenčnou výhodou. Aj keď sú používatelia s vašou aplikáciou spokojní, nedostatok offline funkcií ich môže prinútiť hľadať alternatívy. Offline funkcie sú dôležité napríklad vo fintech, zdravotníctve či pri navigáciách. Natívne aj cross-platform aplikácie umožňujú prácu v režime offline.
Použitie cross-platform vývoja môže mať za následok obmedzenú podporu a zvyšuje pravdepodobnosť nedostatkov pri integrácii špecifického hardvéru. Každá knižnica, aplikácia alebo hardvér má v prvom rade podporu pre natívny vývoj. Čo pomáha zabezpečiť bezproblémovú integráciu nového produktu do existujúcej infraštruktúry.
Natívne aplikácie iOS pracujú s pamäťou RAM podstatne efektívnejšie, vďaka čomu aplikácie reagujú svižnejšie. Z technického hľadiska Flutter používa Garbage collector a celý vývoj pre iOS je postavený na automatic reference counting (ARC), ktoré je pri práci s pamäťou oveľa efektívnejšie, vďaka čomu natívne aplikácie pre iOS využívajú 1/3 RAM v porovnaní s Flutterom. Potreba ďalšej abstrakčnej vrstvy a procesu vykresľovania spôsobuje, že cross-platformová aplikácia je pomalšia.
Problém je predovšetkým so všetkými frameworkmi, ktoré používajú bridge*, alebo bežia úplne vo WebView* (Ionic, Cordova). Aplikácie, ktoré používajú na komunikáciu s platformami bridge, majú automaticky pridelený bottleneck*, ktorý je v mnohých prípadoch mimoriadne citeľný. Zároveň používajú natívne komponenty, takže knižnice v týchto frameworkoch môžu mať ľahko rôzne verzie natívnych knižníc, čo spôsobuje obrovské konflikty v natívnej časti.
Použitá technológia má tiež veľký vplyv na veľkosť samotnej aplikácie. V prípade aplikácií pre iOS môžeme hovoriť o 1/2 veľkosti aplikácie vyvinutej v Swifte v porovnaní s Flutterom.
Cross-platform aplikácie sú skvelým spôsobom, ako znížiť náklady a zvýšiť efektivitu, čo je určite jeden z hlavných prínosov, ktorý stojí za zváženie. Vývoj natívnych aplikácií môže byť nákladný z dôvodu vývoja viacerých platforiem. V preklade budete potrebovať tím pre každú platformu - napríklad jeden pre iOS a jeden pre Android. V tomto prípade vám namiesto dvoch tímov vývojárov bude na vytvorenie Cross-platform aplikácie stačiť len jeden. ⚠️ Tento tím však bude musieť mať skúsenosti s vývojom pre obe platformy.
Na vytvorenie "základnej" verzie aplikácie, ktorá funguje na viacerých platformách, stačí jeden vývojový proces, takže svoju mobilnú aplikáciu môžete uviesť na trh rýchlejšie. Dôležité je však spomenúť, že hoci je samotný vývoj rýchlejší, testovanie takýchto aplikácií trvá rovnako dlho.
Hlavným problémom pri vývoji a údržbe cross-platform aplikácie je zastupiteľnosť ľudí. Najmä v prípade menších dodávateľov vývoja môže odchod developera spôsobiť vážny problém.
Aplikácie vytvorené v natívnom prostredí sú zvyčajne lepšie škálovateľné vďaka flexibilite správy zdrojov a množstvu dostupných nástrojov. Naopak pri cross-platform vývoji sú možnosti škálovania výrazne obmedzené, najmä pri práci s rozhraniami tretích strán a perifériami.
Bezpečnosť je dlhodobo témou číslo jeden v digitálnom svete a nemalo by to byť inak ani v prípade vývojárov aplikácií a podnikov. Cross-platform aplikácie sú postavené na natívnych frameworkoch, čiže sú rovnako bezpečné ako natívne aplikácie, avšak ak uvažujete o hybridných riešeniach založených na webových technológiách (HTML, CSS, JavaScript), nezabudnite tento parameter dôkladne zvážiť.
Náš tím sa venuje natívnemu vývoju od úplného začiatku. Za tento čas sme mali možnosť pracovať projektoch, kde sme sa stretli s mnohými implementáciami natívnych knižníc, prácou s rozšírenou realitou, kamerou, videom, Bluetooth, NFC skenerom, bezpečnosťou, widgetmi a mnohými ďalšími možnosťami, ktoré ponúka platforma iOS a Android. Naša expertíza v natívnom vývoji sa teda nepohybuje len na úrovni programovacích jazykov ale aj integrácie mnohých hardwaru a softvéru tretích strán.
Za našu prax sme sa stretli s rôznymi možnosťami Cross-platform vývoja, ktoré sme mali možnosť otestovať ale bohužiaľ nedokázali nahradiť úplne natívny vývoj a preto bola potrebná znalosť aj natívnych technológií.
Taktiež za podstatné považujeme už spomenuté faktory ako je udržateľnosť, zastupiteľnosť vývojárov a dodávateľa, garantovaná podpora a kompatibilita, rozšíriteľnosť na iné zariadenia, lepší výkon a škálovateľnosť.
Natívny vývoj mobilnej aplikácie pre iOS aj Android nám umožňuje pravidelne prinášať inovácie pri zachovaní výkonu aplikácie, škálovateľnosti a čo najlepšieho mobilného zážitku, preto je mobilné bankovníctvo Tatra banky považované za najinovatívnejšie na slovenskom trhu.
Natívny vývoj nám tiež umožňuje jednoduché prihlasovanie do aplikácie pomocou tváre a odtlačku prsta vďaka integrácii modernej biometrie od lídra na trhu Innovatrics. Komplexný balík technológií Innovatrics pre online autentifikáciu zahŕňa aj detekciu a autentifikáciu údajov z dokladov totožnosti, biometriu tváre NIST FRVT či akreditovanú iBeta Level 2 detekciu živosti, ktorá je účinnou súčasťou prevencie zneužitia identity, čo je vo fintech sektore nevyhnutnosťou. Samozrejmosťou je aj prispôsobenie aplikácie nielen pre iOS a Android, ale aj pre rôzne veľkosti obrazovky.
Cieľom pri tvorbe online mobilnej lekárne pre Benu bolo vytvoriť čo najjednoduchší a najzrozumiteľnejší používateľský zážitok, pri zachovaní všetkých funkcionalít, ktoré sme s klientom zmapovali, preto bolo nevyhnutné vytvoriť aplikácie pre Android a iOS platformy natívne.
Hlavnými výhodami použitia natívneho vývoja sú v tomto prípade vyššia bezpečnosť aplikácie, súlad s legislatívou v oblasti farmácie, lepšia používateľská skúsenosť a integrácia natívnych knižníc. Používateľ môže napríklad pridať recept prostredníctvom fotoaparátu, z fotografie alebo prostredníctvom SMS.
Cross-platform aplikácie určite nezavrhujeme, existuje mnoho situácií, v ktorých je efektívnejšie zvážiť tieto prístupy, kedy?
Oba jazyky majú určite svoje výhody aj nevýhody, ale naším cieľom je vytvárať zmysluplné a zodpovedné digitálne produkty, a to si vyžaduje možnosti natívnej platformy, preto sa držíme natívneho jazyka.
Kontaktujte nás
Stále si nie ste istí, ktorým smerom sa s aplikáciou vydať? Kontaktujte nás ešte dnes a my vám pomôžeme zistiť, čo je pre váš projekt ideálne.