Android fragmentáció, mennyire probléma ez valójában?

Két cikk is felkeltette az érdeklődésemet az elmúlt időben. Többször védtem már az Androidot, mikor valaki – legtöbbször a kerítés túloldaláról (értsd iOS felhasználók, Apple fanok) – átkiabált. Természetesen legtöbbször megfelelő információ hiányában, a platform ismerete nélkül okoskodnak, de néha megesik, hogy igazi véleményvezérek – akik a hazai mezőnyben üzletileg is számítanak – is büfiznek egyet. Sőt, nem egy alkalommal olyanoktól jön a vélemény, akik maguk fejlesztenek vagy fejlesztettek alkalmazást. Többek között az index.hu felől is azt rebesgették, hogy Androidra fejleszteni agymenés és mennyivel egyszerűbb volt az iOS alkalmazást elkészíteni, az Android app pedig folyamatos szívás.
Nos, ezeket én mindig a lehető legegyszerűbben reagáltam le: tanulj meg fejleszteni. Nem a platform alkalmatlan, hanem te. Az ilyen viták alkalmával mindig előkaparnak az emberek cikkeket, nézd meg mekkora cég és nekik is szívás (legutóbb a Gameloft CEO-jának mondatait rángatták elő). Én pedig mindig pár fős fejlesztő csapatokat hoztam példának, akiknek valahogy mégis sikerült. Nemrég olvashattátok az egy emberes garázsfejlesztőből céggé avanzsált Level Up studios cikket, amelyet az elérhető siker bemutatása okán fordítottam le. Most pedig két olyan írásról lesz szó, ahol az egyik fejlesztő (a Temple Run-t jegyző Imangi Studios, majd erre válaszul egy másik fejlesztő) a fragmentáció miatt sír, a másik (a Wolf Toss-t készítő Zipline) pedig azt mondja, fejezzétek be a jajveszékelést a fragmentáció miatt, inkább a minőségellenőrzéssel foglalkozzatok.

Kezdjük az elején

Apple: So today, iOS 4 is a very safe minimum. Very soon, iOS 5 will be.
Android: The hardest part is that you can’t drop support for old things because such a high number of users are stuck, so it is often the newer devices that are the trickiest to support well.

Arról beszélünk, hogy iOS-en két verziót kell támogatni. Itt nagylelkűen átlépnek azon, hogy vannak alverziók is, ezért mi is ezt fogjuk tenni. Androidon a jól belőhető minimum (szándékosan raktam a chartot a cikkhez, ez 6 nappal ezelőtti állapot). Az egyik nagy falat a Froyo (2.2), a másik pedig a Gingerbread (2.3). Ezzel a telefon piac 90%-a le van fedve. Kell még támogatni a táblákon uralkodó Honeycombot (3.x) illetve az új közös platformot, az ICS-t (4.x). Ez így valóban négy a kettővel szemben, de a Honeycomb hónapokon belül ki fog kopni. Plusz az ICS érkezésével megszűnik külön platformnak lenni a tábla és telefon világ.

The hardest part is that you can’t drop support for old things because such a high number of users are stuck, so it is often the newer devices that are the trickiest to support well.

Mondhatjuk, hogy de van ott egy jól látható 2.1-et használó közösség és még elhanyagolható mennyiségben 1.6 és az alatti verziók is. Na igen. Sajnos ők azok, akiknek ideje készüléket váltani, amennyiben szeretnék megkapni az új alkalmazásokat is. Az Apple sem ad ki frissítést a 2G/3G modellekre és a 3GS is jobban járt volna, ha már nem kapja meg. Ez nálam ugyanaz a kategória. Nem baj, ha régi a telefonod, de fogadd el, hogy arra már nem érkezik sok minden. A Google sem adja ki a Playt stb. 2.2 alatt. Pont.

This is especially important because the Android platform is generally far less profitable than Apple’s iOS. People expect to pay less for Android apps and they’re vocal about it. Check out this thread on Reddit about the recently released (and incredibly beautiful) doubleTwist Alarm app for an example of the way that some Android users view paying even $1 for an arguably AAA title.

Azt mondja, még egy AAA (legjobb) minőségű címért sem hajlandó fizetni az Android felhasználó akár csak 1 dollárt is (akciós volt). Nos, én is megéztem anno az alkalmazás és valóban szép. De semmi pluszt nem tud, amire szükségem van. Sőt, nem egy ébresztőóra van, ami valóban többet tud, mit a gyári és azokért hajlandó is fizetni a közönség. Az fel sem merül fel ezekben a fejlesztőkben és cikkírókban, hogy amíg Apple terméket érzelmi alapon vásárolnak legtöbben, addig Androidot a praktikum vezérli. Én sem fogok egy alkalmazásért fizetni, csak azért mert szép, ha semmi szükségem nincs rá. Nem biztos, hogy a vásárló a hülye. Sőt, ebből kellene kiindulni. Én vagyok a fizetőképes kereslet, győzz meg arról, hogy szükségem van a fejlesztésedre. Nagyszerű példa erre a Level Up studiós cikk. Ami működik üzletileg, az Androidon is működik. De lehetne példának hozni a nemrég megjelent Cytust is. Értem én, hogy iOS-en menő. Azt is, hogy 2 dollárt fizetnek érte, de ez nem jelent semmit. A Google Play-en a “kutyának sem kell”, pedig ingyenes és csak extrákért kell fizetni. Én is kipróbáltam, majd sikítva dobtam el. Különböző emberek vagyunk, különböző igényekkel. Ezért választunk különböző platformokat is. Nyilván van közös metszet, de nem lehet mindent megfeleltetni egymásnak.

