Ez történt 2021-ben a mobil fejlesztési iparágban
Sűrű év volt a mobilok háza táján

2021 is over, let's see the summary of the year!
A kép forrása: Freepik / image

Az elmúlt év tovább erősítette a távolságtartásunkat egymástól, ami tovább növelte a digitális mobil termékek használatát. Új módszerek, szokások alakultak ki. A cikkben a több éve tartó megfigyeléseimet gyűjtöttem össze a mobil appok fejlesztési területén. Hozzátéve a saját meglátásaimat és előrejelzéseimet.

Mi új az Android 12-ben?

  1. Dinamikus téma színváltás a háttérképnek megfelelően: az Android 12 rácfelvarrást kapott a Material You kinézettel. Az újítás lényege, hogy a háttérként beállított kép alapján a színeket hozzáigazítja az egyéb felületeken. Továbbá, ha egy adott app fel van készítve rá, akkor az appon belül is megjelenik a témázás. Így sosem válnak unalmassá a felületek.
  2. Egykezes mód: megirigyelve a Samsung és a Xiaomi korábbi megoldásait, a Google beépítette ezt a beállítást az új, Android 12 változatába. Ezentúl a beállítások menüben könnyedén elérhető bárkinek.
  3. Gyorsindítás (Quick tap): az iOS 14-től lopva az ötletek, az Android 12-be is megérkezett a funkció. A beállításokban megadhatjuk, hogy mi történjen, ha a telefon hátuljára kétszer koppintunk. Egy általunk választott alkalmazás indul el.
  4. Személyes biztonság ellenőrzése (Privacy Dashboard): az idei évben a Google tovább erősítette azt a szándékát, hogy a személyes adataink a miénk, és nekünk van jogunk eldönteni, hogy kivel osztjuk meg. A felületen ellenőrizhető, hogy melyik alkalmazás, mikor, mihez fért hozzá a telefonunkon.
  5. Beszélgetés widget-ek (Conversation Widget): bármely chat alkalmazásunkhoz elhelyezhetünk kis felületeket a kezdőképernyőn, hogy lássuk a beszélgetéseinket.

Ezek csak pár az újítások közül, amiket az Android 12 verziója hozott nekünk.

Mit tudott hozzátenni az iOS 15?

  1. FaceTime és SharePlay: a megszokott FaceTime funkcionalitás tovább bővült, és a felhasználó került a középpontba. A háttér elmosódva látszik, ezáltal élesebb a résztvevő, valamint a hangzás is jobban kiemeli az aktuálisan beszélőt. A grid nézet pedig a több résztvevős beszélgetésekben segít egyszerre láttatni a partnereinket. A SharePlay tovább ment még ezen is, és a közös élmény megosztásra helyezi a hangsúlyt. Olyan, mintha a család (akik lehetnek több ezek km-re egymástól) ugyan azt a műsor néznék. Bárki beletekerhet a zenébe vagy filmbe. Együtt működik az Apple TV-vel, és könnyedén bevonhatóak az Androidos vagy Windowsos társaink is.
  2. Pici újítás a Safari böngészőben: nem tűnik nagy újításnak, de annál hasznosabb, hogy a böngésző címsora lekerült ujjközelbe. Az Apple felismerte, hogy ennek ott a helye, hiszen a böngésző elsődleges funkciója, hogy oldalakat nyisson meg. Ez pedig jó, ha kézre áll.
  3. Kocsikulcs, fizetés, személyi igazolvány minden egy helyen: az Apple Wallet-ben. A BMW volt az első autógyártó, aki az indítókulcsot elhelyezte a wallet-ben. Elő sem kell venni a telefont, hogy indítsunk. További megoldások várhatóak, hogy személyi azonosításra is alkalmas legyen, vagy akár reptéri azonosításra.
  4. Apple Maps, térkép: van még hova fejleszteni a navigációt. Részletesebb adatokkal látta el az Apple Maps-et. A navigáció hasznos infókkal látja el az utazót. A navigáció pedig az Apple Watch óráján folytatódik tovább. A telefon képernyőjén pedig nagyon pontos AR (Augmented Reality) élményt adó tájékoztatásokat jelenít meg.
Apple Maps street view with AR
A kép forrása: apple.com

Mindezek mellett számos újdonság, és haladó ötletek kerültek be az új iOS 15-be.

A Flutter új kiadása megcélozza a csillagokat

A tavaszi, márciusi 2.0-ás kiadás hatalmasat szólt, amikor a meglévő Android és iOS mobil platformok támogatása mellett a Google hivatalosan is “production ready”, vagyis stabil kiadássá nyilvánított még 4 platformot: Web, Windows, Linux, Mac OS operációs rendszerek.

Ezeket tovább tudta fokozni a 2.8-as verzió kiadásával. (Ami elhozta a Dart 2.15-ös kiadását is … mellékesen.)

Az új Flutter kiadás tovább fokozta a teljesítményt, még optimálisabbá téve a futtatást a mobil telefonokon, valamint a webböngészőben. A memóriafogyasztásból is sikerült lefaragni, amiről azt gondolhatnánk, hogy nem fontos a mai memória bővében lévő telefonokon. Nagyon tetszik, hogy a Google ezekre folyamatosan nagy hangsúlyt fektet, és nem lazít.

Az appok telepítőjének letöltési méretét kiadásról kiadásra csökkenti. Ez azért fontos, mert a natív Android vagy iOS applikációkkal szemben van egy 4-7 Mb-os többlete a Flutter app-oknak, amit úgy néz ki, a minimálisra akarja csökkenteni a Google. Ennek persze stratégiai okai is vannak véleményem szerint, hiszen ne felejtsük, hogy nem csak mobilokba szánja az alkalmazásokat a Google, hanem IoT eszközökbe. Itt már igen is van jelentősége pár Mb megspórolt kódterületnek.

A fent említett teljesítménybeli javulásnak van még egy nagyon pozitív üzenete. Mindezt ingyen! Nem nekünk kell ezzel törődni, hanem alapból jár, ha a legújabb Flutter SDK-t (Software Development Kit) használjuk. Melyik az a cég, ami manapság ingyen ad ilyet?

Egyre jelentősebb partnerek

Decemberben lett hivatalos, hogy a Samsung a Fuchsia OS-t (az Android lecserélésére szánt operációs rendszer) kívánja telepíteni a telefonjaira. Erre persze még néhány évet várnunk kell.

Nem ez volt az első, példa nélküli együttműködés, hiszen az év első felében a Microsofttal közösen fejlesztették, hogy a Flutter keretrendszerben megírt appok futtathatóak legyenek Windows rendszereken. Sőt, egy kezdetleges marketplace-t is kialakítottak, ahova további appok érkezhetnek. Ez, elnézve az Apple “side-load” (az, amikor nem csak a Store-ből lehet appot telepíteni, hanem más partnerektől letöltve) elleni kommunikációját tekintve egy másik szegmenst céloz. A Google mindazonáltal sosem próbálta beszűkíteni a partnereit. Minél inkább egy nyílt platformot hozott létre az évek alatt. Lásd a változatos mobil telefon és kijelzők felhozatalát.

A cikkben igyekeztem belesűríteni ezt a tartalmas évet. Nem minden fért bele, de a lényeg talán igen.

Lássuk mit hoz 2022!

A Fuchsia OS az Androidot válthatja a Google-nél
Új korszak kezdődik a mobilok világában

A Samsung és a Fuchsia OS - Samsung Community
A Google és a Samsung házassága. A kép forrása: Community.Samsung

