Mobilapp-fejlesztés – Natív vagy hibrid?


Tatai Sándor | 2017.10.10. 12:00


Abban a pillanatban, hogy kipattan a fejünkből az alkalmazásfejlesztés ötlete, a legfontosabb kérdés, hogy milyen platformon álljunk neki a fejlesztésnek. Miben több egy natív alkalmazás egy hibrid appnál? Mennyivel drágább a fejlesztés? Megéri invesztálni? A cikkből kiderül.

Natív alkalmazások

A natív alkalmazások platform specifikus programnyelven íródnak, ami az iOS esetén tipikusan Swift, az Android esetén pedig a jó öreg Java. Minden környezetnek megvannak a maga sajátosságai.

A natív alkalmazások legnagyobb előnye, hogy profibban ki tudják használni az adott hardvert és szoftvert, ami a gyakorlatban azt jelenti, hogy magasabb fokú teljesítménnyel, gördülékenyebb animációval, ezáltal pedig jobb felhasználói élménnyel rendelkeznek. Ez a kijelentés azonban leginkább az alkalmazás fejlesztés korai időszakára volt igaz, azóta bőven felzárkóztak a hibrid technológiák is. Miről is van szó?

Hibrid appok

A legegyszerűbben talán úgy lehet megfogalmazni, hogy a hibrid alkalmazások egy keretrendszerben kerülnek lefejlesztésre, amely képes kompatibilitást teremteni a különböző eszközök és operációs rendszerek között, így ugyanúgy képesek kihasználni a telefonok bizonyos funkcióit, akárcsak a natív appok, mint például a kamerát, vagy éppen a GPS-t. Úgy kell elképzelni, hogy a hibrid rendszerek natív alkalmazássá alakítják a webes alapú alkalmazásokat. Legismertebb ilyen a Facebook alkalmazás, melyet a piacterekről lehet letölteni, rendelkezik a natív alkalmazások összes lényeges tulajdonságával, de a használathoz az internet elérés szükséges, onnan tölti az adatokat.

Ezek a keretrendszerek nem részei a hivatalos iOS vagy Android operációs rendszereknek, helyette harmadik féltől származnak. Híres hibrid, divatosabb nevén „cross-platform” rendszer például az Apache Cordova, az Ionic, a NativeScript, a React Native, a Xamarin, vagy éppen a PhoneGap. Természetesen lehetnek különbségek a különböző rendszerek között is, elég csak olyan apróságokra gondolni, hogy melyik engedélyezi a felhasználók számára az olyan platform-specifikus dolgokat, mint dupla kattintás, a nagyító mozdulat, vagy éppen az iOS esetében a nyomás erősség értelmezése.

Előnyök, hátrányok, kételyek

Nagy valószínűséggel a legtöbb fejlesztőt megkérdezve a válasz lényege nagyjából ennyi lenne: a natív alkalmazások gyorsabbak, de drágábbak.

A kijelentés első felével egyet is értünk, meg nem is. Egy app natív jellege önmagában még nem garancia arra, hogy gyors lesz az alkalmazás, kell hozzá egy képzett, az adott programnyelvben jártas fejlesztő is, aki a legjobb megoldást képes megtalálni a szükséges funkcionalitás megvalósítására. Ez fordítva is igaz lehet, egy hibrid alkalmazás is járhat zökkenőmentes felhasználói élménnyel, hiszen az utóbbi időszakban annyira felgyorsult az okostelefonok teljesítményének fejlődése, hogy a sebességbeli különbség elhanyagolható/nem érzékelhető.

A kijelentés második felével viszont teljes mértékben egyet értünk, a natív alkalmazások előállítása az esetek döntő többségében magasabb költséggel jár. Ennek oka egyfelől a hosszabb fejlesztési ciklus: bár nehéz pontos specifikáció nélkül időben gondolkodni, de nagyjából az az app, ami hibrid keretrendszerben 1 hónap alatt készül el, az iOS és Android platformon 2-3 hónap alatt. Ez egy átlagosan nettó 8000 és 10 000 Ft körüli fejlesztői órabérrel számolva már jelentős különbséget jelent. A Windows alapú alkalmazások külön kihívást jelentenek, gyakorlatilag a hibrid az egyetlen megoldás, amivel „ki tud jönni a matek” az alacsony felhasználószámot figyelembe véve. A másik ok, hogy az sem elhanyagolható tényező, hogy milyen fejlesztőt használunk a projektre. A hibrid technológiák általános webfejlesztőt igényelnek, így nagyobb az erőforrás „pool”, amiből tudunk meríteni. A platform és programnyelv specifikus szakemberek jelentős mértékben tudjákk tovább drágítani a folyamatot.

Konklúzió

A fentiek végig olvasása után egyértelmű a válasz: hibrid. Vagy mégsem? Bőven el tudunk képzelni olyan üzleti helyzetet, ahol egy natív app fejlesztése indokolt lehet, ezért inkább az alábbi tanácsot tudjuk adni. Nem érdemes ész nélkül felbérelni az első „simán megoldom” mentalitású „szabadúszó” fejlesztőt. Amikor már felmerül az alkalmazás fejlesztés kérdése, indokolt felkeresni egy olyan fejlesztői csapatot, aki képes megérteni az eredeti üzleti problémát, aminek megoldására születne az app, majd ennek megfelelően segít eldönteni, hogy natív vagy hibrid technológiával készüljön el az alkalmazás, vagy éppen az utóbbi irányt választva, melyik keretrendszer a legjobb megoldás.