2020. október 14., szerda

Mobil alkalmazás fejlesztési technológiák

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