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

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


Tatai Sándor @ 2017.10.10 13:07


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ák 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.