Nyílt mobilplatform, zárt elemekkel

|

Folyamatosan jelennek meg új Android-alapú okostelefonok és tabletek, de a legfrissebb, 4.4 verzió (más néven KitKat) egyik fő célja, hogy a platformot ennél sokkal szélesebb körben tegye elérhetővé.

Minden felmérés egybehangzóan azt mutatja, hogy jelenleg az Android a legnépszerűbb mobilplatform. Piaci részesedése akár a 80 százalékot is meghaladhatja. Különösen figyelemre méltó, hogy az Android az Egyesült Államokban is átvette a vezetést nagy riválisától: a Developer Economics 2013-ban publikált adatai szerint piaci részesedése meghaladta az 50 százalékot, miközben az iOS részaránya 44 százalék alá csökkent.

A piaci trendekkel tökéletesen egybevág a Műegyetem statisztikája, miszerint az utóbbi 7 félévben a Villamosmérnöki és Informatikai Kar diplomázó hallgatóinak körében az Android az egyik legkeresettebb téma. Szerencséjük van a végzősöknek, ugyanis nemcsak egyetemi témákra jelentkezhetnek, hanem számos, az iparból kiinduló fejlesztés közül is válogathatnak.
Február végén a BME Automatizálási és Alkalmazott Informatikai Tanszék szakmai konferenciát szervezett MobilAut 2014 néven, ahol bemutatták az Android, az iOS és a Windows Phone platformok aktuális újdonságait, valamint a platformokhoz kapcsolódó modern szoftverfejlesztési eszközöket és módszereket. A rendezvényen 460-an vettek részt, 200 különböző cégtől.
Ekler Péter adjunktus az Android lehetőségeiről és kihívásairól tartott előadást. Figyelemre méltó, hogy Magyarországon elsőként itt mutatták be az Android-alapú Nokia X platformot.

Újdonságok az Android 4.4-ben
A legfrissebb verzió, a 4.4 célja, hogy a korábbinál több eszköz számára tegye elérhetővé az Android operációs rendszert. A fejlesztők olyan továbbfejlesztéseket végeztek, amelyek révén még könnyebb a jelenleginél egyszerűbb és kisebb, de akár bonyolultabb és nagyobb készülékeken is a platform futtatása. Az Android esetében tehát nem érdemes csak telefonokban és tabletekben gondolkozni. Folyamatosan bővül azon eszközök köre, amelyek képesek az androidos alkalmazások futtatására, vagy együttműködnek Android-alapú készülékekkel. Ide tartoznak – többek között – az okosórák, az okosszemüvegek, a gépkocsiba épített navigációs rendszerek. Egyre több autógyártó folytat például vizsgálatokat és teszteket Android-alapú fedélzeti számítógépek bevezetése terén.

Hirdetés

A 4.4-nél fontos cél volt az alkalmazásfejlesztés hatékonyságának növelése. Sikerült elérni, hogy ha a meglévő alkalmazásokat átteszik 4.4-re, gyakorlatilag nem kell hozzájuk nyúlni, futásuk automatikusan optimalizálódik.

Az új verzió előnyös tulajdonsága többek között a teljesebb, fejlettebb NFC-támogatás, valamint a nyomtatókkal való dinamikus kommunikáció. Lehetővé teszi PDF állományok készítését forráskódból, animációk, áttűnések megjelenítését, az infravörös érzékelőkkel való kommunikációt (ez utóbbi például 3-4 kódsorral megoldható).

Az Android-platform népszerűségének egy további oka, hogy a platform több népszerű programozási nyelven való fejlesztést is támogat (Java, C++, RenderScript támogatás, HTML5, JavaScript stb.).

Elmozdulás a zártság felé
Említést érdemel a Google Play szolgáltatások továbbfejlődése. Ez egyrészt jó hír, mivel rengeteg újdonságot ad a fejlesztőknek (például új helymeghatározási API, új térképkezelés, új játékszolgáltatások), másrészt azt jelzi, hogy az Android kezd elmozdulni a zártság felé. A Google Play szolgáltatások ugyanis nem nyílt forráskódúak, azokat tehát nem lehet az Android firmware alaprészének tekinteni.

Az Android, illetve a Google egyik jellegzetes szolgáltatása a böngészés, az internetes kommunikáció. A 4.4-ben már megjelenik a Chromium-alapú webböngésző. Ezáltal könnyebben lehet majd olyan megoldásokat készíteni, amelyekkel a böngésző eléri a készülék alacsony szintű adatait. A webes megoldások tehát együttműködhetnek a telefon hardverével (gyorsulás, elfordulás, földrajzi pozíció stb. érzékelése).

Hatékony szoftverfejlesztés Androidon
A szoftverfejlesztéskor általánosságban, de a mobilalkalmazás-fejlesztéskor hatványozottabban jelentkező kihívás a folyamatosan változó igények gyors kielégítése, ugyanakkor a szoftverarchitektúra és a kód minőségének fenntartása. Aki foglalkozott már szoftverfejlesztéssel, minden bizonnyal találkozott azzal a jelenséggel, hogy egy meglévő megoldást kellett kiegészíteni újabb funkciókkal, de a szűkös határidő miatt nem jutott idő a szoftver helyes átalakítására, ezért csak a gyors kiegészítés maradt, ami hosszú távon rossz minőségű kódhoz vezet és egy bizonyos idő után lehetetlenné teszi az alkalmazás bővítését. Sajnálatos tény, hogy rossz kódot olvasni és azt kiegészíteni sokkal több időbe telhet, mint megírni egy adott funkcionalitást.