Hozzászoktunk, hogy ha mobil telefonról van szó, akkor két nagy táborról beszélhetünk: Android vagy iOS. Bár nem csak ez a két platform létezik, piaci elterjedésük mellett eltörpülnek az egyéb megoldások. Az elmúlt időszak mobilos operációs rendszerek változatlanságát a Huawei Harmony OS bejelentése törte meg. Pár hónappal később pedig megérkezett a bejelentés: a Fuchsia OS hivatalos lett, és nem kisebb szereplővel karöltve, mint a Samsung.

Mi az a Fuchsia OS?

A codemagic.io egy posztban szedte össze, hogy mik az új Fuchsia OS várományos előnyei. Hogyan épül fel? Ezekből szemezgettem.

A Fuchsia OS egy olyan új operációs rendszer, ami szakít a Linux kernellel, és helyette a Zincorn mikrokernelt használja. A mikrokernelek általában a minimalitás elvét követik, és bár a Zircon alkalmazza a mikrokernelek által népszerűsített koncepciók közül sokat, nem törekszik a minimálisra. A Fuchsia mikrokernel architektúrája segít csökkenteni a rendszer futásához szükséges, megbízható kód mennyiségét.

A Fuchsia OS négy alapelve: biztonságos (secure), frissíthető (updatable), befogadó (inclusive) és gyakorlatias (pragmatic). A dokumentumok a következőképpen írják le ezeket az elveket:

  • Biztonságos (Secure): csak a legszükségesebb jogosultságokat kapja meg egy alkalmazás
  • Frissíthető (Updatable): akárcsak a webes tartalmak, az appok is jönnek-mennek egy eszközön. Ennek megfelelően a biztonsági frissítések bármikor megérkezhetnek a különböző eszközökre. Saját meglátásom: nem csak jogosultságokat fogunk ezután engedélyezni az appoknak (pl. saját GPS helyzetünk megadása), hanem ha kell, akkor egy biztonsági frissítés megléte is szükséges lesz, vagy egy biztonsági hardver komponens (chip) megléte is.
  • Befogadó (Inclusive): sok nyelvet támogat, úgymint C++, Web, Rust, Go, Flutter és Dart.
  • Gyakorlatias (Pragmatic): nem csak egy tudományos koncepció, hanem éles környezetre szánt rendszer, aminek meg kell felelnie az olyan alapvetéseknek, mint a teljesítmény.

Látható, hogy magában hordozza mindazokat a követelményeket, amiket az elmúlt 13 (14) évben a Google tapasztalatot összegyűjtött a mobil appok piacán.

Támogatja a Flutter-t?

Ahogyan a fenti cikk is írja, a Flutter-t alapból támogatni fogja. Mindamellett a meglévő Androidos applikációkat is.

A Fuchsia OS F4-es kódnevű release bejegyzése (2021. december 9.) pedig kifejezetten megemlít egy Flutter-es optimalizálást.

Release notes for Flutter on Fuchsia OS
Az F4 release bejegyzése

Mi lesz a Flutter jövője?

A Huawei korábban az Android rendszerre fejlesztett mobil appokat képes volt futtatni. Valamint a Harmony OS leírásokat átnézve látható, hogy gondolatvilágában nagyon sokat köszönhet a Google-nek. A Flutter fejlesztőknek szánt csomagkezelő oldalán sorra jelennek meg a GMS (Google Mobile Service) átiratai, HMS (Huawei Mobile Services) néven. Tehát a jövőben a Flutter app-ok futtathatóak lesznek a Harmony OS-en.

A fenti összeborulás pedig tovább erősíti a Google dominanciáját egy olyan piacon, ahol képes volt 13 év után megújulni a platform. Kinőtte a gyerekbetegségeit (teljesítménybeli lemaradás; sokfél kijelző támogatásának kényszere), sokat tanulva az elmúlt évekből. Az, hogy a Google hagyta (bizonyos licenszelési feltételek betartása mellett) ezt a sokszínűséget, mára nagy előnyévé vált.

Kétségtelen, hogy nem mindenkinek tetszik (a mostanában Apple által kirobbantott marketing kampánya a side-loading ellen) a biztonság oltárán feláldozott terjeszkedés, de az átlag felhasználónak nem mindig ez számít. Ugyanakkor mellé téve, hogy a Google az idei nyári Google IO konferenciáján minden megnyilvánulásában elszántan lépett fel a személyes adatok védelme mellett.

Minden esetre a Samsung Fuchsia OS rendszerre való áttérése még várat magára (néhány év), de a példán kapva elképzelhető, hogy több telefongyártó is követni fogja a példáját. Nem figyelmen kívül hagyva azt a tényt, hogy a Fuchsia OS az IOT eszközöket is be akarja venni (csakúgy, mint a Harmony OS nyilatkozataiban).

Személy szerint, amint én látok a Flutter-rel az az, hogy minden eszközt, aminek képernyője van, el akar foglalni. Aminek pedig nincsen kijelzője, oda a beágyazott (embedded) változatára készült Dart kódokat szánja.

Izgalmas időszak következik, és még van idő felkészülni rá.

Ha te is értékálló megoldásokat szeretnél létrehozni, de nem tudod, hogy hogyan indulj el, akkor keress bizalommal. Beszéljük át, hogy a te üzletedbe hogyan illeszkedik egy “Mobile-first” terv.

2022-re versenyhátrány lesz a natív mobil alkalmazás fejlesztés módszer
Most még nem késő váltani

forrás: Pixabay / stevepb

Látszik a kiélezett harc a két nagy mobil platform óriás, a Google és Apple között. Mindegyik dominanciára törekszik, azonban más-más piacokon teljesítik túl egymást. A harc inkább a felszín alatt dúl, azonban cégtulajdonosként mindkettő piacnak meg kell felelni. Mégpedig gyorsan, ha felhasználókat akarunk szerezni. Tovább nehezíti a fejlesztési költségek kordában tartását, hogy a Huawei is kijött a saját platformjával. Ezáltal ismét sokszereplőssé válik a tér.

Hogyan áll a piac a mobil platformokkal?

Amióta 2007-ben az Apple előrukkolt az érintőképernyős mobilokkal, majd a következő évben a Google is követte, egy korszak indult útjára. Megszülettek a mobil app-ok. Ezután a Microsoft is beszállt harmadikként a nagyok közé, a Windows Phone-nal, de ez mára kihalt.

Ki merne ma beszállni a nagyok közé? A Huawei kényszerűségből felvállalta. Bár neki egy kellően nagy piaca van, de a siker még így sem garantált. A Huawei 2021-ben már hivatalosan is a Harmony OS-t jelentette meg, elsőként a Huawei P50 sorozaton.

Ez persze nem nevezhető trendnek, hogy várható további platform, de minden esetre érdemes időről időre felkészülni erre a ritka eseményre. Mobil fejlesztőként pedig adaptálódni a kívánalmakhoz.

Mi az új módszer a mobil alkalmazás fejlesztés területén?

A cross-platform, vagy más néven keresztplatformos fejlesztés nem idei találmány, de talán elmondható, hogy nagy lendületet kapott. Ennek oka, hogy a digitális termékek száma tovább nő, viszont nincsen elegendő számú szakember, aki ezeket elkészítse. Ma már 10-30 fős csapat kell egy jelentős alkalmazás előállításához: architekt, fejlesztő, tesztelő, UX/UI researcher, Business Analyst (BA), PO/PM, stb.

