Hirdetés

Alkalmazásfejlesztés badára: Mi lehetséges és mi nem az?

Az első írásom készítése során sokat töprengtem, hogy milyen megközelítést lenne célszerű követnem a bevezetés során. Bemutattam, hogyan épül fel a bada OS, mit épített köré a Samsung és miért releváns mindez a mai piacon. Így utólag nézve rájöttem, hogy kihagytam egy nagyon fontos tényezőt: a Wave high-end eszköz (bár az árán ez annyira nem mutatkozik meg, legalábbis, ha a konkurens termékekhez mérjük), de jönnek a nála megfizethetőbb testvérei is az év folyamán, mely biztosítja a lehetőséget a szélesebb körben való elterjedéshez. Jelenlegi bejegyzésem persze nem ez a témája, de nem is a kódolás, arra legközelebb fogok kitérni. Most inkább azt szeretném áttekinteni, hogy mit lehet és mit nem lehet megvalósítani ezen a platformon.

A bada SDK (Software Development Kit) az alkalmazások fejlesztésére készült. A paradigma hasonló ahhoz, ami már az iPhone OS kapcsán sokaknak ismerős: ha a felhasználó akar valamit, elindítja a megfelelő alkalmazást, elvégzi a dolgát és kilép belőle. Tehát az alkalmazások életciklusa jellemzően rövid, törekedni kell arra, hogy a felhasználó minél hatékonyabban dolgozhasson. Ezt elősegítendő, a beépített alkalmazások (más szóval "base" alkalmazások) egymás mellett is futhatnak a szabad memória függvényében, a háttérbe küldés nem feltétlen jelenti a program bezárását. A külső alkalmazások (azaz "bada" alkalmazások) már nem ilyen szerencsések: közülük egyszerre csak egy futhat, akár a háttérben is, de egy másodikként elindított program szó nélkül kilépteti az elsőt. Ebben a tekintetben (a Samsung egyik képviselőjének a szavaival élve) a bada alkalmazások szempontjából a rendszer single-tasking.

A helyzetet valamelyest enyhíti, hogy a rendszer képes push üzenetek fogadására szerveroldalról, így egyes funkciók megvalósíthatók a ténylegesen háttérben futó kliensalkalmazások nélkül is – hasonló rendszer üzemel az iPhone OS 3.0 óta az Apple parkjában. A legszembetűnőbb példa (melyet sajnos már nem lehet egyszerűen reprodukálni) az IM (Instant Messagint, tehát azonnali üzenetküldő) alkalmazás volt, remekül működött. A bada fejlesztői csapat üzeneteiből egyébként azt szűrtem ki, hogy idővel elérhető lesz olyan API, amivel a telefon közvetlenül is küldhet ilyen push üzenetet más telefonokra, de erre egyelőre nincs lehetőség.

Szintén nem lehetséges a rendszer viselkedésébe bármilyen módon beleszólni. A felperzselt föld taktika jól működik: mivel semmihez sincs API, nincs mivel hozzányúlni azokhoz a dolgokhoz, amikhez az OS tervezői nem engednek.

Az előzőek értelmében nehány dolog, ami biztosan nem lehetséges:

  • Háttérben korlátlanul futó, esetleg UI-jal nem rendelkező (ágens) alkalmazást fejleszteni.
  • A push üzeneteket leszámítva külső eseményre induló alkalmazást fejleszteni. (Bár a téma szempontjából nem igazán releváns, nem tudom, hogy a Java ME push registry-je hogyan működik a Wave-en. Nincs valakinek egy példakódja, amit egyszerűen ki lehetne próbálni?)
  • Bejövő SMS-eket, MMS-eket bármilyen formában elkapni és kezelni.
  • Folyamatban lévő hívást megszakítani, rögzíteni vagy bármilyen módon befolyásolni.
  • Saját főképernyőt írni, modulokat kicserélni, a gyári alkalmazásokat kibővíteni.
  • Megkerülni a virtuális fájlrendszert, hozzáférni a Linuxhoz, vagy megkerülni a biztonsági rendszert.
  • Képernyőképet készíteni kódból, eseményeket injektálni.
  • Headset vagy kihangosítás nélküli VOIP alkalmazást fejleszteni, mivel a telefonhangszóró nem elérhető. (Egy kísérletet azért megérhet, hogy milyen latenciát produkál a rendszer hangfelvételnél és lejátszásnál, sose lehet tudni alapon.)

Lehetséges viszont:

  • Töménytelen mennyiségben játékokat és egyszerű segédprogramokat fejleszteni.
  • Felhasználni a telefon szenzorait, GPS modulját, kameráit.
  • Twitter, Facebook és MySpace hálózatokat használni.
  • Külső C/C++ könyvtárakat static library formában felhasználni.
  • A Widget SDK segítségével TouchWiz widgeteket készíteni.
  • Partnerként a bada szerverek tárhelyét és szolgáltatásait igénybe venni.
  • Teljesen ingyen publikálni a kész alkalmazásokat a Samsung Apps alkalmazásboltba.
  • Indulni az alkalmazásfejlesztői versenyeken.

Azok a felhasználók, akik a Symbian vagy a régi Windows Mobile széleskörű szétforgácsolhatóságát várják az új platformtól, lehet, hogy csalódni fognak ezen a téren. Valamit valamiért: a keskenyebb körű (látszat)kontrollért cserébe egy elegáns, alapvetően jól dokumentált és érthető C++ API-t kapunk, ami nem él tőlünk függetlenül külön életet. A következő írásban ez lesz a fő téma.

Karma

Azóta történt

Előzmények