Cos'è esattamente la frammentazione di Android?
La frammentazione di Android è un termine inflazionato basato su alcuni semi di verità:
- Ci sono più versioni del sistema operativo sui dispositivi Android in natura.
- Ci sono diverse varianti del sistema operativo realizzate dai singoli produttori che rompono le cose.
- Ci sono "troppe" risoluzioni dello schermo da supportare (in genere rispetto a iOS).
- I test sono difficili con così tante opzioni di dispositivi.
Il mio background è nella scrittura di giochi per PC, e le lamentele sulla frammentazione sembrano sempre pittoresche rispetto alla frammentazione reale che abbiamo dovuto affrontare allora.
Sì, le cose potrebbero essere marginalmente più difficili da gestire su Android rispetto alla creazione di una build solo per iOS, ma è davvero una piccola frazione dello sforzo per creare un'app per cominciare.
Le versioni del sistema operativo Android
Qui c'è un elenco delle attuali versioni del sistema operativo Android:
Dashboard | Android Developers
Se si punta alla 4.x, si colpisce il 98% dei dispositivi. Puoi farlo mentre usi le nuove caratteristiche usando il livello di compatibilità che Google fornisce: Google effettua efficacemente il backport della maggior parte delle nuove caratteristiche sui dispositivi più vecchi usando il livello di compatibilità, rendendo le differenze un non problema.
Inoltre, Google ha spostato il codice del core OS in "app" che possono essere aggiornate anche quando il produttore non aggiorna l'OS del dispositivo.
Varianti dei produttori
Samsung, HTC, LG, e altri produttori personalizzano Android in varie quantità per differenziare i loro prodotti. Occasionalmente questo può causare un problema quando fanno qualcosa di poco saggio, ma per il 95% delle applicazioni, le differenze del sistema operativo sono irrilevanti. Il restante 5% potrebbe aver bisogno di una correzione per una particolare variante del produttore, ma in genere si tratta di una semplice correzione.
Risoluzioni dello schermo
Penso che questa fosse la principale lamentela originale sulla frammentazione: L'iPhone aveva esattamente una risoluzione, quindi la gente poteva semplicemente progettare un'interfaccia esattamente per quella risoluzione. Poi sono stati rilasciati i display Retina. E l'iPad Mini. E ora abbiamo diverse nuove risoluzioni sulle varianti di iPhone e iPad.
Uno sviluppatore che usa l'approccio tradizionale di iOS di creare un nuovo layout per ogni risoluzione guarderà l'elenco più ampio di risoluzioni Android e urlerà "frammentazione!" come se il problema fosse insormontabile. Ma io sostengo che codificare per l'indipendenza dalla risoluzione è l'approccio giusto per entrambe le piattaforme. Quindi progettate il vostro layout una volta per i dispositivi di dimensioni del telefono, e forse un'altra volta per i tablet, e il gioco è fatto. Risoluzioni e rapporti d'aspetto leggermente diversi non sono improvvisamente un problema usando questo approccio.
Testing
Questa è la categoria con più denti, ma anche i test possono essere gestiti. Non volete comprare un centinaio di dispositivi, ma volete un'ampia copertura di dispositivi nei vostri test.
Integrate quindi l'analisi runtime e la segnalazione di crash nella vostra app, e rivolgetevi ai servizi di test online che offrono di eseguire i vostri test su centinaia di dispositivi. O semplicemente fate una versione beta e raccogliete i dati dai vostri utenti.
Raramente vedo comunque bug specifici della piattaforma, quindi avere un Nexus e un dispositivo Samsung da testare è stato sufficiente.
Summario
La frammentazione è un termine gettato in giro da persone che vogliono giustificare la mancata creazione di una versione Android della loro app, ma è più una scusa debole che una ragione sostanziale. Personalmente credo che lo sviluppo multipiattaforma sia il futuro, e gli strumenti possono effettivamente aiutarvi con molti dei problemi elencati, aggirando completamente le differenze tra i sistemi operativi, rendendo la "frammentazione" ancora meno un problema.
Articoli simili
- Cos'è la frammentazione della risoluzione di Android?
- In pratica, quanto è grave la frammentazione di Android per gli sviluppatori che si rivolgono a più dispositivi?
- Cos'è un file .dex? Cos'è dexopt? Che cos'è odex? Cos'è dexoat? Cos'è ELF? Come funziona tutto questo?
- Cos'è esattamente il brahmastra?