Belátható, hogy ha egy-egy területen lehet picit is költségeket vágni, akkor előnyre tesz szert a vállalkozás. A cross-platform mobil alkalmazás fejlesztés módszer pont ebben rejlik:

Írjuk megy egyszer, és használjuk fel többször.

Ne kelljen ugyan azon a megoldáson két különböző csapatnak dolgoznia, duplikálva ugyan azt a munkát. Márpedig a natív fejlesztésnek ez a hátránya. Ráadásul sokszor vita tárgya, hogy melyik csapat megoldása a jó. Melyik maradjon? Nem beszélve a fejlesztések közötti sebességről, ami az egyes kiadások határidejét tolja egyre távolabb.

A mobil fejlesztés ezen módszerét már korábban felismerték, és az utóbbi időben előtérbe kerültek a jó minőségű keretrendszerek. Ezek közül a React Native és a Flutter a kiemelkedők, amik uralják a fejlesztők piacát.

Mi az előnye és hátránya a cross-plaformnak?

Előnyök:

  • költséghatékony: egy új platformon való megjelenés nem jelent kétszer annyi időráfordítást
  • a tervezéstől kezdve közös megoldásban lehet gondolkozni, és csupán kevés helyen van szükség a platform eltéréseit figyelembe venni (ujjlenyomat olvasó vs arcfelismerés; GPS beállítások; egyéb engedélykérések; stb.)
  • hibatűrő: egy jó keretrendszer együtt fejlődik a Google vagy Apple operációs rendszerével, gyorsan reagálva rá
  • támogatás: élvezzük a hatalmas fejlesztői közösség nyújtotta előnyöket
  • egységes kinézet minden platformon
  • ugyan az a csapat készíti a kódot, és ezáltal nagyobb az összetartás

Hátrányok:

  • speciális, főként az eszköz hardver elemeire épülő technológiákat nem, vagy nem teljesen használja ki egy keretrendszer
  • a megszokott platform felhasználói felületei eltűnhetnek
  • új nyelvet kell megtanulni, ami időbe/költségbe kerül a cégnek

Látható, hogy a cross-platform módszer a mobil alkalmazás fejlesztésben egyértelműen előnnyel bír.

Van más megoldás is?

Mindezek mellett szót érdemel az egyre elterjedőben lévő low-code vagy no-code módszer. Itt arról van szó, hogy nem szükséges programozói fejlesztői tudás egy alkalmazás elkészítéséhez. A munka nehezét a keretrendszer támogatja, és “összekattintgatós” módszerrel bárki elvégezheti.

Ezeket a módszereket előszeretettel alkalmazzák a startup fázisban lévő, fiatal csapatok, akik gyorsan ki akarják próbálni a koncepciójukat egy mobile-first megoldással.

A programozói, vagy rendszerszervezői tudás ezeknél az eszközöknél nagy hasznát vehetik a “fejlesztők”, mert itt is igaz: a jó terv fél siker. Az absztrakt gondolkozásra szükség van, hogy a végtermék jó legyen.

Az idő meghozza, hogy mennyire érettek ezek a low-code eszközök.

Extra csavar, amit csak a Flutter tud

Természetesen a fejlesztők létszáma nem egyedül a mobil alkalmazás fejlesztés terén jelent gondot.

A Google a mobil platformok mellett a keresett FrontEnd-es szakmának is segít azzal, hogy a Flutter Web-et kifejlesztette. Aki eddig mobil fejlesztő, backend szerver oldali fejlesztő volt, ezáltal tud böngészőben futó web-alkalmazásokat (PWA) készíteni.

De a Flutter nem állt meg itt, hanem Linux-ra, Windows-ra, Mac OS-re is lehet vele natívan futtatható alkalmazásokat készíteni. Mindezt a megszokott tetszetős kinézettel, és a teljesítményre optimalizálva.

A fent bemutatott cross-platform módszert érdemes minél előbb alkalmazni a mobil app fejlesztési projektekben. Persze nem csak ott!

Ha még bizonytalan vagy, vannak kérdéseid, nem tudod, hogy hogyan vágjál bele, akkor keress meg az elérhetőségeim egyikén.

Szívesen átbeszélem veled a lehetőségeket, a szükségleteidet. Igény esetén beindítom a projektet, együtt dolgozva a meglévő csapatoddal.

Egy cégvezető, aki bárcsak előbb váltott volna cross platform-ra
Egy keserű tapasztalat története

Not using cross platform is a guarantiueed failure.
A biztos bukás garantált. Forrás: Pixabay, @Kanerori

Ez a cikk egy megtörtént beszélgetés alapján született. A cégvezető kiléte természetesen nem publikus, de nem is ez a lényeg. Számos hasonló eset történhet meg bárkivel, aki nem vált időben cross platform-ra.

Előzetesen tisztázom a fogalmat, hogy mit is a cross platform (kereszt platform).

Cross platform: olyan technológiai megoldás, amivel úgy lehet több eszközön is működő megoldást létrehozni, hogy minimalizálja a ráfordított időt. Ez azt jelenti, hogy 2 fejlesztő helyett elegendő lehet 1 fejlesztő alkalmazása.

Natív vagy cross platform megoldás legyen?

Az alábbi eset egy partneremmel esett meg, ami szerintem nem egyedi.

Mobil app-ot kezdett fejleszteni, két csapattal, két platformra, Android és iOS. Klasszikus fejlesztési gyakorlat, amikor egyszerre kell mindkét operációs rendszert támogatni. A gyors felhasználóbázis növelés miatt az Android, a fizetési hajlandóság miatt az iOS tábort kell elcsábítanunk.

Történt aztán, hogy a két csapat nem egy ütemben tudott haladni a feladattal. Az egyiken már megvoltak a funkciók, de a másikon elakadtak. Ha a felhasználók felé 1 terméket kommunikálunk, akkor nem megengedhető a féllábas megoldás. Ez persze borította a projekttervet. Annál később lesz várható bemutatható verzió. Annál tovább kell várni a bevételekre.

A bajt tovább tetézte, hogy az egyik csapat nem tudta tovább folytatni a munkát. Az a platform elakadt. Tehát már van egy félig kész termék az egyik oldalon, és még sehogyan sem áll a másik. Ez látható, hogy igen gyorsan költséges folytatás lesz.

Most arról nem is szólnék, hogy mi van akkor, ha a két csapatnak azon kell egyezkedniük, hogy melyikük megoldása maradjon a végső? Nem pontosan ugyan úgy néz ki a két operációs rendszeren a felület, vannak eltérések.

A történet vége az lett, hogy el kellett dobni mindkét, natív megoldást, és újrakezdeni egy közös cross platform keretrendszerben. Ez végül a Flutter lett (bármelyik megfelelt volna). Látható, hogy a végén nagyon megdobta a fejlesztési költségeket, időt. Ez minden cégvezető rémálma.

Mutatok néhány ismerős megoldást, ami szóba jöhet, mint mentőöv.

Ezek bizonyítottak a cross platform megoldásokkal

Az első ilyen cross platform a Java nyelv volt. Írjuk meg egyszer az alkalmazást, és futtassuk azt többféle operációs rendszeren. Legyen az Windows, Linux vagy Mac OS. Az elmúlt években a Kotlin nyelv feltörekvőben van a Java mellett. Biztonságosabb kódot lehet benne írni, és ugyan azt az ökoszisztémát használja, mint a Java, a JVM-et.

