Ugrás a főmenüre.
Minden más 2010.06.24.

A Java nevű karámba kényszerített fejlesztői közösség

A minap jelent meg @HH Android fanboi (szerintem egyáltalán nem baj fanboy-nak lenni!) tollából Az Objective-C nevű karámba kényszerített fejlesztői közösség, ahol egy külföldi szerző cikkét idézve próbálja egy picit ekézni az iOS platform fő nyelvét.

A külföldi szerző a Java felől érkezett, ezt meg is írja, így természetes, hogy az Android környezete egyből ismerős. Szerintem aki Java felől érkezik, annak az Android lesz tetszetősebb, aki pedig C felől, annak az iOS.

Ugyanis az Objective-C inkább csak a sztenderd C kiegészítése, így nem jelenthet gondot egy C/C++ fejlesztő számára, hiszen azok képességei egyből használhatók, ugyanúgy. Az Objective-C furcsaságait pedig további egy nap alatt meg lehet tanulni, ami leginkább a következőkkel fog telni (ezek azok a furcsaságok, amik miatt egy laikus visszahőköl egy Objective-C példakód láttán):

  • Messaging. Ez az oka a sok hülye szögletes zárójelnek [].
  • Memóriakezelés (nincs gc, ezért sok alloc, release, retain).
  • Header és kódfájlok, osztálydefiníció, változók elérése (@synthesize). Itt még az Apple programozói is sokszor túlzásba esnek, a sok @synthesize és @property később egy kis tapasztalattal csökkenthető.

Az is fontos, hogy az Apple példakódok tragikusan bonyolultak és nehéz kihámozni a legtöbbször csak 4-5 sornyi lényeget.

Ekézzük kicsit az Android-ot viszont

Az UI kezelése az iOS-hoz képest tragikus. Az iOS-ban az Interface Builder, kód oldalról pedig az UIView-re alapozott mechanizmus elég kényelmes, egyedül a ctrl nyomvatartásával történő kapcsolatok létrehozása nem magától értetődő a kezdőknek (az Interface Builder-ben).

Ez messze nincs ilyen kényelmesen megoldva az Android-on, ráadásul ott a többféle képernyő/felbontás támogatása, amitől már egy egyszerű gomb mérete/elhelyezése is problémás. iOS-on csak egy @2x-szel kiegészített fájlnevű képet kell megadni, ezzel a több felbontás kezelése nagyrészt megoldott, a natív SDK kontrolokkal pedig semmit sem kell csinálni.

Ezzel szemben Android-on ott a mindenféle képernyőméret és sűrűség (density), valamit a tesztelés problémája. Hányféle készüléken? Mennyire jó a touch érzékelés pl. a széleken, melyik modellen? Egyáltalán melyik Android verzió??

Az Objective-C annyira karám, amennyire a Java az. Szerintem az Android fanboi-ok "szabadságharcosnak" érzik magukat és minden iOS dolgot zártnak, egyedinek látnak, azt is, amit nem kéne. Ellenben minden Android-os ügyet nyíltként kezelnek, ami természetesen nem igaz.

Csak egy példa: egy csomó izgalmas library C-ben vagy C++-ban van megírva, tonnaszám tölthetők le mondjuk a SourceForge-ról. Egy csomó izgalmas példakód C-ben vagy C++-ban van megírva. Nagyon sok ezek közül kapásból beépíthető az iOS programomba, mindenféle változtatás nélkül. Főleg teljesítményigényes cuccok ezek, amik az Android NDK-val sokkal nehezebben használhatók, ha egyáltalán.

Egyébként én személy szerint fázom, ha az Eclipse-t kell használnom, nekem az XCode sokkal gördülékenyebb. Egy szó, mint száz: ha valaki innen jön, akkor ez lesz a jobb, ha valaki onnan, akkor pedig amaz.

@HH pedig erős kapufát rúgott a cikkével, ráadásul át is kellene keresztelni a Webisztánt, mert hogy jönnek ide a mobilos cikkek? :-)

