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):
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.
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? :-)
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.