Hirdetés

Alkalmazásfejlesztés badára: A fejlesztőkörnyezet

Régóta vártam már egy olyan SDK-t, mellyel a telefonon is lehet tesztelni, hogy az eddig nyitott kérdésekre választ kereshessek. Szerencsére mindenki számára elérhető a bada SDK 1.0 harmadik bétaverziója, mely ezen képesség mellett a dinamikus könyvtárak fordításának lehetőségét is hozta a korábbi verzióhoz képest. Viszont más lényegi változás nincs, úgyhogy úgy vélem, itt a megfelelő pillanat bemutatni.

A mindenkori legfrissebb publikus SDK a bada Developers oldaláról érhető el, regisztráció után. A művelet ingyenes, hasonlóan a bada Developers és a Samsung Apps többi szolgáltatásához. A körülbelül 600 MB-os csomag feltelepítve 1,4 GB-ot foglal, ami akár virtuális gépben futtatás esetén se fájdalmas méret – szemben például egy 9 GB-os Xilinx ISE WebPackkel :) – nálam VMware Fusionben is prímán fut. Az SDK fő részei a következő ábrán láthatóak.

A bada SDK részei

Hasonlóan például a Symbianhoz vagy az Androidhoz, a bada SDK is egy Eclipse alapú integrált fejlesztőkörnyezet köré épül. Ahogy illik, a bada plugin szinte teljes nyelvi támogatást nyújt a bada C++ nyelvéhez – nekem mindössze az örökölt absztrakt metódusok egyszerű, automatikus bemásolása hiányzik, de igazából Eclipse CDT-ben erre még egy platformon se láttam példát. Minimális szinten integrálták a bada Developers alkalmazás-regisztrációs oldalát is – egy kis dobozban lehet böngészni a portált, ez még biztosan változni fog később, legalábbis remélem. Ide tartozik még a felhasználói felületek összekattintgatására készült UI Builder, mellyel adott felbontásra és orientációra lehet Formokat tervezni, az eredményül kapott XML-eket pedig futásidőben be lehet tölteni. A létrejött vezérlőelemeket a nevük azonosítja, így lehet majd a kész Formtól elkérni őket, az életciklusukkal meg nem kell törődnünk. Igazán praktikus megoldás egyszerű űrlapok esetén.

Eclipse

A forráskódot a GCC fordítócsalád fordítja tárgykóddá. A telefonra a CodeSourcery GCC (arm-samsung-nucleuseabi) implementációja dolgozik, hasonlóan például a Symbian GCCE fordítójához, Windowsra pedig a MinGW környezet. Fontos! Bár a fejlesztői napon az egyik koreai kolléga azt nyilatkozta, hogy nincs lehetőség inline assembly kód írására, a gyakorlat ezzel szöges ellentétben azt mutatja, hogy semmi akadálya. Bár az ARM assembly tudásom kimerül a MOV utasításban, mások számára mindenképp hasznos lehet, például a NEON utasításkészlet kihasználásához.

UI Builder

Bár az Eclipse és a GCC nyílt forráskódúak, továbbá alapvetően platformfüggetlenek, a szimulátor miatt nem várható a közeljövőben, hogy OSX a vagy Linux bármilyen formában támogatott rendszer lesz, ezt a fejlesztői napon megerősítette a Samsung egyik képviselője.

Wave szimulátor

Hasonlóan a Samsung korábbi szimulátoraihoz (pl. i8910HD), a piacra kerülő eszközöknek külön-külön készül majd egy-egy modul, amit utólag lehet az SDK-ba telepíteni. A Wave szimulátor nem csak kinézetre hasonlít a telefonra, minden fő perifériát (pl. kamera, memóriakártya, multi-touch!), szenzort (pl. accelerométer, magnetométer, GPS) és hálózati szolgáltatást (hívás, SMS, WAP push, bada push üzenet) lehet vele tesztelni. Emellett ha a fejlesztő gépe OpenGL 2.1 képes, az OpenGL ES 2.0 alkalmazások is tesztelhetőek. Meg kell említenem még a dokumentációt, aminek az egyik része az OSP framework elég részletes, osztályszintű doxygen leírása rengeteg példával és csak kevés homályos területtel, másrészt egy szerteágazó oktatóanyagot is kapunk PDF formátumban.

Az új verzióval végre lehet telefonon is tesztelni. Ez egy elég fájdalommentes folyamat, bár elkezdeni nem triviális: fel kell telepíteni a telefonra egy root tanúsítványt, hogy ne utasítsa el az SDK által készült alkalmazáscsomagokat. Ezután USB debugging módban csatlakoztatni kell a telefont, majd ki kell választani a célhardverre fordítást, és meg kell nyomni a Debug vagy a Run gombot. Érdekes, állítólag az illegális szoftvermásolások miatt az USB-n feltelepített tesztalkalmazásokból mindig csak a legutolsó futtatható, a többi bár ott marad a telefonon, nem reagál az indítás parancsra többet. Személy szerint nem értem a logikát, de nincs beleszólásunk.

A rendelkezésre álló eszközök megfelelnek a kor igényeinek, már csak használni kell őket. A tényleg mindenre kiterjedő oktatóanyag recitálása helyett a folytatásban én is a gyakorlati oldalra állok át: az IM szolgáltatások fizetőssé tétele miatt arra gondoltam, hogy egy ingyenes, natív IRC kliens a legtöbb problémát megoldaná (pl. BitlBeen keresztül), és ennek a menetét írnám le. Természetesen bármilyen kérdésre szívesen válaszolok a fórumban, legyen szó programozási vagy az SDK-val kapcsolatos kérdésekről.

Karma

Azóta történt

Előzmények