Ebben a posztban arról lesz szó, hogy ha el akarsz kezdeni mobil alkalmazásokat fejleszteni, milyen lehetőségeid vannak. Én nagy rajongója vagyok a PWA (Progressive Web Application - Progresszív webalkalmazás) technológiának ezért nem ígérem, hogy ez a poszt teljesen elfogulatlan lesz. De igyekszem bemutatni mik léteznek ma a piacon.
Natív fejlesztés
A natív fejlesztésen az eszköz számára natív (saját) kódolási nyelven programozott alkalmazásokat értjük. Ez Android esetében a Kotlin és a Java, míg iOS eszközök esetében a Swift és az Objective-C. Ezekhez a nyelvekhez a Google és az Apple saját SDK-kat (Software development kit) biztosít, amelyek pl az Android studio esetében emulátort is tartalmaznak adott eszközökre.
Előnyei
- Általában gyorsabbak, mivel közvetlenül hozzáférnek az eszköz interfészeihez (memória, kamera, stb)
- Lehetővé teszik a fejlesztő számára, hogy az eszköz teljes eszközkészletét elérjék (pl Contacts, IMEI stb)
- Egyes platformokhoz egyedi felhasználói élmény tervezhető
Hátrányai
- Nehéz megtanulni a natív programozási nyelveket, vagy Projekt manager szempontból többe kerül egy natív fejlesztő.
- Egy adott appot minden eszközre külön kell leimplementálni.
- Ha a projekted elején választasz egy platformot (iOS, Android) lehet hogy csak az eszközök 50%-án lesz elérhető az alkalmazásod
- Nagy teljesítményű gép kell az emulátorok futtatásához, iOS-re fejlesztett app esetében kell vennünk vagy bérelnünk egy MAC minit a fejlesztéshez.
Cross platform - React Native / Ionic Cordova / Xamarin / Kivy
Cross-platform fejlesztésnek nevezzük, amikor az eszköz számára nem natív nyelven írjuk le az alkalmazásunkat, és aztán egy fordító segítségével lefordítjuk egy az eszköz számára futtatható programra. Mobil fejlesztés tekintetében a két elterjedt framework ehhez az ionic és a react native. Mindkettőben HTML, CSS és Javascript alapokon írjuk meg az alkalmazásunkat, amit a keretrendszer által biztosított fordító fordít le native alkalmazássá. A Xamarin esetében C# nyelven míg a Kivy esetében Python-ban írjuk meg a kódunkat.
Ehhez a tradícionális webfejlesztő eszközöket szoktuk használni, leggyakrabban visual studio code-ot, ha debuggolni is szeretnénk. (bár hozzátesztem, hogy az igazi fejlesztők VIM-et használnak, esetleg pillangók szárnyával térítik el a felső atmoszféra áramlatait, hogy ezt lencseként használva a kozmiklus sugárzást koncetrálják a chip-en és átbillentsék a megfelelő bit-et https://xkcd.com/378/ ).
Előnyei
- Nem kell megtanulni a natív programozási nyelveket
- Egy webalkalmazás logikáját részben újra lehet használni a natív alkalmazáshoz
- Elég sok natív funkciót elérsz
- Az alkalmazásod Android-ra és iOS-re is lefordítható
Hátrányai
- Nem biztos, hogy minden natív funkcionalitást elérsz.
- Android és iOS natív funkciók használatakor eltérések lehetnek a két eszközben, ezért ide eszköz specifikus kódokat kell implementálnod. pl (if (platform == 'iOS'...stb)
Progresszív webalkalmazás
A progresszív webalkalmazás egy olyan webalkalmazás, amely a web és a böngészők fejlődésének köszönhetően lehetővé teszi a webalkalmazás számára, hogy bizonyos natív funkciókat biztosítson. Ilyen funkciók például, hogy kitűzhetőek a kezdőképernyőre és offline futhatnak. Tehát ha elmegy az internet a webalkalmazás akkor sem fog 404-et dobni, hogy a T-Rex-es játékkal játszhass.
Előnyei
- Nem kell megtanulni a natív programozási nyelveket
- Egy webalkalmazás logikáját újra tudod hasznosítani egy tradícionális web alkalmazáshoz
- Natív funkciók tekintetében a leggyakrabban használt perifériák (kamera, kezdőképernyő elérhető - https://whatwebcando.today/)
- Az alkalmazásod Android-on és iOS-es is működik, teljesen cross platform, ugyanaz a kódbázis.
- Nem kell app-store-on keresztül deployolni a saját alkalmazásod
Hátrányai
- Nem érhető el a contact lista, memória, és egyéb hardver közeli natív funkció
- A cache kezelése nehézkes lehet, főleg ha update-elni akarod az alkalmazásod.
A progresszív webalkalmazásokról egy külön posztot is fog még készülni, mivel ez tartozik a web-programozás témakörébe. Remélem sikerült megvilágítanom neked milyen lehetőségeid vannak, ha mobil fejlesztésre adod a fejed. Akár natív, akár cross-platform fejlesztést választasz, a legfontosabb, hogy sokat gyakorolj, nézz végig tutorialokat és légy kitartó. Sok sikert!
Ha tetszett a poszt kérlek értékeld a blogot, ezen az anonim kérdőíven (3 kérdésben), vagy kezdj el követni. (lehetőleg nem az utcán, hanem itt, vagy alább)
Nincsenek megjegyzések:
Megjegyzés küldése