Nok med hubbuben om Android-fragmentering

Det frustrerer mig, når jeg læser om, hvordan Android-fragmentering driver udviklere væk fra Android og ind i iOS-komforten. Det betyder ikke, at det problem, folk forsøger at løse - hovedsageligt at der er langt flere Android-enheder end iOS-enheder, enhederne kører forskellige versioner af OS og endda er meget tilpassede - findes ikke, men jeg ' Vi har programmeret Android dagligt i mere end to år, og jeg har endnu ikke fundet en situation, der fik mig til at forbande Android-fragmentering. Jeg kan ikke sige det samme for webudvikling.

Lad os overveje disse kendsgerninger:

  • Der er hundreder af forskellige Android-enheder ude i naturen sammenlignet med en håndfuld iOS-enheder.
  • De hundreder af forskellige Android-enheder har en lang række kombinationer af skærmstørrelser og opløsninger.
  • De hundreder af forskellige Android-enheder varierer meget i den hardware, de sporter, fra en-kerne 600 MHz-processorer til dual-core 1, 5 GHz-monstre. Nogle har kun 256 MB RAM, mens andre tip skalaerne på 1 GB.
  • Et flertal af disse Android-enheder er ikke på den nyeste og bedste version af Android.

Og hvad så? Efter min mening er webbrowsere meget mere fragmenterede end Android. Et af de mest vanskelige aspekter ved webudvikling er at få din webapp til at se og opføre sig nøjagtigt det samme på tværs af forskellige webbrowsere. Det er vanskeligt nok, når du står over for at støtte den seneste iteration af hver af de vigtigste webbrowsere, men det vanskeligt er sammensat, når du også er påkrævet at støtte ældre versioner af browsere.

For eksempel for et par måneder siden oplyste en klient mig om, at jeg skulle lave den web-app, jeg har udviklet / vokset for ham gennem de sidste par år, understøtter IE6, en browser, der har været på markedet i mere end 10 år . Jeg er sikker på, at du kan forestille dig de terse ord, der blev udvekslet, efter at dette bombeskall blev droppet på mig. Jeg gjorde modbydeligt det og trak næsten mit hår ud til tider mens jeg forsøgte at få hver funktion / stil, der fungerer på tværs af enhver browser på en sådan måde, at det understøttede (eller rettere sagt) IE6.

Sammenlignet med webapps og browsere er det en tur i parken at få Android-apps til at se og arbejde konsekvent på tværs af forskellige enheder, skærmstørrelser og pixeltætheder. Fra sammenlægning af layouts og ressourcer til forskellige skærmstørrelser, til "dip" (tæthedsuafhængige pixels) målesystem og CSS-lignende styling, giver Android en nem måde at tackle denne bekymring, hvis du lægger tid til at lære det .

Jeg har hørt fra en hel del iOS-udviklere, at den pixel-perfekte måde at style iOS-layouts på er lidt mindre ønskværdig end den frie form til styling af Android-layouts, hvilket giver mening. Hvornår var sidste gang du stylede en webside ved at placere alle elementer på siden absolut? Forhåbentlig aldrig.

Adressering af ældre versioner af Android

Det seneste platformdistributionskort på Android's Developer-site angiver, at næsten 56% af Android-enheder (med adgang til Android Market) findes på Gingerbread (Android 2.3), som blev frigivet i december 2010. Derudover er 30% af Android-enheder på Froyo (Android 2.2), der blev lanceret et år før Gingerbread.

Selvom det kan virke underligt, at næsten en tredjedel af Android-enheder stadig er i version 2.2, skal vi også overveje, at ikke alle enheder er oprettet lige. Efterhånden som Android modnes og bliver mere ressourceintensivt, skrider de grundlæggende hardwarekrav også videre. En af grundene til, at Android har været sådan en smuk succes, skyldes spredning af billige, billige telefoner på markedet.

Derfor er det ikke fair at antage, at alle Android-enheder burde opgraderes til den nyeste og bedste version af Android. Det er den samme grund, som iPhone 3G ikke kan opgradere til iOS 5. Der er bare tilfældigvis en hel del flere Android-enheder, der ikke "skærer ned."

Hvad synes du?

Del dine meninger om Android-fragmentering i kommentarerne.

© Copyright 2021 | pepebotifarra.com