A web-en hamar előjöttek a böngészők sokfélesége. A fejlesztők sokat babráltak egy adott kinézettel, mire elnyerte végső formáját az ismertebb böngészőkön. Ki ne emlékezne erre az időszakra, amikor a 2000-es évek elején többször kellett megírni azt a fránya FrontEnd kódot, hogy mindenhol pixel biztos legyen. A szabványok aztán ezt szabályozták, és mára ez könnyebbé vált. A keretrendszerek pedig levették a terhet a fejlesztők válláról.

A mobilos világban több megoldás létezik.

Ilyen a React Native, a Flutter, a Cordova, a Xamarin, a Native Script. Mindegyiknek megvan a maga létjogosultsága. Egy közös van bennük, hogy ha egy csapat ismeri valamelyiket, akkor abban gyorsabban tud haladni az Android és iOS operációs rendszerekre szánt appokban.

Mi lesz 5 év múlva a ma működő cross platform megoldásokkal?

Az informatikában nehéz több évet előre jósolni. A ma még divatos, vagy népszerű eljárások, programnyelvek hamar népszerűtlenné válnak. A fejlesztők elpártolnak mellőlük, és már nem lesz annyira vonzó. Ezután pedig nehézkes lesz olyan szakembert találni, aki a meglévő termékünket képes javítani, vagy továbbfejleszteni.

Ez egy trend, és nem új dolog. Ez elkerülhetetlen, ami várhatóan utolér egy terméket. Lehet körültekintően választani a különböző programozási nyelvek közül, de garancia nincsen. Egy jó megoldás lehet ilyenkor, ha körülnézünk, hogy egy adott nyelvet mire használják a fejlesztők, és ez alapján választunk.

Ha nem csak egy adott, speciális területre vethető be a nyelv, akkor jó eséllyel vonzó marad évek múltán is, és lesz, aki használja. Ilyen például a népszerű JavaScript nyelv, ami 1996-os megjelenése után a 2000-es évek elején kezdett elterjedni. Ma már szerver oldali kódokat is írnak benne, nem csak a böngészőkre szánt FrontEnd-et. Bár sokan nem szeretik, azonban várhatóan még sokáig velünk marad.

Ha a fenti rossz forgatókönyvet szeretnéd elkerülni, vagy már megtörtént a baj, de szeretnél több infót gyűjteni, akkor keress meg az elérhetőségeim egyikén. Egy rövid beszélgetéssel megnézzük, hogy neked mi válna előnyödre.

4 nyomós ok, amiért most megéri a Flutter fejlesztés
2021-ben a mobil app-ok további lendületet kapnak

A Flutter cross-platform terjedőben van.
forrás: Pixabay.com

A nyár nem telik el eseménytelenül. A Webuni szervezésében Augusztus 10-én velem együtt három, a mobil alkalmazások fejlesztésben jártas szakembert kérdeztek meg a Flutter fejlesztés előnyeiről, jövőjéről. Nagyon jó beszélgetés kerekedett, amiből elhoztam 4 fontos kérdést, amire érdemes figyelni. Lássuk is!

Az eredeti teljes YouTube videó megtekinthető, amiből összefoglaltam a lényeget.

A webináron társaim voltak Juhos István, Senior Software Engineer, a BME oktatója; valamint Vogel Csongor, Senior Android és Flutter Software Engineer, az ff.next nevű fintech startup senior munkatársa.

Aki nem akar kódolni, de érdekli a Flutter fejlesztés

Egy eszköznél mindig vonzó, ha minél előbb ki tudjuk próbálni. Bodor Ádám kérdésére, hogy mi kell hozzá, István válaszolt.

Az első és legegyszerűbbb, hogy a dartpad.dev, online felületén ki tudjuk próbálni a Dart nyelvet, valamint előre megírt Flutter minta alkalmazásokat. A kódot tudjuk módosítani, ami egyből kipróbálható.

Lehet-e a Dart nyelv ismerete nélkül, még egyszerűbben? Igen!

Ez a FlutterFlow, egy online felület, ahol Drag&Drop módon, össze lehet kattintgatni egy működő alkalmazást. Még eléggé kezdetleges, de folyamatosan kap új funkciókat. A lényege, hogy az ebből generált kód ténylegesen egy működő alkalmazást ad. Integrációt biztosít még a saját, meglévő szervereink API-jaival is.

Korábbi cikkeimben írtam a FlutterFlow online szerkesztőről és a Figma UICode pluginjáról. Ha bővebben olvasnál róluk, akkor kattints a linkekre.

Milyen a Flutter fejlesztés belépési szintje?

Amit ki lehet mondani, hogy a Flutter viszonylag kényelmes – mondja István. Az elején ugyan egy új nyelvet, a Dart-ot kell megtanulni. Ez azonban egy új, modern alapokra építkező nyelv. Ha valaki programozott már Java-ban, Kotlin-ban, Swift-ben, C-ben, akkor ez nem lesz idegen tőle. Az többi nyelvhez képest az eltéréseket megtanulja, átnézi a dokumentációt, és kezdhet fejleszteni. A Visual Studio Code (VS Code), Android Studio szerkesztők legenerálják a kezdő alkalmazást, ami működik, alap dolgokat meg lehet nézni benne. Sikerélmény van mindjárt az elején.

“Nincs még egy ilyen platform, amivel ilyen tooling-gal, ilyen gyorsan el lehet kezdeni fejleszteni.”
Juhos István

Le kell cserélni a régi kódbázist?

Ennél a résznél valós környezetből hallhattunk róla infót, hogy egy már megírt, régi alkalmazásnál ezt hogyan kell érteni. Csongor elhessegette azt az általános megközelítést, ami sok cégvezető rémálma: újra kell írni az egész alkalmazást.

Ennél vannak kifinomultabb módszerek. Egy nagy alkalmazásban, ha el tudunk különíteni modulokat / funkcionalitásokat (képernyőket), akkor oda befűzhető egy Flutter-ben megírt modul, ami Android-on vagy iOS-en jól működik.

Ez alapvetően már megköveteli a natív platform ismereteket. De jellemzően, ha 1 ilyen ember van egy csapatban, aki el tudja végezni az integrálást, akkor nagyban növelhető a produktivitás.

Milyen a munkapiaci kereslet a Flutter fejlesztés iránt?

Fontos kérdés, hogy ugyan sok fejlesztőt érdekel ez az újdonság, és szívesen fejlesztenek benne, de mégiscsak a piac fogja kifizetni a fejlesztő bérét. Erre a kérdésre többféle válasz született.

Nagyon le vagyunk maradva – kezdi ezzel a felütéssel Csongor. Európában a lengyelek élen járnak a technológia alkalmazásában. Nyugat-Európában felismerték, hogy a régen megírt alkalmazásokat vagy Flutterben érdemes újraírni, vagy apránként, a modulokat lecserélni benne. Merthogy erre is van lehetőség. Távol-keleten, Kínában egy nagyon erős növekedés látszik. Indiában pedig az olcsó fejlesztési költségek további versenyelőnyhöz juttatják a megrendelőket.

István azzal kezdi, hogy ha van angol tudás, és hajlandóság megtanulni valami újat, akkor nyugodtan pályázzunk külföldi állásokra. A mostani távoli munkavégzési lázban égve sokkal elérhetőbbek lettek a külföldi munkahelyek is. Nem szükségszerű a kiköltözés, hanem remote munkák itthonról is végezhetőek. Maga egy-egy interjúzás tapasztalata pedig felbecsülhetetlen.

