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.

Ezek az újdonságok a Google új Android 11 verzióban
Ismét új hasznos frissítések a Googletől

android 11 újdonságok képernyőkép

A napokban megérkezett az Android telefont használók nagy örömére a Google új operációs rendszere: Android 11 kódnévvel, újdonságok a felhasználóknak. A cikkben ezeket veszem sorra.

Ahogyan azt a GSMArena.com cikkében kielemzete, számos újítással kedveskedett a Google az idei frissítésben. Egyelőre azonban még csak a Pixel 2, és afölötti mobiltulajdonosok örvendezhetnek. De ahogyan ez lenni szokott, hamarosan a többi gyártó készülékeire is megérkeznek a frissítések.

Beszélgetések, Chat buborékok, Média vezérlők

Beszélgetések

Az Androidnak mindig is kiváló volt az értesítési rendszere, de a mostani újítás egy igazi nagyágyút ad a kezedbe. Az újdonságok közül ez a beszélgetések (Conversations) funkció, ami igazán jelentős hatással lesz az üzenet értesítési rendszerre, ha sok üzenetet küldesz és fogadsz.

Az Android 11 előtti rendszerek nem tettek különbséget az üzenetküldő app-ok, és a többi app között. Ez azt jelenti, ha valaki kapcsolatba akart kerülni veled, akkor osztozkodnia kellett a média vezérlő, alkalmazás frissítések értesítései, a játékoktól jövő spam üzenetekkel, és minden egyébbel, amit az telefonod feldobott. Nyilvánvaló, hogy ez nem ideális a többségünknek, mivel a bejövő üzeneteknek nagyobb prioritásuk van a többi értesítéssel szemben.

Ezt oldja meg ez az újítás, ami minden, ami kommunikáció, azt a legfelső értesítési részen jeleníti meg. Természetesen innen elérhető a válasz lehetősége is, az app megnyitása nélkül.

Nem minden alkalmazás használja még ezt a módot, mivel ez a fejlesztőktől igényel frissítést az alkalmazásban.

A leggyakrabban használt app-jaink, amiket megosztásra használunk, kitűzhetőek egy felsőbb sávba, még gyorsabbá téve az elérést. Így nem kell folyton egy hosszú listában keresgélni az app-jainkat.

Néhány alkalmazást kézzel is hozzá lehetett adni, ami elsőre nem ebben a részben jelent volna meg.

Chat buborékok

Az előző újításnak egy kiterjesztése a Chat buborékok (Chat Bubbles), amik a Messengernél már megszokott lebegő Chat fejekre hajaz. Ezt a funkciót (nem éppen a legegyszerűbb módon) engedélyezni kell a Beállításokban az app-hoz tartozó értesítési csatornák beállításánál. Itt további beállításokra is lehetőség van: egyszeri, örökös vagy soha sincsen engedélyezve.

Ez a funkció biztosan javítani fogja a multi-taskingot.

Valószínűleg, ez egy kedvenc újdonsága lesz a felhasználóknak.

Média vezérlők

Az értesítések újraírásával ez sem maradhatott ki. Korábban eléggé ügyetlenül kezelte az operációs rendszer a különféle média lejátszók kezelőfelületeit. Valahányszor elindítottál egy médiát, egy új értesítési ikon jelent meg. A Google az Android 11-ben csavart ezen. A kezelőfelület ezentúl a Gyorsbeállítási panel része lett. Ez azt is jelenti egyben, hogy mindig az értesítések fölött lesz látható. Elsőre egy sokkal kompaktabb nézetet kapunk, és egy második swipe-pal lehet eljutni a kibővített nézethez.

További érdekesség, hogy a vezérlők oldal irányba lapozhatóak, ami helyet spórol, és inkább vízszintesen foglal helyet.

Utolsó sorban, a média lejátszó panelen helyet kapott az is, hogy könnyedén tudsz váltani az eszközeid között, hogy melyiken játssza le a zenét. Ez magában foglalja a fejhallgatót, a Bluetooth eszközöket, vagy a Chromecast-ot. Egyben a hangerőt is lehet ezen a felületen vezérelni, ami nagyszerű, hiszen az Android UI-ból eddig hiányzott a szoftveres hangerő szabályzó, ami csak a Beállításokban volt elérhető.

Telefon engedélyek, Képernyő felvevő, eszközvezérlő

Engedélyek

Az elmúlt években a Google jelentős lépéseket tett azért, hogy megvédje a más gyártóktól származó alkalmazásoknak a személyes adatainkhoz való illetéktelen hozzáférést.

