Egy hete már írtam a Google Android platformjáról, amikor a Google bejelentette azt. Tegnap végre közzétették a programozói felület fejlesztők számára érdekes részleteit is, ennek kapcsán most már többminden látható a múlt heti (semmitmondó) bejelentéshez képest.

A véleményemet már részben kifejtettem a Kispad idevágó bejegyzésében, de úgy érzem, tudom én ezt még részletesebben is. Mindenekelőtt két indító gondolat. Egyrészt akarva, akaratlanul, az Android operációs rendszer/programozói interfészt az iPhone+Mac OS X mobil verziója párossal hasonlítom össze, mivel nemrégiben beszereztem egy iPod Touch-ot, és eléggé beleszerettem a hackelhetőségébe. Másrészt az is megér pár mondatot, hogy miért is szerepel ez a bejegyzés a webről szóló blogomban. Ahogy elnézem, a jövő programozása a mobil platform, az asztali platform és a webes platform egyre közelibbé válásáról fog szólni. Az iPhone egy igen jó példa a webalkalmazások mobilizálására, mivel a modern webalkalmazásokat az iPhone Safarija támogatja a legjobban teljes értékű és kényelmesen használható böngészőjével. A web és az asztali szoftverek közeledéséről is írtam már, a lényeg tehát, hogy úgy látom, szűnnek meg a határok és a falak is.
Az Android platformot egyelőre kétkedve fogadom. Most már látszik, hogy a Google nem a levegőbe beszélt egy hete, de ezzel együtt tovább is mehettek volna ami az API-t illeti. A közzétett demókból, dokumentációból az szűrhető le, hogy az Android mobilok az iPhone-hoz hasonlítva sem szebbek, sem kényelmesebbek nem lesznek még egy ideig – egyedül arra van remény, hogy okosabbak lesznek. Eszpee gondolata ehhez jó kiegészítés, miszerint “viszont ez a dolog nem (csak) az iPhone szintű okostelefonokról szól“. Avagy az Android a “buta” és az iPhone szintű okostelefonok közötti kategóriában tényleg erőssé vállhat. De nézzük a kétkedés és az ujjongás részleteit is meg:
Az API-t átnézve (főként annak, aki ismeri a J2ME-t) feltűnhet, hogy nem okosabb és részletesebb az Android, mint a már most is használható lehetőségek (J2ME, Symbian). Az Android egyvalamiben látszik ügyesebbnek: lehetővé teszi rendszerközelibb alkalmazások készítését, ami a mobiltelefonnál azt jelenti, hogy például hívások, SMS érkezésének lekezelését is. Ezt leszámítva láttam már hasonló, többet tudó API-kat a Java és nem Java környékén asztali alkalmazások fejlesztésére is, és nem érzem úgy, hogy bármi forradalmi lenne ebben az API-ban. Az okosabb, hasonló jellegű API-k sem csábítottak el igazán.
Java. Ez nekem nagyon sokat mond. Egyrészt, hogy egyelőre még nem sikerült elsajátítanom ezt a nyelvet, így nem tudok hatékonyan fejleszteni benne. Ennek ellenére egyrészt az új Java nyelvi verziókban számos nagyon szimpatikus újdonság jelent meg az olyan script-kiddie (általános értelmezésétől eltekintve itt értsd: script nyelveket kedvelő) számára is, mint én vagyok, illetve lehet, hogy most már ideje lenne ezzel a nyelvvel is foglalkozni egy kicsit. Ezenkívül még nem láttam gyorsan induló Java alkalmazást. Java segítségével lehet gyors alkalmazást írni, de az Java gép beindítása, egy alkalmazás inicialiálása jellemzően még egy 1-2 GHz-es gépen sem mondható gyorsnak, nem tudom, hogy ezt egy kb. 400 MHz-es processzoron hogyan tudja, meg tudja-e valósítani a Google. Az Android ugyanis nem Java alapú operációs rendszerről szól, hanem egy “sima” Linux alapú. A gyors alkalmazásindítás megvalósítható, ahogyan a Java webkiszolgálók esetében is, előre be kell indítani a Java értelmezőből párat. Remélhetőleg ezt, vagy akár valami okosabbat is össze fog tudni hozni a Google. Egy másik lehetőség, hogy a jelenleg propagált Java mellett script, C és C++ fejlesztői eszközök is napvilágot látnak majd, Linux alap révén erre azért komoly esély van.
A jelenleg közzétett interfész elemek szegényesebbek az iPhone-on rendelkezésre állóknál kinézetükben és lehetőségeikben. Az iPhone platform jelenleg zárt, így nem tudok doksira linkelni, az eddig iPod Touch-on látott third-party fejlesztők által készített egységes interfész elemek (például egy nagyon szép progress bar) mondatják ezt velem. Az Apple-nek a fejlesztőket nagyon jól segítő interface guideline-jai (bocs, hirtelen nem találtam jó fordítást) is nagyon sokat jelentenek, látva a Mac-es alkalmazások kiváló használhatóságát a Windows-os és Linuxos társakhoz képest. Mondjuk ez az, ami a jövőben fejlődni fog és tud, egyrészt a Google által, másrészt pedig azért, mert ilyen interfész elemek szabadon készíthetőek lesznek.
És most jutottunk el oda, ami szintén egy aggodalmam a használhatóságot, egyszerű kezelhetőséget, kompatibilitást és egységességet illetően. Az, hogy ez a platform túl nyílt. Láthattuk, hogy ez mit jelent a Linux esetében: rengeteg irányt, több párhuzamos “szabványt” alkalmazásfejlesztésre (mondjuk KDE és Gnome, Gtk és Qt, stb.), “káoszt”. Ez jó, mert sokminden közül választhatsz, rossz, mert nem egységes semmi sem. A Linux hosszú évek után mostanra kezdi kinőni ezt a gyermekbetegségét különböző kezdeményezések által. Erre lehet a válasz, hogy de hisz itt csak egy platform van, de ez a platform nyílt, fiatal, egyelőre hiányoznak elemei, és a különböző fejlesztők ezeket a hiányosságokat különbözőképpen fogják az elején befoltozni, megkerülni. Ez ellen a Google egyféleképpen védekezhet, egy tettrekész, hiperaktív saját fejlesztői gárdával, a jó fejlesztői könyvtárak kiemelésével, a kevésbé jók elsorvasztásával, beolvasztásával, az egységesítéssel, a szigorú gyeplővel a fejlesztők, alkalmazás gyártók felé. Ehhez nagyon-nagyon oda kell tennie magát, ha ez sikerül neki, akkor szinte a lehetetlent fogja véghezvinni.
Szintén kérdéses a hardvergyártók minőségre törekvése is. Az eddigi telefon felhozatalt látva kevesek tudnak igazán minőségit alkotni interfészek terén, és az Andorid csapatban sem az ászok szerepelnek. Attól tartok, hogy az igényességet nem sajátították el a gyártók a csatlakozással. Nem lesznek jobb programozóik, interfész tervezőik, mert például a hiányzó láncszem Nokia ezeket már rég elszipkázta. Hogy a Google delegálni fog-e nekik fejlesztőket (vagy legalább minőségellenőrzést végez-e), egy erős platform tud-e ezen segíteni, nem tudom. De az erős platformot egyelőre még nem látom, és a Google segítsége pedig biztosan pénzbe kerül – erre pedig eddig sem költöttek túl sokat. Azért itt is van remény a fejlődésre, de félek, hogy gagyi saját szoftvereket, kis nüansznyi baromságokból, hardveres inkompatibilitásból adódó problémákból, szoftveres módosításokból összejön majd annyi, hogy kezdetben nem fog sokat érni a platform nyíltsága.
Az egységesség, nyíltság mégvalamit hozhat, a vírusokat. Ezen a téren azonban az Android felkészültnek látszik, bízzunk benne, hogy ez a gyakorlatban is így lesz, és kevés rés lesz a pajzson, a felhasználók pedig tudni fogják, hogy mit csinálnak. Mindazonáltal megvan az esélye, hogy 2008 a mobil vírusok éve lesz.
A vége felé kitérek arra is, hogy a webfejlesztés szempontjából az, hogy a hivatalos böngészőnek a Google a Webkitet választotta, számomra pozitívnak tűnik. Egy fejlett, s bár JavaScriptben még nem, de megjelenítésben nagyon erős, gyorsan fejlődő, nyílt és kellemesen gyors böngészőről van szó. Az Apple sem véletlenül választotta ezt a motort a Safarinak, és nem véletlenül ez fut az iPhone-on sem. Ha a mobil gyártók kijönnek egy az iPhone-hoz hasonlító felbontású kijelzős mobillal, a Google pedig szoftver szinten biztosítja a kompatibilitást (nem túl nehéz), akkor máris futni tudnak az iPhone alkalmazások az Android telefonokon is.
Az Android telefonok hackelhetősége, bővíthetősége még így is várhatóak elég magas lesz. Kérdés, hogy jobb lesz-e a megnyitott iPhone SDK-hoz képest is, az OpenMoko-hoz (Nokia közel van ehhez) hasonlítva? A Google állt oda, így a hype, az erős videós és dokumentációs gyakorlata miatt erre jó esélyt látok, bár pont ezekaz Apple+iPhone-nak is sajátjai. A Google mindazonáltal hatalmas tőkével rendelkezik, és ezt be is veti: 10 millió dollárt szán az induló fejlesztésekre.
Ígéretes, és egyelőre nem tudom hova tenni azt, hogy egészen magas támogatottságú a projekt a Google-n belül is. Mutataja ezt az, hogy Eric Schmidt prezentálta egy hete az Androidot, vagy hogy Sergei Brin (Google alapító atyaúristen) is szerepel a mostani bemutató videókon. Igazából tökmindegy, hogy ezeke az emberek valóban részt vesznek-e az Android marketingjében és fejlesztésében, vagy csak a mostani kezdeti lendületet kívánták-e megadni a projektnek, mert nagyon magas marketing/jelzés értékű ez a tény. Nem véletlen, hogy Steve Jobs prezentál minden újdonságot az Apple-nél, és ennek az Androidnál történő megjelenése sokat érhet a platformnak.
Az Android minden fenti kétkedésem ellenére egy ígéretes indulás, és sokat jelenthet a mobil számítástechnikának. Ahogy az iPhone feladta a leckét és igen magasra tette a lécet az interfész és design terén, addig az Android a nyíltságával határoz meg egy magas szintet. Ez erős versenyt indíthat be, ami a felhasználóknak jól használható telefonokat, a fejlesztőknek pedig egy új, elérhető, könnyen programozható platform megjelenését jelentheti. Még meglátjuk, mi lesz ebből. És megint Kispadot és eszpee-t idézek
, amivel ő kezdte, én azzal fejezem be: “Ez nagyjából a legnagyobb dolog, ami a mobiliparral mostanában történik“.
Én speciel ismerek magyar exnokiást, aki Android-on dolgoik Svájcban. Szerintem dögivel lesz mögötte ember, bár egyelőre nyilván titkolják, hogy min dolgoznak.
Nekem olyan az android kezelőfelülete, mint egy átmenet a windows mobile és iphone között.
Egyenlőre nem tetszik, de gondolom sokat fog még fejlődni, nyilván ez egy prototipus.
Az viszont tényleg izgalmasnak tűnik, hogy rendszerközeli dolgokati s el lehet érni…
Szvsz ha lenne végre egy ténylegesen közös felület, amivel megoldható, hogy ne kelljen minden egyes telóra külön megírni a kódot (java), és emellett megfelelően szabad, nos, akkor az Android már betegglehető a ‘jó dolog’ cimkével. Ha a google a saját jóhírével tolja, van rá esély, hogy nem egy tiszavirágéletű próbálkozásnak lehetünk tanui, hanem egy ténylegesen működö rendszernek.
A véleményemet alapvetően nem változtatja meg, de nagyrészt egyetértek Robert Scoble véleményével:
http://scobleizer.com/2007/11/12/google-android-we-want-developers-but/
szerintem te is láttad a csiripen: http://blogoscoped.com/archive/2007-11-13-n83.html
És ez a lényeg a java aggodalmadra
Jó, csak miért hasonlít egy SDK-t az Iphone-hoz. Nem Iphone-t akarnak csinálni, hanem széles körű applikációhalmazt. Nem az a lényeg, hogy mennyire béna a GUI, hanem az, hogyan tudnak mobillá tenni rengeteg dolgot, ami még nem az.
robi: Ez kifejezetten eloszlatja minden aggodalmamat a Java-t illetően. Sőt. Ez egy nagyon szuper.
CsaZ: Az iPhone teremtette lehetőségeket és az iPhone környezetet hasonlítom az Android teremtette lehetőségekkel és környezettel. A felhasználói elfogadottság jelentősen függ attól, hogy hogyan néz ki a dolog, és használható-e, bár valóban nem ez a legalapvetőbb dolog. Akkor tudnak megfőzni viszont sok programozót, ha egy olyan eszközt kínálnak, amely jobb, mint a korábbiak. És hiába a sok alkalmazás, ha gondok vannak a platformmal.
ehh, egy napja akarok én is írni egy kis értekezést a témában, micro java irányból közelítve a dolgot, de teljesen jól megfogalmaztad a kérdéses részeket. az android egy jó lehetőség a mobil ipar felrázására, teret engedhet “amatőröknek” akár a felület forradalmasítására. kérdés mennyi lendület van bennük, elég lesz a symbian és a winmo-hoz való felnövéshez, igazi alternatívává váláshoz. fingers crossed.
“Az API-t átnézve (főként annak, aki ismeri a J2ME-t) feltűnhet, hogy nem okosabb és részletesebb az Android, mint a már most is használható lehetőségek (J2ME, Symbian).”
Bocs, de hogy írhatsz ekkora baromságot? Az android sdk voltaképpen a Java 5 SE részhalmaza, világok választják el a primitív Java ME MIDP2 CLDC 1.1-től, amit Symbian S60 telefonokon alkalmaznak, illetve a Personal Profile 1.1-től, amit a Symbian UIQ3-on.
Az Android által bevezetett API kiegészítések pedig egészen új dimenziókat nyitnak meg a mobilra javaban programozók előtt. Nézd meg a UI osztályokat, adatbázis interfészeket, a low level hozzáférési lehetőségeket a hardverhez (szenzorok stb.), oprendszerhez, opengl, beszédfelismerés, webkit interfészek, de kár is ennyire belemélyedni, mert ha csak a Java 5 SE -ből átvett csomagokat nézzuk, az is magasan lealázza a jelenleg használatos Java Me megoldásokat. Mondom ezt úgy, hogy Java ME alkalmazások fejlesztéséből élek, szóval elvleg elfogultnak kellene lennem a Java ME irányában
szerintem vhol a kettő között lesz az igazság. nekem elsőre inkább az ME app life cycle-jére hasonlít az android alkalmazás vezértlése, ill. pont az általad említett opengl java binding is egy kronos féle ME binding, nem pedig az SE-ben használt jogl. persze sokkal kultúráltabb az android, abszolút érződik rajta h, komolyabb hw lehetőségekre van méretezve. pl. az ME-nél maga az API is úgy van kitalálva hogy egyetlen osztállyal több komponensnek megfelelő interfészt tudj implementálni… az androidban nem érződik az a paranoid memóriatakarékosság sem mint ami az ME-re volt jellemző, hogy minden egyes plusz objektum szükségességét nagyon meg kell fontolni. és hát maga az alkalmazások közti üzengetés, feladatdelegálás pedig zseniális.
Az Andoidot egyelore nem szabad a felulet iranyabol megkozeliteni, hiszen meg egy felkesz rendszerrol van szo. Talan eppen ezert tolja a Google a hype-ot: szeretne, ha az elso valodi keszulek kiadasaig (amit jovo nyarra igernek), mar egy csomo fejleszto venne reszt a veglegesitesben.
Az Android szerintem az iPhone konkurense szeretne lenni, amivel egyutt a mobil operacios rendszerek uj generaciojat alkotja. Sem a Symbian, sem a Windows Mobile nem nyujt olyan merteku web integraltsagot, mint ez a ketto.
Az Android legnagyobb erossege szerintem a “resource provider” jellegu architekturajabol fakad: adott komponens konnyen lecserelheto, es a komponensek jol hasznalhatjak egymas lehetosegeit. Peldaul, ha nem tetszik a gyari telefonkonyv alkalmazas, akkor egyszeruen letolthetsz egy masikat, innentol kezdve barhol eloveszed a kontaktjaidat, az uj alkalmazas fog elindulni. A felhasznalo nem akar a telefonjan kulonbozo programokat latni, mint Windows Mobile, vagy Symbian alatt, o csak egy egyszeru keszuleket szeretne, ami mindent tud, ami neki kell. A felulet igy folyamatosan, es remelhetoleg visszafele is kompatibilisen tud fejlodni, nincs tobbe az a szivas, hogy “az elozo Nokia keszulekemben jobb volt a naptar”
Azt se felejtsuk el, hogy a piacon jopar olyan telefongyarto van, aki szeretne betorni az okostelefonok piacara, azonban nincs meg a tudasa egy teljes oprendszer megirasara. Igy most sulyos osszegekert kell licencelnie a Windows-t vagy a Symbiant. Most megkaphatja az Androidot – jutanyos osszegert. (Az azert nem tul valoszinu, hogy a telefongyartok is ingyen kapnak az oprendszert. Majd a supportert fizetnek, vagy cserebe raallitanak par fejlesztot).
Ha majd egyszer kijon az elso telefon, akkor majd raerunk azon vitatkozni, hogy kenyelmesebb-e az iPhone-nal (gyanitom, nem lesz az).