Zárásként a magam véleménye erről az, hogy ha megvan már egy natív Android-os vagy iOS-es tudás, akkor amellé mindenképpen érdemes egy valamelyik cross-platformos keretrendszert megismerni. Előnye ennek, hogy a másik operációs rendszerre is tudunk fejleszteni, kevés hozzátanulással. Ha pedig a Flutter fejlesztés megtetszett, akkor érdemes azt elmélyíteni, és munkát keresni.

Ha megtetszett a Flutter, de nem tudod, hogy hogyan indulnál neki, vagy csak támogatásra van szükséged benne, akkor keress meg a kapcsolataim egyikén.

FlutterFlow: egy új Low-code eszköz, ami mobil app kódot generál
Muszáj megoldani a növekvő szakemberhiányt

A FlutterFlow low-code igérete
forrás: www.flutterflow.io

Idén visszatért a Google nagyszabású éves eseménye, a Google I/O. Május 18 és 20-a között rendezték, ezúttal az online térben. Ezt azonban már megszoktuk. Újdonságokból nem volt hiány, debütált a FlutterFlow nevű online eszköz, ami egy low-code (kevés kódolást igénylő) eszköz. Kipróbáltam, ennek osztom meg a tapasztalatait.

A low-code eszközöket nyomon követem, és kipróbálom, mert ezek már most is pótolják az IT-ban jelen lévő szakemberhiányt. Írtam már a UICode megoldásáról, ami a Figma designerek és az app fejlesztők táborát közelíti egymáshoz.

Ide fogok eljutni a FlutterFlow példával

Egy egyszerű példán keresztül néztem meg, hogy mit tud. Ez a végeredmény. Jelen esetben a Chrome böngészőben indítottam el, mert a Flutter Web-es támogatása első osztályú. Mobilon ugyan így nézne ki.

A végeredmény elkészült.

Előkészületek a FlutterFlow kipróbálásához

Az online eszköz a www.flutterflow.io oldalán érhető el, ahova egy Google accounttal regisztrálva máris hozzáfértem a felülethez.

Egyből végigvezet egy projekt beállításán, ami egy név megadásából áll. Adjunk neki egy nevet, és már kezdhetjük is a felületek kialakítását. Előtte még felajánlja, hogy már egy meglévő sablon alapján készítsen elő egy megoldást, vagy teljesen szabad kezet kapva, egy üressel kezdjünk.

Én a példában egy üres projekttel kezdtem, mert kíváncsi voltam, hogy mennyire bonyolult a játszadozás vele. Természetesen elérhetőek a tanuló videók, amik nagyban segítenek, ha elakadnánk.

A bal oldali menüben láthatjuk a választható widget-ek (kis grafikai komponensek) listáját. Van belőlük bőven, kedvemre válogathattam.

Csak fogd-és-vidd technikával be kell húzni a komponenst az előre elkészített Home screen-re. Ide én egy olyan listát adtam meg, aminek minden eleme egy termék képe és a neve.

A kezdőképernyő a listával.
Képernyőkép szerkesztése nagyon egyszerűen.

Ezután létrehoztam egy másik képernyőképet, hasonlóan egyszerűen, ahova akkor navigál az app, amikor rákattintunk egy sorra.

Ez lett a Részletek képernyő. A tetején van egy nagy kép, alatta különböző formázásokkal a neve, leírása, származási ország, ára. A formázások a megszokott kényelmes beállításokkal működik: betűméret, vastagítás, döntés, színe, igazítás. Egyszerű.

A termék részletek képernyő
A termék részletek képernyője.

Amiben nagyot tud az FlutterFlow low-code

Eddig mondhatnánk, hogy nem rossz, de azért mutasson valami igazán menőt!

Ez nem más, mint az, hogy a meglévő szerverünket (BackEnd) hozzá tudjuk kapcsolni. Lehet ez saját, meglévő interfész, vagy akár a Google Firebase cloud megoldása. A példában a Firebase integrációt próbáltam ki, ami ugyan igényel némi hozzáértést, de nem lehetetlen küldetés. Tulajdonképpen a szokásos beállításokat kell végigcsinálni, és nekem elsőre működött.

Nem írom le a lépéseket, de a lényeg, hogy meg tudjuk adni, hogy az adatok milyen szerkezetben érkeznek a szerverünkről. Ehhez egy adattípust készítünk el, és a későbbiekben ezt használjuk mindenhol.

A kezdő képernyőn a listát feltöltjük a szerverről jövő adatokkal. A termék kép címét, és nevét már ebből az adattípusból vesszük. Ha kiválasztunk egy elemet, akkor megjegyezzük, hogy melyik volt az, és a részletező képernyőn pedig bővebb infókat jelenítünk meg róla. Ennyire egyszerű. Mindezt úgy, hogy ugyan nem árt, ha láttunk már kódot, de nem kell kódot írnunk. Inkább csak táblázatokat töltünk ki hozzá.

Nagyon sok minden van a FlutterFlow alap eszköztárában, pl. hogy előnézetben egy kattintható drótvázat (wireframe) kapunk, ami arra jó, hogy legyen egy érzetünk a végtermékről. Sokszor már ez is elegendő a felhasználóknak, hogy kiderüljön, hogy mit csinál az app.

A gyorsan növekvő IT szakember hiány számos területen nehezíti a projektek indulását vagy befejezését. A low-code, no-code, vagy a kereszt-platformos (cross-platform) megoldások ezeket a terheket enyhíthetik. Ezekkel pótolhatóak fejlesztői pozíciók, amikre esetleg éveket kellene várnia egy cégvezetőnek.

Ingyenes vagy fizetős?

Kezdtem az ingyenes részével, ahol kipróbálhattam a fő funkcióját, hogy elkészíthettem a képernyőket. Ezután le akartam tölteni a kódot, hogy kipróbáljam.

Havi 30 USD-ért megkapjuk a kódot, ami azt jelenti, hogy sok órányi kódolástól mentesülünk.

A Pro-ban már havi 70 USD-t kell fizetnünk érte, ami jól jöhet egy mobil app fejlesztő stúdiónak.

Minden esetre az első 14 nap ingyenes, így el tudjuk dönteni, hogy áldoznánk-e rá?

Egyelőre még egy friss, első verzióról van szó, tehát sok hiba lehet benne.

Konklúzió

Összegzésként a FlutterFlow low-code webalkalmazásról elmondható, hogy érdemes volt kipróbálnom. Sok funkciót tud már most is, ami várhatóan hamarosan még tovább bővülnek.

Ennek, és számos, a közelmúltban útjára indult az eszköznek a megjelenése egyértelműen bizonyítja, hogy nagy jövő előtt áll a Flutter UI keretrendszer. Nem csupán mobil, de a web és asztali platformokat is meghódítja.

Ha további kérdésed lenne erről az eszközről, vagy magáról a mobil app fejlesztésről, a kapcsolati oldalamon vagy LinkedIN-en elérhető vagyok.

2021 csodafegyvere: gamification avagy játékosítás

A Candy Land gamification, más néven játékosítás megoldásra egy jó példa.
forrás: Candy Land – Google Play Store

Az elmúlt év eseményei új hozzáállást, új szokásokat honosított meg sokunknál. Új hobbijaink lettek a szobai létre kárhoztatva. Kimutatták kutatások, hogy nagyban nőtt a mobiltelefon nyomkodásával töltött időnk. Természetesen a játékok taroltak, a videóhívás app-ok mellett is. A cikkemben ez előbbit veszem górcső alá, hogy mivel érték el ezt a játékkészítők. Nagy titkot nem árulok el, ha azt mondom: játékosítás, vagy nemzetközi nevén gamification.

