Ha mobil applikáció fejlesztésben gondolkodsz, sokkal könnyebb dolgod van mint pár évvel ezelőtt. Ugyanis az elmúlt években, sok framework jelent meg, amik segítségével akár egy kódbázissal, gyorsan és fájdalommentesen tudsz fejleszteni Android és IOS platformokra egyaránt. Ezek a framework -ök mellé, sok olyan szolgáltatások is társulnak, amik felhőben készítik a buildet, futtatják a tesztjeidet és sok kényelmi funkcióval könnyítik meg a Cross-Platform mobil applikáció fejlesztés -t.

Milyen lehetőségeid vannak, ha Cross-Platform mobil fejlesztés -ben gondolkodsz?

Apache Cordova és az Ionic framework a WebView zászlóshajói

Apache Cordova

Az Apache Cordova egy nyílt forrású mobil fejlesztő keretrendszer. Lehetővé teszi a szabványos webes technológiák – HTML5, CSS3 és JavaScript – használatát a Cross-Platform mobil applikáció fejlesztésben. Ez a technológia az okostelefonban lévő böngészőt hasznosítva futtatja a HTML, CSS és JavaScripttel készült appodat. Régen lényeges különbség volt sebesség terén a natív fejlesztésű applikációkhoz képest. Ma ez már az erős mobilok, a böngészőmotorok optimalizációjával, kis bonyolultságú applikációknál nem mérvadó. Fejlesztés során API-n és plugineken keresztül kommunikálhatsz a mobil eszközzel. Ez azt is jelenti, hogy kevesebb lehetőséged van mint natív fejlesztésnél, de cserébe egy kódot kell karban tartanod és maga a fejlesztés is gyorsabb.

Ionic framework

Az Ionic Framework egy nyílt forráskódú keretrendszer mobil- és asztali alkalmazások készítéséhez webes technológiák (HTML, CSS és JavaScript) felhasználásával. Jelenleg az Ionic Framework hivatalosan az Angular2 -höz rendelkezik integrációval, de a cikk írásakor Vue és a React támogatása is fejlesztés alatt áll. Az Ionic framework könnyen megtanulható, integrálható, de önmagában is használható frontend -es keretrendszer.

ReactNative

A React Native egy nyílt forráskódú keretrendszer, amelyet a Facebook fejlesztett ki. Lehetővé teszi a JavaScript fejlesztők számára, hogy létrehozzanak olyan React komponenseket, amelyek működnek az internetes, Androidos és iOS-es fejlesztési környezetekben.

A React Native nagy előnye, hogy a komponensek natív komponensre fordulnak, ami a teljesítmény szempontjából sokáig igen nagy előnyt jelentett a többi cross-platform keretrendszerrel szemben. A React Native lehetősgéget biztosít natív kódrészletek felhasználására is, így amennyiben egy probléma nem megoldható a keretrendszerrel, akkor a fejlesztők natív kóddal (Swift vagy Objective-C iOS esetén és Java vagy Kotlin Android esetén) egészíthetik ki a cross-platform kódot.

Nativescript a kiforrott nagytestvér

A NativeScriptről kevest hallunk a Cross-Platform mobilfejlesztés kapcsán pedig egy kiforrott, jól supportált, folyamatosan fejlesztett keretrendszerről beszélhetünk. Lehetővé teszi, hogy egyetlen JavaScript kódbázisból valóban natív alkalmazásokat készíts iOS, Android és az Internet számára. Javascript, TypeScript, CSS, Angular és a Vue.js támogatásával a már ismert technológiák segítségével nagyszerű mobilalkalmazásokat építhetsz. A cikk írásakor a 6 -os verziónál tart és végigkísérve a kezdeti gyermekbetegségeit mostanra egy elég megbízható, könnyen kezelhető rendszert raktak le a készítők.

NativeScript Sidekick segítségével ténylegesen az app építésre öszpontosíthatsz, segít a debuggolásban, lokálisan és felhőben is képes buildelni nem mellesleg, rengeteg template segít az elindulásban.

A sok ismert technológia, a NativeScript CLI, Sidekick, VS Code Plugin és NativeScript UI tool-ok mellett, Slack csatornán és blogjukon is folyamatosan kommunikálnak, mégis sokkal kisebb közösség alakult ki mint pl a ReactNative mellett. Ez sokszor hátrány mert egy-egy probléma lassabban kerül napvilágra és így lassabban is oldódik meg.

Bővebben itt találsz információkat: https://www.nativescript.org/

Flutter a Cross-Platform mobil fejlesztés feltörekvő üdvöskéje

A Google felismerve a cross-platform mobil fejlesztési technológiák folyamatos fejlődését, be is beszállt a piacra a saját, Flutternek nevezett framework-jével. A technológiával nagyon szép, egységes, gyors alkalmazások készíthetők, mely egyből elnyerte a felhasználók és a fejlesztők tetszését is. Flutter framewok-ben készült az Alibaba vagy a Google Ads alkalmazás is, így a framework élesben is jól teljesített.

A Flutterrel készült appok futás időben nem igényelnek semmilyen fordítást/átalakítást. Úgynevezett ARM gépikód a végtermék, melyet a telefon közvetlenül tud futtatni. Stabilan hozza a 60 fps -t így az animációk folyamatosak, nem akadoznak.  Míg a natív appok a rendszerre bízzák a gombok és egyéb UI elemek megrajzolását, a Flutter közvetlenül a telefon grafikus processzorával kommunikál.

Fluter fejlesztés Dart nyelven történik, amely szintén a Google berkein belül készült. Tiszta és tömör, de mindenek előtt gyors és hordozható. A Dart jól alkalmazható reaktív programozási feladatoknál is, és támogatja a rövid életű objektumokat, mint például a UI elemeket. 

A Flutter hot reload technológiája segítségével az alkalmazás fejlesztés hihetetlen gyors. Pillanatok alatt láthatjuk a kódban bekövetkezett változásokat. Az alkalmazásunk közben nem veszíti el az állapotát, ami azt jelenti, hogy nem kell minden módosítás után bejelentkezni, elnavigálni a megfelelő képernyőre és ott megadni a tesztelni  kívánt bemeneteket. 

Ha komolyabban szertnél megismerkedni a Flutter képességeivel a Udemy kurzusok között eszméletlen nagy számban készülnek jobbnál jobb kurzusok. https://www.udemy.com/courses/search/?src=ukw&q=flutter

Konklúzió

A mobilos natív fejlesztés mellett az utóbbi években egyre inkább előtérbe kerülnek a cross-platform, valamint a hibrid megoldások. Ezzel a technológiákkal közös kódbázist használva könnyen készíthető több platformra mobil alkalmazás. Így nem kell külön IOS és Androidos csapat egy appplikáció fejesztéséhez de ezek a keretrendszerek használata még mindig korlátozott lehetőségeket biztosítanak a natív fejleztéshez képest.
A “feladathoz az eszközt” elvet követve ezt minden project elején érdemes megvizsgálni és ez alapján választani.

Humli Miklós

Szerző Humli Miklós

Régóta dolgozom együtt kis-, közép- és nagyvállalalatokkal az arculattól a nyomtatott anyagokon keresztül az online megjelenésig. Az elmúlt évtizedekben UI, UX designerként, webfejlesztőként és mobil fejlesztőként használt keretrendszerek, szoftverek és technológiák alkalmazása során értettem meg, hogy hatékonyan működni csakis úgy lehet, hogyha megtalájuk a feladathoz a legmegfelelőbb eszközt.

További bejegyzések: Humli Miklós