11 hozzászólás

  1. idézem 2010.06.24. 07:59
    • hh
    A szemelyeskedesekhez: az apple-t, amennyiben indokoltnak gondolom, tobbet szoktam dicserni kulonbozo okok miatt, mint az androidot. Masreszt a webisztanon termeszetesen arrol irok, amirol csak akarok. Ahogy te is a blogodon :)
    Az objective-c kapcsan en csupan egy fejlesztoi velemenyt ismertettem, amit sok mas fejleszto is oszt. Termeszetesen nem azok, akik sajat fejlesztesu iphone appjaikbol elnek :) btw, androidra lesz dj app?
  2. idézem 2010.06.24. 08:16
    Folyamatosan nézzük, hogy mikor tudjuk Android-ra is fejleszteni. Egyelőre annyival gyengébb az Android fejlesztői környezete azokban a speciális témákban, amik a DJP-hez kellenek, hogy az extra fejlesztői költséget nem ellensúlyozza az Android-on elérhető piac. Ez valószínűleg meg fog változni valamikor a jövőben, de gyanítom idén még nem.

    A Webisztánon azért erősen látszik az Android-os hangsúly (ami nem baj), szerintem nyitni kellene egy új valamit ezeknek a cikkeknek, hiszen a mobil az új web, nem? :-)
  3. idézem 2010.06.24. 08:31
    Én mióta fejlesztek java-t használok, ezért kezdtem el androidra fejleszteni, soha nem is szerettem a apple irányvonalat, de pár hónap elég volt hogy lesujtó legyen a véleményem az androidról...

    Vettem 2 különböző telefont tesztelése, de már az alap dolgokban eltérések vannak a telefonok között hogy folyamat összeomlanak az appok, openGl kezelséről meg ne is beszéljünk. Ahány telefon annyi féle, misztikus hiba, képtelenség minden telefonra kitesztelni. Hetekig szoptam minimális eltérések kiderítésével is, és még mindig nem jutottam előbbre, sehol senkinek semmi tapasztalata, a gyártók se írnak se semmit az eltérésekről. Katasztrófa.

    Android verzió kezelés elvileg megoldható market szürőkkel. Meg lehet adni hogy csak 2.1-es telefonnal lássák az appot. Na ez úgy ahogy van nem működik, az első napon 3an írták hogy force close-ol az app, olyan telefonokról amik 1.6-2.0-ás droidokat használnak.

    És ami a lényeg, beregelsz 25$-ért android marketbe, és erre kiderül, hogy magyaroországról fizetős appot nem lehet kirakni. Szokásos google duma: dolgozunk rajta....

    Érdekes a 25$dolcsis regidíjat befizetés azért müxik mo.-on....

    Androidra fejleszteni a mostani állapotban totálisan értelmetlen, pénz és időkidobás.
  4. idézem 2010.06.24. 08:36
    @butcher Más Android-ra fejlesztők is ezeket mondják? Ustream-nél elég profinak tűnnek a srácok, őket kérdezted már, hogyan oldják meg?

    Mert ez így elég rémisztő.
  5. idézem 2010.06.24. 08:48
    Hetek óta írogatok fórumokba, akiket látom hogy fejlesztők nekik leveleket hogy valakinek valami 5lete mik lehetnek a gondok, sehol semmi.

    Mindenki csak kóstolgatja a témát, semmi tapasztalat, mindenki csak tippelget...

    Nyilván benne van a pakliban hogy openGl-es appal kezdtem, és ott lehetnek eltérések, de azt mondom hogy rá lehetne jönni 1-2 hét alatt az eltérésekre, de már 1 hónapja küzdök lassan, és nem derülnek ki a gondok.

    Market elvileg visszajelzi az errorokat, de semmi jelzés nem jött. Bele építettem az alkalmazásba saját ellenőrzést, szinte az egész app már try catch-ekből áll, ami visszaküldni nekem a hibákat... semmmi.

    A marketbe meg folyamatosan jönnek a kommentek hogy force close, és csillagozzák le az appot. Pedig a 4 telefonon ami teszteltem tökéletesen működik.
    Desire legend, nexus one, 2.1 hero-on megy, de pl motorola milestone-t nem tudtam szerezni, erre folyamatosan írják hogy elszáll.

    Igazából lapítottam eddig hogy biztos kezdő vagyok, de amúgy javazok 6éve, szóval nem mondanám hogy kezdő lennék, és marha kitartó is vagyok, de ez már kiborított hogy képtelen az ember előbbre jutni...

    Amúgy ezt csináltam amúgy:
    http://www.androidzoom.com/android_games/arcade_and_action/where-is-the-red_hzau.html

    Flash verzió ugyanebből ha nincs droidja valakinek:
    http://www.butcher.hu/whereisthered/
  6. idézem 2010.06.24. 08:52
    Azt hittem biztos én vagyok a béna, de marketbe minden második app ilyen kommentel van tele, hogy nem működik x-y telefonon. Szóval nem egyedi a problémám.
  7. idézem 2010.06.24. 08:52
    Jópofa játék, az igazi szakértőit a Blahán még nem kérdezted meg? :-)

    Akkor ezek szerint egyelőre problémás a játékok készítése Androidra, hiszen az OpenGL bugzik. És mi a helyzet a sima UI kezeléssel?
  8. idézem 2010.06.24. 09:02
    Azzal - elvileg - nincs gond. De szerintem kevés olyan téma van amihez alap ui használat elég. Ilyen egyszerü notepad-ak fájlkezelők max. Bármi interaktívabb hogy kezelhető sebességű legyen muszály openGl.

    A cikkben említett gc is küzdelem hogy a holt időbe fusson, és ne az animációt akassza be a futásával
  9. idézem 2010.06.24. 09:04
    Most már annyira egyébként h próbálom vételáron visszavetetni a két telót, hogy visszakapjam a "kidobott" pénzem, és vegyek iphone + valami mac minit vagy valamit.
  10. idézem 2010.06.24. 09:05
    • butcher
    felidegesített, az kimaradt bocsi :))
  11. idézem 2010.06.25. 07:30
    • Sera via Google Reader
    Számból vette ki a szóta.