Nézzük a másik oldalt

We’d spent most of the year beta testing our Moai game development platform

A Moai Game dev platform olyan, mint a Unity egy közös alkalmazásfejlesztő platform iOSre illetve Androidra. Ezért nem értem pl. a Gameloftot, amely cég folyamatosan szenved és külön-külön buildel különböző Android készülékekre ahelyett, hogy valamelyik közös platformot használná.

In January, Wolf Toss was featured on Android Market, and shot up to a million users in a week, with over five hundred different Android device types.

Upsz. Szóval másoknak is úgy tűnik, hogy lehet sikereket elérni Androidon. Jelenleg 1-5 millió között jár letöltésekben a játék, folyamatosan emelkedő tendenciával.

Even as late as January 31,I thought Android fragmentation was a significant challenge and wrote about it in a lessons learned article from our launch

Januárban még azt gondolta a Zipline CEO-ja, hogy igenis komoly probléma a fragmentáció. Itt ír arról is, hogy a felhasználónként elért bevétel 20%-al magasabb iOS-en, de Androidon 25x annyi felhasználó töltötte le. Piciny fejszámolás után azt mondhatjuk, hogy nem kicsit éri meg a fáradtságot az Android. Ha 1 dollár bevétel/felhasználóval számolok (nem ismerjük a pontos számot, csak a könnyű számolás miatt lett 1 dollár a példa, illetve nyilván az Apple és a Google is leveszi a maga részét, de az arányok számítanak jelen esetben) és csak az 1 milliós Android letöltést számolom, az kerek 1 millió dollár bevétel Androidon. Ez iOS-en 40e installt jelent, ami 48.000 dollár. Úgy tűnik a munka meghozza gyümölcsét Androidon és még pénzt is lehet vele keresni… Természetesen munka nélkül nem megy. Ebben egyetértünk, ez nem az a platform.

Guess what we found after weeks of testing? Yes, there were device differences but most of our problems were rooted in classic software engineering issues. We did see some crashes on specific devices, but the catalysts were devices that have less memory or run more processes which were causing the underlying issues to be exposed more often.

A tesztelések során az derült ki, hogy bár különböző készülékeken és verziókon jöttek elő a problémák, mégsem a fragmentáció volt a gond, hanem klasszikus szoftverfejlesztési hibák. Ezek pedig nyilván nem jöttek elő pl. az 1GB RAM-al bíró Galaxy S II és hasonló erőműveken. Tanultak a hibáikból, jobb kódot készítettek és jobb fejlesztők lettek. Arról nem beszélve, hogy a leckét is megtanulták: nem a fragmentáció, hanem a programozói tudás hiánya a probléma.

We rolled those fixes back into our Moai platform, and added real-time crash reporting from Crittercism as well. Today our crash rate on Android is well under 1% of players and very close to iOS.

A hibajavítások után 1% alá esett a játék összeomlások száma Androidon, ami közel olyan arány, mint iOS-en. Tehát ha rendes kódot ír az ember, akkor az Android is ugyanolyan stabil, mint az iOS. Ez számomra eddig sem volt kérdés, de jó ezt egy fejlesztő tollából olvasni. Ha pedig azt nézem, hogy 25x annyi Androidos készüléken fut a játék, mint iOS-en, akkor ez az arány kifejezetten remek.

A big part of our Android problems came from a development effort that didn’t pay enough attention to Android up front. Only one person in our office even had an Android phone when Moai went into beta last summer.

A legnagyobb probléma pedig végig az volt, hogy egyszerűen nem ismerték a platformot és nem szenteltek neki elegendő időt. Az irodájukban összesen egy embernek volt droidja.

Trying to support every Android device is like trying to support every model of iPhone and every major iOS version back to 2007. If you take the time to test properly on Android, and target a capable set of devices, then the main fragmentation problem you have to solve is different resolutions and aspect ratios. It’s a little more work than the four different displays that you now see on iOS devices, but well worth it.

Most már úgy látja, hogy a teljes Android platformot támogatni olyan, mint az iOS verziókat 2007-ig. A legnagyobb kihívás pedig a különböző felbontások és képarányok támogatása. Ami csak egy kicsivel több munka, mint az iOS oldali kijelzők támogatása.

The idea that Android fragmentation is an insurmountable issue for developers is overblown. Our major problems were traditional software engineering challenges and we found only a handful of issues that were truly device-specific in the end. A little extra complexity for Android is worth your time as a developer.

Zárszóként pedig tökéletes ez a kis szösszenet. Az Android fragmentációja túl van lihegve a fejlesztők között. A komoly problémák mind hagyományos szoftverfejlesztési kihívások voltak és csak néhány eszköz specifikus hibát találtak végül. Fejlesztőként megéri az idődet egy kis extra komplexitás Androidon.

Nyomkodj gombokat >>Share on Facebook
Facebook
0Share on Google+
Google+
0Tweet about this on Twitter
Twitter
, , , , , , ,