Az Android 11 újdonságok közt szerepel, hogy erős alkalmazásengedély-beállítása van. A felhasználók ezentúl az app-okhoz szükségesség alapján adhatnak hozzá engedélyeket. Ha például helyadatokat kér az alkalmazás, akkor arra az egy alkalomra is lehetőség van megadni, és amit bezárjuk, az engedélyt is megvonjuk tőle.

Ez a funkció kiválóan működik. Gyakrabban van szükségünk arra, hogy egyszer megadunk egy engedélyt, de utána már nincsen szükségünk rá.

Ezután egy új kérdés fog felugrani, amikor az app kéri az engedélyt. Megtilthatod; engedélyezheted amíg az app-ot használod; vagy csak egyszer. Van egy negyedik mód is, ami az örökös engedélyezés, de ezt külön a Beállítások menü keresztül lehet csak megadni, nehogy véletlenül rányomj.

A következő funkciója még az iOS-nek sincsen: az engedélyek automatikus visszaállítása. Ha egy app-ot egy pár hónapja nem használtál, akkor visszavonja az engedélyeket tőle, amiket megadtunk. Természetesen ez is finoman beállítható, és kivételek adhatóak meg, mint pl. okos karkötők, családi biztonsági app-ok, stb. esetében.

Képernyő rögzítése

Ez talán a OnePlus, Xiaomi, Samsung tuljadonosoknak nem nagy újdonság, de végre az Androidnak is van beépített képernyő felvevője. Nem talált fel vele nagy újdonságot. A Gyorsmenüt lehúzva érhető el a felvevő ikon, ami feldob egy menüt, ahol beállíthatóak további lehetőségek. Beállítható, hogy a hangot az eszközről; az eszközről és a mikrofonról; vagy sehonnan se rögzítse. 60 FPS-sel rögzíti a videót, és a leállításra a képernyőn van érintő felület.

Jó funkció, de eléggé sokáig tartott a Google-nek, mire bevezette. Számos gyártó régen megelőzte már ebben.

Eszközök vezérlése

Az Android 11-ben a bekapcsoló gomb funkciója teljesen át lett alakítva. A fókusz az okos otthon eszközei köré csoportosul. A cél az volt vele, hogy egy könnyen elérhető helyet kapjanak az okos eszköz vezérlők.

Magánéleti frissítések és Pixel-re szabott exkluzivítások

A magánszféra tiszteletben tartása egyre hangsúlyosabb a Google-nél is. Szinte minden hétre jut egy nagy szolgáltatót érintő adatszivárgás. Ilyenkor jellemzően több 10-100 millió felhasználó adatairól olvashatunk.

Gyakoribb biztonsági frissítések

Az Android 11 újdonságok között szerepel a biztonsági frissítések gyakorisága. Ezek ezentúl nem az operációs rendszer része lesz, és sokkal gyakrabban lehet őket frissíteni. Néhány telefongyártó mégcsak nem is havi, hanem 2-3 havonta küldte le ezeket a készülékekre (jó esetben).

A 7.0-ás verzió óta néhány készüléken már elérhető volt az a funkció, hogy a háttérben letöltötte a frissítést egy külön tárhelyre a telefonra, és a következő újraindításkor automatikusan települt. Ezt innentől kezdve minden telefon megkapja, gyártótól függetlenül.

Céges használatban erősít

A következő hasznos dolog kizárólag a céges felhasználóknak érdekes. Ezzel a funkcióval egy munka profilt lehet létrehozni a céges telefonunkon. Ezzel az IT üzemeltetőknek adhatunk hozzáférést a beállításokhoz, anélkül, hogy bármely személyes adatunkhoz hozzáférnének. Ez a képessége már az 5.0-ás verzió óta benne van, de most tovább finomodott. Az Android 11-gyel a Google most ezt a funkciót még a vállalat tulajdonában lévő eszközökön is elérhetővé teszi, így az alkalmazottak ugyanazokat a különálló munkahelyi és személyes profilokat kapják, mint akkor, ha saját maguk birtokolnák az eszközt.

Apróbb újítások

Emojik újratöltve

Inkább a műkedvelők fogják szeretni, de az emojik is megújultak. Került bele néhány új (lásd a képen), illetve a régiek újra lettek szerkesztve. A teljes lista itt található a módosításokról.

new android 11 emoji

Végszó

Az Android 11 újdonságok tekintetében nem okoz csalódást. Egyre kényelmesebbé teszi a Google a mobiltelefonokra szánt operációs rendszerét. Az iOS-hez képest kissé konzervatívabb tempót diktál, de a közel 80%-os részesedésével egyelőre nem kell kapkodnia, és inkább biztonsági játékot űz.

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