Jetpack: itt az Android jövője
A beragadt verziójú androidos eszközök késztették a Google-t arra, hogy egyre több funkciót leválasszon az alap operációs rendszerről. A Support Libraryk most új életre kelnek a Jetpack formájában, ideje az öveket becsatolni.
Új fejlesztői csomaggal állt elő a Google a májusi fejlesztői konferenciáján. A Jetpack névre keresztelt pakk fejlesztői szemmel akár Android 2-nek is felfogható, tartalmazza a legmodernebb androidos eszközöket, keretrendszereket, komponenseket, architektúrákat, visszafelé kompatibilis, de kidobja azokat az elemeket, amelyek ma már elavultnak számítanak.
Salak nélkül
A platformok a karrierjük során rengeteg salakot gyűjtenek össze - olyan ötleteket, megvalósításokat, amelyekre hirtelen szükség volt, de hosszabb távon zsákutcának bizonyultak és marginalizálódtak. Minden nagyobb platform szenved ettől, és minél öregebb egy platform, annál több ilyen salak rakódik rá. Ez igaz egyébként az Android mellett minden másra is, az asztali Windowstól a szerveres platformokig. Androidon is bőven van rá példa, hogy bizonyos megoldások nem fejlődnek már tovább, és ugyan a hivatalos Android SDK illetve a változatos könyvtárak tartalmazzák még, használatuk igazából nem ajánlott, vannak jobb alternatívák.
Ezeket a jobb alternatívákat gyűjtötte egybe most a Google egy salakmentes, előremutató csomagba. A pakk tartalmazza a legmodernebb architekturális elemeket, az alap könyvtárakat, az UI építéshez szükséges részeket és az alkalmazás viselkedését vezérlő kódot is. A Google ígérete szerint a Jetpack tartalmaz mindent, amihez egy modern alkalmazáshoz szükség van, az életciklus-menedzsmenttől a hálózatkezelésig, a háttérben futó feladatoktól a képernyők közötti navigációig és a UI-elemekig (beleértve az emojikat is).
A Jetpack elemei nem részei a szűken értelmezett androidos platformnak, ami azt is jelenti, hogy az egyes komponensei opcionálisak, a fejlesztők igény szerint építhetik be azokat alkalmazásaikba. A logika nem új, a cég már nagyon régen megkezdte az Android operációs rendszer lecsupaszítását, és igyekezett a legtöbb API-t és funkciót kiszervezni a Support Librarybe, így minimalizálva az Android frissítések elmaradásának hatását. A "bundled", tehát az alap Androiddal érkező osztályok ugyanis az operációs rendszer főverzióiként változhatnak, az "unbundled" könyvtárak azonban a fejlesztő számára egységes interfészt kínálnak, függetlenül az eszköztől. Ennek a logikának az új kiteljesedése a Jetpack.
A Jetpack természetesen támogatja az idén bejelentett androidos képességeket is, mint a Slides - ez lehetővé teszi, hogy az appunk tartalmai külső felületeken, például a Google Search alkalmazásban vagy az Assitantban megjelenjenek interaktív módon. Ezzel bizonyos egyszerűbb funkciók az appon kívül is elérhetőek lehetnek.
A csomagba sok új elem került, például a most bemutatkozó Android KTX, amely a Jetpack család részeként a Kotlin programozási nyelv használatát megkönnyítő kiterjesztéseket tartalmazza. Az Android KTX célja "a Kotlin nyelven történő androidos fejlesztést egyszerűbbé, kellemesebbé és idomatikusabbá tenni", a Kotlin beépített képességeinek, a tulajdonságok és függvények kiterjesztése, a lambdák, a nevesített paraméterek és az alapértelmezett paraméterek kiaknázásával. A Google megjegyzi, hogy a KTX nem ad új API-kat az Androidhoz, csupán megkönnyíti azok használatát Kotlinból. És ugyan a Jetpack illetve az Android továbbra is támogatja a Javát, a Google nem kertel, a Kotlin az elsődleges ajánlott nyelv.
Modern Android development: Android Jetpack, Kotlin, and more (Google I/O 2018)
Még több videóA Jetpack váltja le a visszafelé kompatibilitást garantáló Support Libraryket is, így nem csak a legmodernebb Androidra, hanem az összes támogatott verzióra lehet alkalmazásokat írni. Az API-k közötti különbségek elsimításáról ilyenkor a Support Library gondoskodik, amely lekezeli a kompatibilitási helyzeteket. A csomag ráadásul nem csak a "normál", telefonos-tabletes Androidhoz kínál hozzáférést, hanem a Wear OS-hez, az Android Autóhoz és a TV-hez is beépítve tartalmazza a megfelelő eszközöket. Szintén váltja (illetve beolvasztja) a Jetpack az Android Architecture Components könyvtárat, az AAC által biztosított architektúra immár a csomag részeként érhető el.
Az új "unbundled" könyvtárak az android.* helyett már az Android Extensions, vagyis androidx.* névtérben érhetőek el az ütközések elkerülése érdekében. A váltásról részletesebben a Google fejlesztői blogja tájékoztat.
Zöldmezős beruházáshoz
A Jetpack ideális a "zöldmezős" fejlesztésekhez - ehhez is ajánlja elsősorban a Google. Tehát olyan projektekhez, ahol gyakorlatilag nulláról, meglévő függőségek nélkül kell létrehozni egy vadonatúj alkalmazást, ehhez pedig a fejlesztők tetszőlegesen választhatják meg eszközeiket. Ehhez pedig tökéletes kiindulópont a Google által összeszedett, kézzel válogatott Jetpack csomag tartalma. Nem véletlen, hogy a Google kezdő androidos programozóknak is a csomagot ajánlja, a "retró" androidos technológiákkal ma már nem érdemes megkezdeni az ismerkedést.
A Jetpack és bizonyos elemei jelenleg fejlesztői előzetesként érhetőek el, egyelőre tanulmányozni és tesztelgetni érdemes, élesben várhatóan az év második felében indul majd el.
Ha többet szeretnél megtudni a Kotlinról és a Kotlin-alapú androidos fejlesztésről, gyere el a következő HWSW free! meetupunkra, ha pedig ki is gyúrnád magad a témában, jelentkezz a június 26-án induló gyakorlatorientált, 10 alkalmas, 30 órás online képzésünkre - most még early bird kedvezménnyel!