Egy korábbi cikkemben feldolgoztam ezt, bár a másik oldalról elkezdve. Abban a cikkemben arról írtam, hogy

“Játékos elemek alkalmazása, alapvetően nem játék környezetben.”

A kutatómunka

Célirányosan keresgéltem a Play Store-on a játékok között, hogy tapasztalatot gyűjtsek az un. idle/casual click típusú játékok körében, hogy hogyan alkalmazzák a játékosítás, avagy gamification elemeit. Belebotlottam a Candy Land nevű játékba. A “candy” kulcsszóra kb. 250 találat jött fel, azonban engem megfogott a kedves megjelenése. Rendben, valahol el kellett kezdenem a sok mézes-mázas játék közül. Telepítettem. Szigorúan szakmai szempontokat figyelemben véve 🙂

Az app 45 Mb-os letöltési mérete kellemes meglepetés volt. Annak tükrében, hogy amikor elindítottam, mit kaptam cserébe.

Grafika és zene

Egy fülbemászó zenével indulunk. Egy nagy gomb van a közepén, el sem tudjuk téveszteni, hogy mi legyen a következő lépés. Itt álljunk meg egy gondolat erejéig. A képernyőn megkapom egyből a 3 kérdésemre a válaszomat:

  1. Hol járok?
  2. Mit lehet csinálni?
  3. Hogyan tudok tovább haladni?

Ez egy szűrő, hogy mennyire megnyerő az egész számomra. Természetesen tovább léptem, hiszen játszani akartam.

Egyből egy elemekkel tűzdelt térkép jött velem szembe. A szokásos részletek jól azonosíthatóak, ha megvizsgáljuk őket:

  • hol vagyok én? Avatár a képernyő alján
  • földrészek vannak, ahogy feljebb tekerek a térképen. Már alig várom, hogy elindulhassak. Vajon mi lehet arra? (várakozás, korlátozás érzése)
  • A képernyő tetején feltűnik a “szívecske”, ami az életerőmet mutatja. A + jel utal valami feltölthetőségre.
  • A sárga “coin”-ok pedig a Candy Land valutámat mutatja. Ebből lehet életerőt, előrehaladást, stb. vásárolni. Rábökve egyből bejön a Coin Shop, ahol vehetünk is ilyet.
A Candy Land játékban fontos a térkép
Központi eleme a térkép

Játékmenet

A Candy Land játékmenete igazán ért a játékosítás / gamification megoldásaihoz.

Nem maradtam egyedül, megkaptam minden segítséget, ha elakadnék. Most már van célom: Gyűjtsem össze a pontokat! Ennél világosabb cél nem is lebeghetne a szemem előtt. Kezdjük is!

Kell egy cél
Extráink a játék közben

A készletek szűkösek, takarékoskodni kell vele. Ezt a Moves (lépések) jelzi. Ha elfogy, vége a körnek. Jobbra fent mutatja az összegyűjtendő pontokat. Ezt kell elérni. Észrevettem magamon, hogy elkezdtem logikázni, hogy hogyan tudnám mielőbb összeszedni. Nem volt elégséges az egyszerű “lehúzom az ujjamat, és kész” stratégia.

A Candy Land játéktere
A jól átlátható játéktér

A fenti képen van pár elem, amiket fokozatosan kaptam meg. Nem egyszerre zúdította rám a lehetőségeket. Először megtanított egy kis lépést, aztán nehezített. Ha már ez is jól ment, bedobott egy új elemet.

Ez is fontos ismérve a játékosításnak. Legyen gyors sikerélmény (quick win), érezzem úgy, hogy kapok jutalmat. Ezek az apró vállonveregetések elmélyítik a bizalmat. Apropó, sikerélmény. Az elején megkaptam a segítséget azáltal, hogy villogtak azok a cukorkák, amikre ha rányomtam, biztosan meglett a 3 egysorban. Ez a későbbiekben eltűnik, de addigra már az ujjaimban van az összes kombináció.

A képernyő alján feltűnnek az extrák, amiket bevethettem (miután feloldottam őket). Ez a szabad választás látszatát keltik. Ezek olyan trükkös elemek, amik nem igazi választások (álválasztások), tehát a játék szempontjából nem ad kiemelkedő előnyt, viszont pszichológiailag úgy érzem, hogy mégis rajtam múlott.

A pályát sikeresen teljesítve egy szusszanásnyi időre értékeljük, hogy mennyire ügyesek voltunk. Mennyi pontot szereztünk (nincsen jelentősége a játék során), megkaptunk a kitűzőinket, mehetünk a következő szintre.

Szép munka a pálya végén
Szép munka!

Megvásárolható cukorkák

Megvehető az előrehaladás
Megvásárolhatjuk a továbbhaladásunkat

Ezeknek a típusú játékoknak fontos eleme, hogy a haladásunkat tudjuk gyorsítani. Vagy sokat játszunk, vagy megvesszük a coin-t. Ezeket beszerezhetjük, ha megnézünk egy videót. Ha sok van belőle, akkor most elkölthetjük.

Próbáljuk újra
Vagy tovább folytatjuk a gyűjtögetést

Egyből melléteszem, hogy ennek Ft-ban is kifejezhető értéke van. A játéknak egy fontos része ezek beszerzése. Ha kellően messzire jutottunk, biztosan nem akarjuk már otthagyni a további pályákat. Ez az elveszett haszon elvén alapuló megoldás. Ezt is kiválóan alkalmazza.

Látható, hogy egy videó mégnézéséért cserébe mennyi coin-t kapunk.

Fontos része a pénzen megvásárolható kiegészítők
A bolt

Nos, a játékot ugyan nem pörgettem ki a hétvége alatt, hiszen nagyon sok pályája van, viszont minden szinten kapok új elemeket. Folyamatosan benntart a folyamatban azáltal, hogy a menetek pörgősek, gyorsak. Van visszacsatolás. A tárgyak vásárlásával, vagy átváltásával azt az érzetet kelti, hogy fejlődöm.

Candy Land – Free puzzle game

Ha játszanál egy jót a KingIT Solutions játékával, akkor a Play Store-on megtalálod.

Én most zúztam nyomkodni!

Harmony OS: mi lesz ezután az alkalmazásainkkal?
Felértékelődik a cross-platformos fejlesztői tudás

A Huawei a Harmony OS bétaverziójával kezdi meg hosszú távú átmenetét az Androidról egyes okostelefonokhoz és táblagépekhez
forrás: xda-developers.com

A Huawei és az USA hegemóniájának egyik mellékterméke, hogy a Huawei már egy éve az új Harmony OS operációs rendszer kifejlesztésén munkálkodik. Ez a legújabb mobilokon már béta fejlesztői fázisba érkezett. A kérdés azonban adódik a fejlesztő cégeknek, hogy használhatjuk a már megszerzett keresztplatformos ismereteinket az új Hongmeng OS-en is?

Mi az a Harmony OS?

2019 augusztusában jött a hír, hogy a Huawei saját operációs rendszert fejleszt Harmony OS néven (kezdetben a Hongmeng OS nevet kapta, kb. “őskáosz”). Ezt először IoT (Internet of Things) eszközökre szánta hivatalosan. A 2.0-ás verzió pedig egy évre rá, 2020 szeptemberében hivatalosan is megjelent (watch, smart TV, head unit mellett) okostelefonokra. Az első hivatalos mobilok 2021-ben várhatóak szériában.