Ez aztán alaposan megnehezíti a fejlesztők dolgát. Problémához vezethet, ha nincs idő szakszerűen továbbfejleszteni az alkalmazást, hanem csak gyorsan bele kell illeszteni (fusizni) a megoldást. Mobil környezet esetén ezt különösen érdemes megfontolni, hiszen sokkal gyakrabban lehet szükség új funkciók beépítésére.

Megfigyelhető, hogy ahogy nő a kód mennyisége, úgy csökkenhet a fejlesztők produktivitása. A fejlesztés a munka előrehaladtával lassul, a programozó egyre több problémával találkozik, ezt a jelenséget nevezik kódromlásnak. Az alkalmazások jellemzően tiszta architektúrával indulnak, de egy idő után a kód elkezd romlani, és karbantartása, az új funkciók hozzáadása egyre nehezebbé válik. A háttérben egyértelműen a változó követelmények állnak. Manapság ugyanis rendkívül gyorsan merülnek fel új igények a szoftverek felé, és azokat menet közben teljesíteni kell. Ebből következik, hogy fejlesztés közben a megrendelő visszajelzései alapján folyamatosan formálni kell az architektúrát olyan irányba, hogy a jövőbeni új elvárásoknak valószínűsíthetően megfeleljen majd. Vannak már megoldások a kódromlás kivédésére, illetve csökkentésére (függőségkezelési elvek, az úgynevezett SOLID elvek), ezek – ha némileg másképpen is, de – alkalmazhatók az Android esetében is.

Időtálló fejlesztések, alapos tesztelés
Vajon mi képviseli a mobilalkalmazások és a szoftverek fő értékét? Elsőre egyértelműnek tűnik a válasz: az a funkció, amit a szoftver megvalósít, hiszen közvetlenül ezért fizetnek a megrendelők/vásárlók. Jobban belegondolva azonban elképzelhető, hogy hosszú távon a funkciónál értékesebb, ha a szoftver jól tolerálja a folyamatosan változó igényeket és azokat folyamatosan ki tudja elégíteni rövid időn belül.

Gyakran hallani, hogy Androidra szinte már mindenki tud fejleszteni. Valóban, egyszerűbb programokkal bárki sikerrel próbálkozhat. A piac rendkívül hektikus, egy kis program is bomba siker lehet, akár néhány nap leforgása alatt. Ám ha valaki hosszú távon gondolkozik és igazi értéket szeretne teremteni, akkor gondosan kell eljárnia.

Az Android-platformnak is megvannak tehát a nehézségei. Olyan szoftverfejlesztési elvekkel és eszközökkel, mint a függőségek jól átgondolt megvalósítása, a folyamatos integrációt (CI – Continous Integration) ellenőrző eszközök alkalmazása, valamint az alapos tesztelés és tesztelhetőségre való tervezés, ezeknek a kihívásoknak is meg lehet felelni. Az Android-fejlesztőket számos automatikus tesztkeretrendszer támogatja, ezeket érdemes bevonni a projektekbe.

 

 

A mobilalkalmazások esetén különösen élesen vetődik fel a kérdés: maradjon a fejlesztő a hagyományos, viszonylag hosszabb, akár több hónapos ciklusokból álló menetnél (készítsen tervet, az alapján kódolja le az alkalmazást, majd végezze el a tesztelést), vagy válassza az úgynevezett tesztvezérelt fejlesztést? Ez utóbbi olyan ciklusokból áll, amelyek egy olyan teszt megírásával kezdődnek, amelyek az első próbán természetesen elbuknak. Ezt követi a hiányzó funkcionalitás kifejlesztése, a kód minőségének, olvashatóságának javítása, majd ismét jön egy újabb ciklus egy következő funkcióra és így tovább.

A tesztvezérelt fejlesztésnél a ciklusok jellemzően nagyon rövidek, az iterációk akár 1 percesek is lehetnek. A szakértő szerint ez a megoldás az Android esetében is használható. Alkalmazása hozzásegít a hosszú távon is megbízható alkalmazások fejlesztéséhez.

A forráskód védelme
Egy szoftvermegoldás igazi értéke kétségtelenül a forráskód. Ha egy rosszindulatú támadó visszafejtette azt, akkor akár a teljes szolgáltatáshoz is hozzáférhet. Ekler Péter felhívta a figyelmet: Androidban egy forráskódot néhány másodperc alatt, ingyenes eszközökkel vissza lehet fejteni. Az Android-alapú alkalmazásokat tehát védeni kell. Ennek leggyakrabban használt eszköze az úgynevezett obfuszkáció, amelynek során a kódot tömörítik, a változókat átnevezik, tehát egy olyannyira összezavart kód jön létre, ami a rosszindulatú visszafejtés után sem érthető. Tény, hogy az obfuszkáció – különösen egy nagy projekt esetén – körülményes folyamat is lehet, a szakértő szerint azonban végrehajtása egyértelműen ajánlott.

Nokia az Androidon
Majdnem teljesen Android-alapú az új Nokia X készülékcsalád. Az egyetlen kivételt a zárt forráskódú Google Play szolgáltatás jelenti. A Nokia erre a következő megoldást találta: saját szolgáltatásokat hozott létre, a térképet a Google Mapsről lecserélték a HERE mapsre, a Push Notificationst a Nokia Notificationsre stb. Ebből is látható, hogy az Android nemcsak egy szűk, a Google kezében lévő rendszer, hanem nagyon tág, bárki által kihasználható és továbbfejleszthető.

Hirdetés

Úgy tűnik, AdBlockert használsz, amivel megakadályozod a reklámok megjelenítését. Amennyiben szeretnéd támogatni a munkánkat, kérjük add hozzá az oldalt a kivételek listájához, vagy támogass minket közvetlenül! További információért kattints!