Új hozzászólás
A sortörések automatikusak. Csak az üzenet kitöltése kötelező, a többi mező opcionális. A megadott e-mail címet nem tesszük közzé. Engedélyezett HTML tagek: p, a, strong, em, blockquote, ul, ol, li, dl, dt, dd.

Legutolsó hozzászólások

Diszkórobbanás a 90-es években és a legendás Campari diszkó: Árpika Palotáról: Szia ZooLou :-9 Te melyik részen melóztál?

Teh early agez... (így kezdődött) 1990-1992: Tamás Hölzer: Szia Gábor! Hozzájárulsz, hogy a http://zenci-blog.blogspot.com/p/disco-story.html blogban linkeljem a diszkó "történelmed"? Üdv; tamás

Diszkórobbanás a 90-es években és a legendás Campari diszkó: ZooLou: Finucsi, PG, Függöny, Dj Tökimanó, Barbi, Kacsa, Virág, Feri, Erzsi, Jana, és még sokan a csapatból! Én is lehúztam egy kis időt ott,...

A csatlakozás az iPhone Developer Program-hoz szívás: Nyéki Zoltán: Sziasztok, Arról nincs információtok vagy tanácsotok, hogy egy magyarországi kisvállalkozásnak hogy kell regisztrálnia az Applenél, hogy...

Rólam és a blogról: Szanto Peter: Szia, en is szeretnek veled app fejlesztes ugyben beszelni:) Ha aktualis szamodra uj projekt befogadasa, akkor kerlek irj. koszi, p

iMect means internet, media and other cool things. We're a small company located in Hungary. There is a big footer on every page where you can discover what we do and what happens with us.

Az iMect jelentése: internet, média és egyéb király dolgok. Egy kis magyar cég vagyunk. Minden oldalon van egy nagy lábléc, ahol felfedezheted, hogy mivel foglalkozunk.