Lényegében hosszútávon az körvonalazódik, hogy az Android rendszert leváltja. Ami sok kérdést vet fel a szorosan összefonódó ökoszisztéma miatt. Bár a versenyképes minőség csak idő kérdése.

Melyik modellek kaphatják meg először?

Az xda-developers.com alapján a Harmony OS 2.0 developer béta verzióját ezek a készülékek kaphatják meg:

  • Huawei P40 (ANA-AN00)
  • Huawei P40 Pro (ELS-AN00)
  • Huawei Mate 30 (TAS-AL00)
  • Huawei Mate 30 5G (TAS-AN00)
  • Huawei Mate 30 Pro (LIO-AL00)
  • Huawei Mate 30 Pro 5G (LIO-AN00)
  • Huawei MatePad Pro (MRX-AL19)
  • Huawei MatePad Pro 5G (MRX-W09)
  • Huawei MatePad Pro Wi-Fi (MRX-AN19)

Ez egy frissítéssel kérkezhet meg az arra elszánt fejlesztőkhöz.

A fejlesztők élete

A cikk kitér arra is, hogy a kódot Java nyelven, és a UI képernyőket XML-ben lehet megírni. A Huawei ezzel azt reméli, hogy a fejlesztők körében népszerű lesz, és könnyűvé teszi az áttérést. Erre szükség is van, hogy a népszerű alkalmazások minél előbb átkerüljenek a saját Huawei App Galery-be. Az App Galery egy építőkockája a HMS (Huawei Mobile Services) ökoszisztémának. Ez a GMS (Google Mobile Services) huawei-es alternatívája.

2020 márciusában 50 000 alkalmazás volt elérhető, szemben a Google Play Store 3 milllió app-jával. Van hova fejlődni.

Lesz-e támogatás rá Flutter-ben?

A kérdés a Flutter hivatalos hibalistáján a #38437-es számot kapta, amiben aktív közösségi érdeklődés mutatkozik, hogy vajon lesz-e támogatás?

A Flutter hivatalos package repository-ját leszűrve feltűnik, hogy 2020 júniusától kezdődően számos csomag portolva van Flutterre, Android-os támogatással. Érthető, hogy az Androidra lőnek elsőként a magas penetrációja miatt.

A csomagok közül ott vannak az alapok: GPS, Machine Learning (ML), Augmented Reality (AR), Push Notification, Analytics, Maps, Ads.

Érdekesség, hogy van egy Huawei Contact Shield Kit Flutter Plugin, ami a mostani COVID-19 kapcsán jöhetett létre. Kifejezetten a kontaktkövetésre (elkerülésre) lett kihegyezve. Egyébként BLE (BlueTooth Low-Energy) technológiát használ.

A Flutter Embedder a Flutter legalsóbb szintű illesztő része, ami összeköti a keretrendszert az aktuális (mobil, böngésző) architektúrával. Ez mindig specifikusan van megírva, natívan, amit az adott eszköz megkíván. Emiatt mindig csak ezt a kis részt kell megírni, és a támogatás adott.

Ez nem tűnik korlátnak, így a támogatás biztosított.

React Native, a másik nagy szereplő

A keresztplatformos fejlesztés tárgyalásakor nem maradhat ki az RN sem. Az RN 0.60 verzió könnyű integrációt ígér a HMS-sel, ami a fő szolgáltatásokat nyújtja a mobilnak. Enélkül bajosan lehet üzemeltetni egy alkalmazást. A hivatalos Huawei oldalakon biztosítanak felőle, hogy az integráció könnyen megy.

A verseny jót szokott tenni a piacnak. Javulnak a szolgáltatások színvonala, nem ülhet bele a sikerbe egyik fél sem. Folyamatos az ádáz küzdelem a jobbnál jobb funkciókért. A verseny az árakat is lejjebb tolhatja, ami végül a fogyasztóknál csapódhat le nyereségként.

A keresztplatformra fejlesztő cégek komoly költségeket takaríthatnak meg azzal, ha egyszerre több platformra is képesek rövidebb idő alatt eljutni. Az, hogy ennek mi lesz a jövője, még sokakban kérdőjeles.

A technológiai választáskor figyelembe kell venni, hogy milyen meglévő csapat áll rendelkezésre. Webes, vagy inkább mobilos ismeret van-e több, és a technológia megtanulását eszerint beütemezni.

Egy FrontEnd-es webfejlesztő inkább a ReactNative mellett teszi le a szavazatát, míg egy natív mobilos szívesen tanul meg “flutterül”, Dart nyelven.

Hihetetlen, ezekből a lépésekből áll egy mobil app fejlesztés

mobil app fejlesztés fontos kelléke a vázlat

Az öt alap lépésről korábban már írtam egy cikksorozatot. Most egy konkrét mobil app fejlesztés menetét vezetem végig. Az elején kezdve, az ötlettől, a tervezésen át, a kiadásig.

Gondolkodjunk, keressünk ötletet!

Szerencsére ezzel nem szokott gondom lenni. Elképzelésekből nincsen hiány. Érdemes addig csavarni az ötletet, amíg valami igazán eredeti nem jön ki belőle. Egy jelentéktelennek tűnő “ötlet-magból” kiindulva, nagyon szerteágazó dolgok jöhetnek ki.

Ebben az esetben én egy TV reklámból vettem az ötletemet. Egy családi társasjáték, ami egy műanyag doboz, ami beszél a játékosokhoz, és bár annak tűnő, de mégsem hétköznapi kérdésekről kell eldönteni, hogy igaz vagy hamis.

Ez elsőre nem eredeti ötlet, számos ilyen alkalmazás van már a Store-okban.

Ezen a vonalon tovább gondolkozva jöttek egymásra az elképzelések. Honnan lesznek ilyen kérdések? Hogyan fog működni? Egy személy, vagy többen játszhatják? Ha többen, akkor a baráti asztal körül, vagy online? Ha online, ki lehet hívni valakit párbajra? Ha párbaj, akkor abban az adott időpontban kell lejátszani, vagy később is ráér? Ha később is jó, akkor nem lehetne, hogy egyszemélyesként is lehet játszani, és minden nap adott időpontban szól? Nem lehetne, hogy ezt átvigyem egy napi kihívásba? És így tovább…

Érezhető, hogy ebbe az egyszerű alapgondolatba mennyi minden beleférhet, ha kellően sokat foglalkozom vele. Elsőre egy egyszerűbb csomagot fogtam meg ebből, és így álltam neki.

Készítsünk hozzá rajzokat, terveket

Az elképzeléseimet vethettem volna papírra is. Sok helyen ezt javasolják, bár én már türelmetlenül vártam, hogy vizuálisan megfogalmazzam, ami a fejemben volt.

A tervezésre általában a Figma online szerkesztőjét használom. Ez kiváló 2 designer együttműködésére. Bárkivel meg tudom osztani a terveimet átnézésre. Nincsen korlátja. Ami még nagyon jó benne, hogy tudok mobilos drótvázat (wireframe) csinálni.

Először az adott témában gyűjtök vizuális részleteket. Keresek olyan app-okat, színeket, ikonokat, betűtípusokat, amikből majd összeépítem a művemet. Ezt itt tudod megnézni. A drótvázat pedig ide tettem. Ebben tulajdonképpen létre tudok hozni érzékeny felületeket, amik kattinthatóak, és átvisznek egy másik képernyőre. Olyan mintha máris működne 🙂

