Mellékleteink: HUP | Gamekapocs
Keres

Amikor Java 8-ra váltott az Android

Gálffy Csaba, 2016. augusztus 15. 17:20
Ez a cikk több évvel ezelőtt születetett, ezért előfordulhat, hogy a tartalma már elavult.
Frissebb anyagokat találhatsz a keresőnk segítségével:

Hamarosan használhatják a Java 8-as újdonságokat az androidos fejlesztők is. Miről maradtunk le? Az Android megjelenése óta megfigyelhető volt a rendkívül gyors fejlődés. Ugyanakkor érezhető volt, egy „láthatatlan” gát a fejlődésben, az Oracle által birtokolt Java technológia. Az Android fejlesztők körében az egyik legnagyobb korlát, hogy nem használhatók a legújabb Java nyelvi elemek, melyek egyszerűbb és karbantarthatóbb kódot eredményeznének.

Léteztek ugyan különféle külső megoldások bizonyos elemek beemelésére, azonban ezeknek megvolt a hátránya is. Az Android N közeledtével azonban úgy tűnik jelentős váltásra számíthatnak a fejlesztők, hiszen a hírek szerint az Android világ át fog állni az OpenJDK-ra, melynek köszönhetően az újdonságok sokkal hamarabb elérhetők lesznek a platformon és nem lesznek jogi/technikai akadályok.

Mi hajtja?

Az Android alatt a Google saját fejlesztésű, nem-teljes Java-implementációja dolgozik. A nyelv ugyan formailag Java, az alap könyvtárakat azonban a cég alternatív, nulláról újraírt verziókra cserélte. Ezek API-szinten kompatibilisek a hivatalos, Sun/Oracle-féle Java-szabvánnyal, egészen pontosan annak 1.6-os verziójával. A probléma: ez a nyelv 2006-os állapotát tükrözi. Azóta (hosszú szünet után) 2011-ben kijött a Java SE 7 és tavaly márciusban a Java SE 8 is, ráadásul a Java 9 is egy éven belül érkezik, miközben az Android-fejlesztők még mindig az 1.6-os (vagy simán 6-os) kiadással kénytelenek együtt élni - a téma a Budapest Mobile fejlesztői csoportban is rendszeresen felbukkan.

Az androidos Java alapjait egyébként az Apache Harmony projektje adta, amelynek célja egy, a Suntól független, szabványos Java implementáció létrehozása volt. A projekt kudarcot vallott (változatos licencelési problémák miatt) és 2011-ben az Apache teljesen le is állította a Harmony fejlesztését. Ez egyúttal a Harmony-alapú Android SDK-t is kényszerpályára küldte, a Google-re maradt a saját fork karbantartásának felelőssége és feladata, amit a cég finoman szólva is vonakodva végzett el.

Lambdák!

Az Android SDK egyre súlyosabb lemaradása azt jelentette, hogy a fejlesztőknek nem állnak rendelkezésre a modernebb Java korszerű megoldásai, például a Java 8 Lambda kifejezései. Ezeket független fejlesztők igyekeztek backportolni az Androidhoz (itt például az egészen kiforrott RetroLambda projekt), a merészebbek pedig egyenesen Java-alternatívát fejlesztettek, mint a Kotlin. Az "egységsugarú" fejlesztőnek (vagy azoknak, akik nem akartak még több külső könyvtárat és megoldást bevonni) ez nem adott kielégítő választ a problémára, az Android Java-alapjai reménytelenül elavultak.

Az áttéréssel azonban mindez egy csapásra megváltozik. Az OpenJDK a Java SE referenciaimplementációja, ennek megfelelően első perctől támogat minden technológiát, amelyet a nyelv új kiadása bevezet. Így az OpenJDK jelenlegi, 8-as kiadása értelemszerűen a Java SE 8-nak, a soron következő 9-es pedig a Java SE 9-nek felel majd meg, az Android-fejlesztők így rögtön a legfrissebb implementációnak örvendhetnek, ami szó szerint 10 éves ugrás lesz fejlődésben.

A meetupon megbeszéljük!

És mit jelent ez az ugrás a gyakorlatban? Többek között erről lesz szó a soron következő fejlesztői meetupunkon, az augusztus 24-i HWSW free!-n, amelyet egészében a Java nyelvnek és a Java fejlesztőknek szentelünk. Az előadás keretében átbeszéljük, hogy milyen változások várhatók az OpenJDK bevezetése kapcsán, illetve hogy melyek azok a legérdekesebb Java elemek, melyek így már elérhetőek lesznek a fejlesztők számára. A technológiai váltás egyik további előnye, hogy általa számos új Java verziót használó osztálykönyvtár is elérhető lesz így Android platformra. Ezek közül is tervezünk néhányat bemutatni.

A HWSW free! házirend a szokásos: kapunyitás délután 5-kor, az előadások pedig 6-kor kezdődnek, de ahogy időd engedi, bármikor csatlakozhatsz. A rendezvény ingyenes, azonban a regisztráció kötelező, ezt a meetup oldalán teheted meg. Kérjük, tiszteld meg a közösséget azzal, hogy csak akkor regisztrálsz, ha biztosan el tudsz jönni! Az AnKERT befogadóképessége limitált, így ha nem jössz el, egy olyan embertől veszed el a lehetőséget, aki valóban ott lenne.

Facebook

Mit gondolsz? Mondd el!

Adatvédelmi okokból az adott hír megosztása előtt mindig aktiválnod kell a gombot! Ezzel a megoldással harmadik fél nem tudja nyomon követni a tevékenységedet a HWSW-n, ez pedig közös érdekünk.