|
A Titanium SDK egy ingyenesen letölthető és használható programcsomag azok számára, akik iPhone-ra vagy Androidra, esetleg egyszerre a kettőre szeretnének fejleszteni és túl hosszadalmasnak vagy bonyolultnak találták ezek eszközök sajátságainak megtanulását (ObjectiveC, Android Java). Programunkat egyszerűen JavaScript nyelven készíthetjük el, azonban a kész program jóformán natív alkalmazás lesz. Nyár közepe óta Titaniummal fejlesztek, most leírom a tapasztalataimat. A Titanium SDK-t az Appcelerator fejleszti. Jelenleg 1.7.2-es verziónál tart, ami már viszonylag kiforrottnak tekinthető. Nem sokkal ezelőtt úgy nézett ki a dolog, hogy csak egy programot adtak, amit OS X-re, Linuxra vagy windowsra letöltve a programunkat le tudtuk fordítani a mobilokra, azonban az 1.7-es SDK-t átgyúrták egy Eclipse pluginné. Így már mondhatjuk, hogy az Eclipse-t, project manage-elő és szövegeditorként használva egy teljes értékű fejlesztő környezetet kapunk a csomagban. Az ingyenes SDK az alapvető igényeket kielégíti, azonban ha programunkban komolyabb rendszerfunkciókat (pl. In-App purchase, Push notification, webes statisztikák készítése) is ki akarunk használni, akkor egy havi díjas fejlesztői hozzáférést is kénytelenek leszünk vásárolni. Natív programok JavaScriptben Ellentmondásosnak tűnik? Pedig egyszerű! A Titanium tartalmaz iPhone-ra és Androidra is egy szoftver réteget, aminek célja, hogy az alatta lévő OS sajátságait a programunk elől elfedje és egy közös, JavaScript-ből hívható felületen keresztül hívhatóvá tegye. Ha tehát például egy leokézható információs ablakot akarunk készíteni, akkor elég az A Titanium API hívások elég sokrétűek, a két platform saját API készleteinek metszetén kívül természetesen elérhetjük a másikon nem létező funkciókat is (pl. Androidon a modális Progress bar ablakot, vagy iPhone-on a navigációs toolbar-t az ablakok tetején). A programozónak magának kell eldöntenie, hogy egy univerzálisan hordozható forráskódot akar készíteni, vagy egy kis plusz energia befektetésével a két platformon azok sajátságait jobban figyelembe veszi és inkább ahhoz alakítja a programot. Kinek ajánlott? Szerintem elsősorban azoknak ajánlható, akiknek nincs idejük mindkét rendszer sajátságainak elsajátítására, és gyorsan nagy eredményeket akarnak elérni. Gyakorlatilag 1-2 nap alatt egy használható prototípus alkalmazást lehet összerakni Titaniummal mindenféle előzetes mobil tudás nélkül is. A másik előnye, hogy alapvetően arra építenek, hogy a célközönség nagy része a webes szakmából érkezik, ezért nekik a legkönnyebb az átállás. A CSS-hez és JavaScripthez pedig ki ne értene legalább egy kicsit? :) Érdemes még megemlíteni, hogy a két legelterjedtebb okostelefon platform mellett a Titanium támogat desktopra fejlesztést is, ami végeredményben HTML GUI-val rendelkező alkalmazásokat szül. Én ezt nem nagyon támogatom, úgyhogy nem is mondanék róla többet, akit érdekel, járjon maga utána. (Így készült pl. a Wunderlist.) Tapasztalatok Én jelenleg 4 programot fejlesztettem eddig a nyár közepe óta Titaniummal, ezek:
Az első dolog, ami nagyon megerőltető tud lenni, hogy odaadják a kezedbe az eszközöket, de nem adnak egy sablont, ami alapján dolgozhatnál. Úgy írod meg a programot, ahogy neked tetszik. Nincs semmi iránymutatás, hogy hogy érdemes szeparálni a dolgokat, vagy például hogy hogy válaszd szét a modellt a view rétegtől. Nincsenek elnevezési konvenciók, vagy bármi hasonló. Mivel ezek nélkül viszonylag nehezen tudok programozni :), így számomra az volt az első, hogy egy átlalános keretrendszert kialakítottam az első programnak, ami annyira bevált, hogy azóta a másik három is abban készült el. A második felismerés, hogy roppant könnyen látványos eredményeket lehetett elérni, azaz egy nap alatt a programok fő funkcióit adó dolgokat – mint pl. a GPS pozíció, adatok letöltése egy szerverről, vibra motor használata, képmegjelenítés – működésre tudtam bírni. Ebben nagy segítséget nyújt a KitchenSink nevű demo program, ami bemutatja a Titanium által nyújtott API-k nagy részének használatát. A programfejlesztésre fordított idő legkisebb része volt azonban a program vázának elkészítése, ennél lényegesen nagyobb feladat volt, hogy minden funkció úgy működjön, ahogy azt elvártuk. Mondok egy példát: GPS koordinátát kiírni pofon egyszerű (negyed óra), azonban úgy megírni a programot, hogy Androidon és iOS-en is folyamatosan aktuális koordinátákat jelenítsen meg, és minden készüléken jól működjön, sokkal nehezebb (4-5 napom elment vele). A probléma nem csak ott van, hogy a triviális hívásokon kívül ilyenkor az extrém eseteket is kezelni kell (a példánál maradva mondjuk azt, hogy nincs GPS a készülékben), hanem itt már előjöttek a Titanium hibái is. Mert abból bizony akad nem is kevés. (Pl. a GPS pozícióváltás eseményre fel tudsz írni egy függvényt, és megadhatod, hogy hány méter változás esetén hívódjon meg az. Ez 1.7.2-es SDK-val iOS alatt egyáltalán nem működik, minden centi változásra meghívódik a függvény.) Szerencsére elmondható, hogy elég korrekt az API dokumentáció, valamint van egy aktív és segítőkész közösség is, akik általában elég gyorsan reagálnak a felmerülő problémákra a fórumban. Átalában ha ott nincs valamire megoldás, akkor az bizony csak nálad szar, és te rontottál el valamit. A legtöbb problémám amúgy Androdidal volt, mert az iPhone mindig működött mint a kisangyal. Az Android emulátor egy rendkívül lassú, nehézkes dolog, szenvedés vele fejleszteni. 10-ből 4-szer nem is hajlandó elindulni, vagy valami probléma okán nem sikerül a fordítás. Erre már megvannak a saját rituáléim, mikor mit kell tenni, ha valaki elakadna, szóljon :) Összességében nekem kétszer annyi idő volt az Androdion is jól működő verzió kifejlesztése, mint az iPhone-os. Publikálás Kicsit féltünk tőle, hogy az Apple mit fog szólni a Titaniummal készített programunkhoz, de semmi gond nem volt vele, simán beengedték az App Store-ba. Természetesen szükséges ehhez a szokásos iPhone Developer account (pénzes) regisztráció. Hasonló a helyzet Androidon is, ott is ki kell pengetni az éves díjat. A megfelelő provisioning profile-okat be kell adagolni a Titaniumnak, és onnantól az Xcode-ot nem is látva tudunk telefonon tesztelni, illetve a Store-ba feltölthető verziót fordítani. Tippek Csokorban szeretnék pár tippet összeszedni, amik talán a kezdőket segítik, mert én is beléjük futottam. Nem kell semmitől megijedni, vannak bugos dolgok, de mindent meg lehet oldani.
Szóval látható, hogy akadnak még bugok, de ezeket folyamatosan javítják ki, és ezek ellenére elég használható a cucc. Aki instant akar fejleszteni, szerintem adjon neki egy esélyt! Sok sikert kívánok mindenkinek, aki belevág! Van itt még más is: |
FrissHasznos postBelőlem máshol |
Hívj meg egy sörre!
CímkékMeta |















Egy válasz
csibar
2011.10.08. 13:02
Köszi, hasznos volt (lesz).
A kommentek RSS feed-je · TrackBack URI
Mondd meg a véleményed