Mennyi időt fog igénybe venni, mire elkészül?

Ekkor szoktam nyitni egy Google spreadsheet-et a számításoknak. Megosztok egy letölthető változatot, hogy támpontot adjon a szükséges feladatok listájáról. Ez nem teljes, és a számok is mintaként szolgálnak. Összetett lista, az látszik rajta. Ezeket lehetne még jóval tovább részletezni.

a számítások táblázata

Hol fog életre kelni?

Nos, főként mobil alkalmazások fejlesztésével szeretek foglalkozni. Ha kell, a háttér részét is elkészítem Kotlin nyelven, Spring Boot web-alkalmazást. Szóval most a Google Firebase felhőszolgáltatását vettem elő. Ez tud mindent (sőt!), amire nekem szükségem lesz.

Szükségem lesz a kérdések tárolására, hogy folyamatosan újabb és újabb kérdéseket tudjak betölteni.

A felhasználók regisztrációja a későbbiekben szükséges lehet. Ez még alakulni fog.

Idáig fogok eljutni

Előre pörgetve az eseményeket, egy alap, un. MVP (Minimal Valuable Product = Minimálisan Használható Termék) így néz ki. Ezen már érződik a koncepció. Körvonalazódnak a színek, formák, elhelyezések.

Ebben a sorozatban tovább haladok a mobil app fejlesztés megvalósításával. Beszélni fogok az apró részletekről, döntésekről. Ha követed az írásomat, látni fogod, hogy hogyan alakul ki a végleges változat.

Amennyiben megtetszett, és te is szeretnél egy hasonlót magadnak, keress meg, beszélgessünk az álmaid mobil alkalmazásáról!

Borítókép: Halacious / Unsplash.com

Merre tart a kereszt platformok fejlődése a mobil eszközökön?
Melyiket válasszuk 2020-ban?

Az utóbbi években egyre elterjedtebbek az un. kereszt platformok használata a mobil app-ok fejlesztésére. Ami mindenre jó, az igazán semmire sem, tartja a közszó. Vannak azonban olyan helyzetek, amikor verhetetlenek ezek az eszközök.

A kereszt platform (cross-platform) vagy multi-platform azt jelenti, hogy egyszerre készül el az alkalmazás Androidra, iOS-re (Windows Phone-ra ???). Ebből érezhető, hogy azért előnyös a fejlesztőnek, mert elegendő egyszer elkészíteni az alkalmazást, és a feladat nagy részével megvan. A megrendelőnek szorosan kapcsolódik az érdeke ehhez, hiszen pontosan fele annyi fejlesztői munkát kell kifizetnie, mintha mindegyik platformra natívan, külön-külön készíttetné el.

kereszt platform mobil eszközökön megoszlása 2020 évben
A statista.com kimutatása alapján a React Native és a Flutter keretrendszerek 2020-ban a legnépszerűbbek

A thedroidsonroids.com cikke alapján készítettem ezt az összefoglalót.

A népszerű mobil kereszt platformok

A fenti ábrán látszik, hogy a React Native (42%) mögött kevéssel marad le a Flutter (39%). Az évek közti növekedésbeli helyzést egyértelműen ez utóbbi hozta.

A saját vállalkozással rendelkezők mindig tudni szeretnék néhány kritikus kérdéseikre a választ:

  • Melyik illik legjobban a projektemhez?
  • Melyik megoldás hozza a legjobb Time-to-market időt?
  • Az app-om stabilan megbízható lesz és felhasználóbarát?
  • Melyik lesz a legjobb, ha pixel-perfect kinézetet akarok?

A cikkből kiderül, hogy a követőtábor alapján fej-fej mellett halad a két framework. A React Native-t a Facebook 2015-ben jelentette meg, ami egy érettebb keretrendszert feltételez. Ezt azonban a Google, 2018-ban kiadott, Flutter béta megjelenése beérte mára.

Tudásban nehezen megkülönböztethető, apró eltérések vannak. Mindkettő natívan fut a telefonon, ez meglátszik a kiváló teljesítményen. Alkalmanként akár túl is teljesítve azt. Ennek ugyan ára van az alkalmazás méretében. Ez talán mára elhanyagolható, de érdemes megemlíteni.

Az, hogy ki melyiket használja, szinte ízlés kérdése. Meghatározhatja, hogy a fejlesztő korábban web oldalkat programozott, akkor a React Native JSX nyelve fog jobban kézre állni. A Flutter Dart nyelve viszont modern, szerethető és könnyen elsajátítható.

A gombok, listák, stb. az adott OS-re megszokott kinézetet hozza. Androidon a Material Design-t, iOS-en pedig a Cupertino Design-t. Az érzet és kinézet tehát teljesen ugyan az.

Hol tart most a Flutter

Korábban írtam a Flutter keretrendszerről, és előnyeiről. Az azóta eltelt néhány hónap további újdonságokat hozott. Lekövetve az Android 11 nyári, és az iOS 14 őszi érkezését. Azonnal reagálva a változásokra, gyakorlatilag napokon belül kikerültek az utánkövetések, amiket az OS megkövetelt.

App-ok, amik Flutter-ben készültek:

App-ok, amik React Native-ben készültek:

  • Instagram
  • Facebook
  • Skype
  • Pinterest
  • Tesla
  • Fb Ads Manager

Minden app tulajdonos rémálma

Az jól látszik, hogy az elmúlt másfél évtized kitermelt magából sok megoldást, hogy minél egyszerűbben, zökkenőmentesebben, vagy éppen a tudásunk újra felhasználásával lehessen mobil app-okat készíteni. Egy kereszt platformnak számos előnye van a mobil fejlesztésben.

Mindezek ellenére a fórumokon örökzöld téma, hogy mi lesz, ha majd bezárják, vagy fizetőssé teszik ezeket a keretrendszereket. Mi lesz, ha egyszer csak az Apple nem engedi be a nem natívan megírt alkalmazásokat? (Az Apple amúgy is eléggé szőrszálhasogató tud lenni az elfogadási irányelveivel.)

Nos, látva a Google, szinte minden hétre jutó bejelentéseit, ez nem várható, legalábbis rövid távon. Azáltal, hogy mind a két mobil operációs rendszert beveszi, továbbá, Linux, Mac és Windows asztali fejlesztések felé nyitja meg a kapukat a fejlesztők előtt. (A Microsofttal a hetekben közösen jelentették be az együttműködést.)

Egy nagy előnnyel mindenképpen érdemes tisztában lennünk: az a keretrendszer fejlesztőinek a feladata, hogy összecsiszolják az adott operációs rendszerrel. Ezzel nem a fejlesztőnek kell foglalkoznia, hosszú órákat eltölteni egy hiba keresésével. Ez növeli a produktivitást.

Merre tovább?

Az látszik, hogy a Flutter még az elején van a pályafutásának. Ez a görbe a felszálló ágon van. Nem is lehet megjósolni, hogy mikor éri el a csúcspontját. Az eltökéltség a Google részéről látszik. Mivel van még mit csiszolni az alfa/béta támogatásokon, ez eltart egy darabig.

De ki tudja. Az informatikában egy biztos, hogy folyamatosan fejlődik. Pár év alatt elavulnak a dolgok, és újat kell tanulni. Egyszer jön majd egy jobb, szebb keretrendszer, ami ugyanúgy rabul ejti a fejlesztők szívét.

Egy népszerű kereszt platformok ismeretére a mobil fejlesztésénél szüksége van minden fejlesztőnek. Bármelyik is legyen az.