Systèmes d'exploitation mobiles et de la fragmentation: le point de vue de l'initié
Si vous développez une application de téléphone mobile, vous allez probablement vous poser la question, comment de nombreux types d'appareils seront en cours d'exécution de mon application? La réponse dépend de votre public cible, et sur ce que vous comptez comme un "type de dispositif." Mais avec 4000 types différents de dispositifs fonctionnant sous Android, la réponse sera un nombre assez élevé. Comparez cela avec un nombre similaire pour le système d'exploitation iOS d'Apple, où le nombre de modèles d'appareils est inférieure à 30.
Il ne fait aucun doute à ce sujet, le monde Android est diverse. Pour les consommateurs qui signifie choix et la liberté, mais les développeurs peuvent voir que la fragmentation. Plusieurs compagnies offrent des services aux applications de test sur des centaines d'appareils à la fois, et il ya aussi d'autres des moyens pour tester vos applications économiquement sur une gamme d'appareils. Google est également rejoindre la mêlée avec son nouveau laboratoire de test Cloud.
Dans le cadre du Google I / O la conférence de cette année, je attendu pendant trois heures dans 55oF météo (fin mai à San Francisco) pour entrer dans un événement social d'un fournisseur indépendant. Pour passer le temps, je demandai à deux experts Android sur leurs expériences avec la fragmentation dans l'espace mobile. Leurs réponses m'a surpris. Avec leur permission, je les parties enregistrées de la conversation et transcrit (en fait, il paraphrasé) pour la présentation dans cet article.
L'un des experts est un développeur Android pour une entreprise de logiciels mobiles. L'autre est un employé de haut niveau d'un fournisseur de service de téléphone sans fil de premier plan (une société "porteur"). Les deux me dit qu'ils se sentiraient plus à l'aise si je ne l'utilise pas leurs noms dans cet article. Voici ce que le développeur Android a déclaré à propos de la fragmentation, et sur les systèmes d'exploitation mobiles en général:
"Je ne pense pas trop à propos de la fragmentation parce que nous construisons nos applications à l'échelle. Les seules questions que je ai rencontré récemment sommes là où nous ne disposons pas de suffisamment de mémoire disponible (pour charger de grandes images, par exemple). Google œuvre densité -indépendante pixels pour une raison - à l'échelle entre les différentes tailles d'écran Voilà une question L'autre problème est la question des niveaux de l'API Google a appcompat pour aider à ce que Il ya d'autres choses là-bas que vous pouvez utiliser ".....
Ce qu'ils ont dit
Qu'en est-il autre téléphone fabrique et matériel différent? "
"Vous voulez dire que Samsung contre LG et des choses comme ça? Cela revient à matériel. Parfois, il ya quelque chose de bizarre se passe avec le GPU. Nous essayons de contourner le problème. Parfois, il finit par être quelque chose que le fabricant doit fixer dans une mise à jour du firmware. "
Donc, du point de vue de ce développeur, la fragmentation Android est pas une grosse affaire. L'employé de la société de transport avait beaucoup plus à dire. Mais encore une fois, il n'a pas été ce que je m'y attendais d'entendre:
«Les opérateurs contrôlent l'écosystème. Nous contrôlons le matériel, les caractéristiques, et comment les choses sont cartographiés. Nous contrôlons même l'OS. Nous disons Google et Microsoft (et dans une certaine mesure, Apple) quels types d'API doivent être là. Donc, nous forçons normalisation. "
Je comprends que les transporteurs en dehors des États-Unis ont des relations avec leurs clients et leurs gouvernements. Je demandai donc si ces revendications sur le pouvoir des transporteurs appliquent aux transporteurs dans d'autres pays.
Je ne pense pas trop à propos de la fragmentation parce que nous construisons nos applications à l'échelle.
"Cela dépend de la taille de la porte. Quand je vais aux grands sommets de support, tout le monde est là. Voilà, tout le monde qui importe est là. Quand Google, Microsoft, Apple, Mozilla ou quelqu'un libère un système d'exploitation avec une mise à jour de l'API ou une nouvelle version, tout le monde est à la table."A ce stade, 8 ou 9 ans dans Android, nous avons travaillé autour de la question de la fragmentation. Nous ne traitons pas avec des problèmes de taille de l'écran plus. Les paradigmes de développement qui ont évolué sont dynamiques. Nous avons travaillé sur Brew, Symbian et une douzaine d'autres plates-formes. Nous avons toujours traité des questions de taille de l'écran et la compatibilité.
"Le problème que nous avons est une sorte de fragmentation inverse. Google a fermé son modèle. Ils ont été sous examen, de sorte qu'ils ont été emmenaient API. Par exemple, vous ne l'avez plus accès direct à la technologie NFC. Vous ne pouvez pas envoyer et recevoir un SMS depuis une application qui est pas une application de SMS par défaut. La même chose est arrivée avec les paiements mobiles. "
Je leur ai demandé une application que je créé récemment. Mon application ordinaire envoyé un SMS en utilisant seulement android.permission.SEND_SMS.
"Vous pouvez envoyer un SMS pour le moment. Mais vous ne pouvez pas surveiller le trafic et vous ne pas avoir accès à la liste des appels.
«Les choses ont été ferment. Nous traitons avec la fragmentation lorsque nos clients ont certaines capacités et nous libèrent un nouveau client avec un jeu dépouillé des capacités. (Nous utilisons le mot« client »de façon interchangeable avec" build. "Il est un client mobile qui interagit avec un composant de serveur.) Nous ne voulons pas enlever caractéristiques d'un utilisateur qui a l'habitude d'avoir ces caractéristiques, en particulier lorsque ces caractéristiques sont la génération de revenus pour ce périphérique ".
Qu'en est-il la fragmentation iOS?
"Avec iOS, la fragmentation est une bête totalement différente. Parfois, vous ne devez avoir plusieurs clients. Apple contrôle le matériel, ils ont donc pas évolué certaines caractéristiques. Et certaines caractéristiques arriver en retard. Vous travaillez autour de lui. Apple est aussi beaucoup moins indulgent et moins disposés à travailler avec vous sur beaucoup de ces choses. Mais voilà comment ça se passe.
"Apple ne aime pas travailler avec des supports ou grands développeurs d'applications (entreprises qui aident à créer leur écosystème). Ils vont choisir leurs partenaires préférés et travailler avec eux. Mais les gens de chez Apple savent ce qu'ils veulent faire et il n'y a pas changer. Vous pouvez demander des API, mais il faut se battre vraiment dur pour les obtenir. Si vous voulez faire quelque chose de plus et ils ne l'avez pas prévu sur elle ou ils ne veulent pas le faire, il ne va pas se produire. Si quelque chose va se produire, qui va briser la fonctionnalité, vous avez à vivre avec elle ".
Android a évolué paradigmes et cadres qui traitent de la compatibilité ascendante. Il est intégré dans le système d'exploitation.
Je demandai à propos de la compatibilité ascendante - un problème qui peut affecter tous les développeurs, y compris Android et iOS développeurs.
"Nous ne traitons pas avec la compatibilité ascendante. Android a évolué paradigmes et cadres qui traitent de la compatibilité ascendante. Il est intégré dans le système d'exploitation.
"IOS d'Apple est allé dans le sens inverse. Ils ont eu à construire à la hauteur. Pour iOS, nous ne traitons pas avec l'API variabilité autant parce que vous voyez 95% adoption par les utilisateurs dès le premier jour de leur nouveau déploiement du système d'exploitation. Donc vous ne vous inquiétez pas vraiment de compatibilité ascendante. Les personnes qui ont ce problème de compatibilité ascendante sont tellement dans la minorité que ça ne vaut pas les cibler. Vous ne recevez pas le ROI [retour sur investissement] sur elle. "
Qu'en est-il Microsoft?
"Pour l'instant, Microsoft est le troisième joueur dans le jeu. Chaque année, et la moitié de Microsoft fait une réinitialisation complète sur son environnement. D'abord, ils avaient 10 ont été OS de presse sur les mobiles que Pocket PC puis Windows Mobile. Mais Windows 8, 8.1 et ainsi que le bureau. Windows Phone 8 eu Windows RT. Il courait leur exécution encapsulé pour le bureau et ils ont eu la couverture de l'API d'environ 60% de bureau sur mobile. Il était une start-sur complète.
Mais nous avons entendu la demande "écrire une fois" avant. Avec Windows 10, ils ont officiellement un système d'exploitation sur Xbox, sur des tablettes, des ordinateurs de bureau et maintenant des téléphones. Nous verrons.
"Ils sont allés à partir de Windows Mobile pour Windows 8 / 8.1, et maintenant ils sauter à Windows 10. Du point de vue d'un transporteur, chacun est une réécriture complète et un cadre flambant neuf. Il est comme la commutation des systèmes d'exploitation à chaque fois. A quelques mois, ils ont annoncé une plate-forme universelle de Windows (le cadre UWP) qui est censé fixer les choses de sorte que vous allez écrire une fois et ça va marcher partout. Mais nous avons entendu la demande "écrire une fois" avant. Avec Windows 10 ils ont officiellement un système d'exploitation sur Xbox, sur des tablettes, des ordinateurs de bureau et maintenant les téléphones. Nous verrons. "
Dans quelle mesure les téléphones Windows jouent un rôle dans la planification de votre entreprise?
"Du point de vue de support, nous ne voulons pas seulement deux joueurs. Nous voulons beaucoup de joueurs. Nous voulons un écosystème très riche. Sinon, il devient un environnement très caustique où tout le monde va dans un sens. Nous essayons de niveler le terrain de jeu et de normaliser la façon dont les choses sont faites. "
Android Developer Bulletin
Conclure
Avez-vous des dernières pensées?
"Lorsque vous choisissez un support, vous voulez l'expérience avec ce transporteur soit uniforme à travers de multiples dispositifs. Vous voulez que vos contacts pour fonctionner sur Windows, Apple, Android, Brew, Symbian, Firefox, Tizen, et tous les autres téléphones. Si vous obtenez un nouveau téléphone, vous voulez être en mesure d'accéder à votre compte de la même manière et de composer des numéros de téléphone de la même façon. Vous voulez messagerie vocale à travailler de la même façon et à la même qualité d'appel. Le but d'un transporteur est de fournir cette expérience transparente pour le consommateur. La réalisation de cet est un combat. Il est un effort énorme ".
Que pensez-vous?
Etes-vous surpris par les réponses de ces deux initiés de l'industrie? Pensez-vous que les transporteurs sont interférer, ont-ils trop de pouvoir? Qu'en est-il la fragmentation? S'il vous plaît laissez-nous savoir dans la section commentaire ci-dessous.