Android vs iOS: quelle plate-forme est le mieux pour les développeurs
Makradar De La Technologie / / December 19, 2019
Android vs iOS. thème éternel pour les batailles en ligne, qui a déjà décemment tous podnadoest. Ne pas se précipiter pour passer le texte de l'article et de passer immédiatement à l'effusion de son avis que correcte dans les commentaires. Aujourd'hui, nous allons reparler de quel système est meilleur, mais d'une manière différente.
Les développeurs - ceux qui créent un élément clé de toute plate-forme, à savoir les applications. Il est la qualité des outils de développement, il fournit une plate-forme dépend du résultat final. Donc, dans ce système vaut mieux écrire? Répondez à cette question un développeur d'applications expérimenté, qui devait être éclairé dans l'App Store et sur Google Play.
Le choix de la plate-forme - un problème fondamental pour tout nouveau projet. Android ou iOS? Étant donné les nouvelles récentes que Android a réussi capturé 80% du marché, le choix devient encore plus difficile. Peu importe ce que les gestionnaires et les autres pas trop bien informés sur les aspects techniques des gens question penser. Une autre chose - les développeurs.
Quelle est leur opinion? L'avantage de ce ou cette plate-forme est directement dépendante de sa capacité à améliorer leur vie.
Et par « ils », je veux dire « notre ». En plus des activités à TechCrunch, de l'auteur que je développe dans HappyFunCorp. De plus, pas si longtemps, j'ai créé un duo opensorsnyh applications à travers son projet animal de compagnie. Ce sont ces applications que j'utilise à titre de comparaison.
Pour mémoire: J'avais déjà d'écrire quelques applications Android et iOS, à la fois pour un usage personnel et pour le travail. En particulier, j'ai écrit client mobile pour votre agrégateur de nouvelles ScanvineQui recueille des histoires inhabituelles populaires de médias sociaux. Le code source de mon application se trouve sur Github (androïde | iOS), Et les applications elles-mêmes sont disponibles dans Google Play et App Store.
Eh bien, la bataille commence.
mercredi
Vous pouvez toujours écrire du code dans un éditeur de texte, et beaucoup le font jusqu'à présent, mais en termes de la performance est plus utile d'utiliser l'IDE (Integrated Development Environment - IDE).
Dans le cas d'Apple, nous avons Xcode, et le travail dans cet environnement - le plaisir. Il est flexible, rapide, puissant et capable d'aider, sans être trop intrusif. Et elle va mieux, malgré les mesures difficiles et paranoïaques prises par Apple pour garder le contrôle total sur les applications iOS et périphériques. Le débogueur fonctionne bien, et la simulation - rapide et réactif.
Qu'en est-il Android? Oh, Android. À l'heure actuelle, l'environnement de développement réel dans c'est l'Eclipse, une poignée d'Android plug-ins personnalisés, et vulgairement mauvais. Lent, maladroit, illogique, souvent franchement incompréhensible, mal conçu, trop complexe - un vrai gâchis. Son débogueur est si gênant que la plupart du temps que je passe à bricoler avec des bûches, tandis qu'avec Xcode en ma possession un véritable outil insectes chasseur. Ne pas oublier l'émulateur Android, qui prend d'abord quelques minutes à télécharger, puis il ne pouvait pas se connecter à la BAD.
Pour être juste de dire que Google est au courant de ce problème et ils travaillent sur une nouvelle Android studio IDE:
À l'heure actuelle, Android Studio est disponible en avant-première. Certaines fonctions ne peuvent pas mettre en place, ou ne sont pas mises en œuvre, ce qui pourrait provoquer des erreurs. Si l'utilisation du produit non fini est la cause de votre inconfort, vous pouvez télécharger et continuer à utiliser le Bundle ADT (plug-in Eclipse avec ADT).
Ravi de voir qu'ils travaillent sur le problème, mais toujours surprenant - après 4 ans et demi après l'achat de mon premier Android comme désordre est toujours la limite de la perfection, ce qui a pu réaliser un environnement de développement Android.
Ici bat iOS, sans condition.
Configuration
Sous le vernis de Xcode et Objective-C sont des horreurs cachées de Lovecraft de l'époque de la programmation soixante-dix. Je plaisante, je plaisante... mais quand même. Les macros et les fichiers en-tête, des projets, des objectifs, système et configuration d'assemblage et terrifiantes, liste effrayante des paramètres d'assemblage. et plus découvertes incroyables dans le style de « Oh, votre code tiers ne supporte pas l'ARC? Il suffit d'ajouter le drapeau arc-objc ». Juste? Non!
Dans Android, vous disposez d'un fichier manifeste, et Eclipse sont généralement complètement reconstruit l'application à chaque fois que vous gardez un fichier. Je voudrais plus de clarté quand vous, par exemple, vous recevez un message d'erreur en raison du fait que configurer correctement la règle, mais il est un défaut mineur. Configuration de l'application Android est simple et élégante.
Ici bat Android.
conception d'interface
Il semblerait que Apple est sans aucun doute sortir victorieux. Avec leur concepteur, vous pouvez facilement et rapidement construire une interface simple et agréable à regarder. Le problème est que plus je travaille avec le concepteur, moins je l'ai aimé. Ceci est un autre moment où vous ouvrez la complexité de configuration - outil est idéal pour créer des choses simples, mais avec le développement de choses simples d'application deviennent soudainement compliquées, et je ne aime pas vraiment ces multiécran Storyboards, dont Apple a ajouté à propos de il y a un an.
Sur Android, la théorie est fourni des outils de visualisation comparables, mais dans la pratique que vous écrivez fichiers XMLContenant des instructions dessin à un certain conduit chance à un affichage correct de l'application sur toute la variété d'écrans de formats d'appareils Android. Apple se déplace de la même manière, et leur Mise en page automatique clairement aiguisé les variations de l'expansion future des écrans sur les appareils iOS.
Dans le même temps, Android donne aux développeurs jeux d'icônesAlors que les développeurs iOS sont contraints de se tourner vers services tiersOu dessiner vos propres icônes.
Dans ce tour, le gagnant de choisir plus difficile, mais je vais donner la préférence iOS pour deux raisons. Tout d'abord, il est encore beaucoup plus facile - seulement 3 taille de l'écran (y compris l'iPad) et 2 format de format. Android diversité à cet égard ajoute à la complexité. Le deuxième point est l'appel de défaut d'éléments visuels (menus, messages contextuels, etc.). Dans iOS tout semble beaucoup plus attrayant.
Ici bat iOS.
langue
applications Android sont écrites en Java, iOS - sur Objective-C. Il y a des exceptions comme la XamarinMais dans la plupart des cas, une telle division est valide.
J'ai appris à écrire en Java, et tout d'abord pas particulièrement pensé à Objective-C, en grande partie en raison de son encombrement.
Une chaîne comme:
Chaîne s2 = s1.replace ( "abc", "xyz");
Se tourne vers lui dans:
NSString * s2 = [s1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"];
Mais dans le processus de découvrir la langue que j'ai vraiment aimé. Il est meilleur et plus propre que Java.
Dans ce cas aussi, il y a des avantages Java. Par exemple, une des erreurs simples pièges et traces. Ces dernières années, Android a été un autre avantage très important en termes de collecte des déchets, qui est, purification automatique de la mémoire à partir d'objets inutiles, mais maintenant iOS connaît la même chose, et est en fait un avantage réduits à néant. Compte tenu du fait que la dernière victoire va à iOS ici.
Ici bat iOS.
API
Dans Android et iOS ont une énorme bibliothèque de logiciels disponibles pour les développeurs, et en général, ils sont assez similaires: API fonctionnement des fonctions téléphoniques et des communications, l'API d'accès au réseau, l'arsenal de téléspectateurs, y compris WebView puissant - pratiquement un clone de la pleine navigateur.
La plupart des travaux se fait avec les contrôleurs et général iOS ViewController est l'équivalent de l'activité Android.
Ce qui n'ont pas vraiment Android, car il est un analogue plein cadre de base de données. Dans l'ensemble, le système est plus propre et mieux conçu. Par exemple, il suffit de comparer cesdeux classe dans iOS, qui effectuent la plupart des travaux dans l'application, avec cestroiséquivalent classes dans Android. En fin de compte, je préfère de beaucoup travailler avec iOS CollectionViewControllerQue avec Android ListAdapter.
Une autre mesure importante: le nombre de lignes de code. Ma version de l'application pour les deux plates-formes sont pratiquement identiques dans les caractéristiques et fonctions, mais dans iOS pour les mettre en œuvre Il a pris mes 1596 lignes de code, y compris les fichiers d'en-tête, et pour créer la version Android avec les mêmes fonctions requises 2109 lignes. La différence est de 32%.
Ici bat iOS.
Internet
Aujourd'hui, la grande majorité des applications sont plus guides sur Internet, plutôt que des programmes autonomes. Ce point est très important, et il doit être considéré séparément. Dans l'arsenal des deux systèmes ont un certain nombre d'outils et API pour la mise en œuvre de la coopération avec le Réseau. Aussi les deux plates-formes à mettre en œuvre pratiquement à part entière navigateur, qui peut être intégré dans l'application que vous voulez et où que vous alliez.
Les connexions doivent fonctionner en arrière-plan et ne pas interférer avec l'application elle-même. Pour mettre en œuvre multithreading dans Android utilisé AsyncTask. Il fonctionne très bien et permet facilement déterminerQue l'utilisateur soit sur le web en ce moment. iOS offre également des fonctionnalités similaires, mais ils sont mis en œuvre à un niveau relativement bas et ne répondent pas aux besoins des développeurs.
Cependant, il existe de nombreuses bibliothèques tierces, open source, et ils rendent la vie beaucoup plus facile. Je AFNetworking, et il fonctionne aussi bien qu'il est mentionné dans la publicité.
Ici bat la valeur par défaut Android et iOS à l'aide des bibliothèques tierces.
partage
Avec quelle facilité vous partagez l'une de l'application particulière dans Facebook, Twitter, Evernote et d'autres services? Il semble que ce sera le premier tour dans lequel Android gagnera knock-out de 100%: il dispose d'un puissant système d'interaction entre les applications appelées Intentions, et en général, Android est beaucoup plus fidèle à la demande et la transmission de données entre applications.
En général, Apple a pris concurrent de manière significative dans les possibilités de partagerUne. Vous ne pouvez pas prendre ma parole, vérifier le code de la fonction « Partager l'article » dans Scanvine sur androïde et iOS. La seule raison pour laquelle le code iOS plus - la présence dans ce d'un suivi plus souple de Google Analytics, plutôt que dans l'Android.
Ensuite, dessinez.
fragmentation
Ensuite, je ne dois pas dire grand-chose. Cependant, Google tente d'utiliser stratégie intéressante DéfragmentationAlors que, dans un court laps de temps l'article sera réexaminé.
Ici bat iOS.
publication de la demande
Publication des applications Android est extrêmement simple. Outil Eclipse vous permet de construire rapidement l'application, et dans vos mains ont déjà un fichier apk. Envoyez-le à un courriel, mettre en ligne, ou télécharger sur Google Play, le rendant disponible sur (presque) le monde en une heure. Ensuite, il devient possible de surveiller les statistiques des installations et de crash-rapports jusqu'à une ligne spécifique du code, en raison de laquelle la plante application. Si nécessaire, vous pouvez mettre à jour à déployer instantanément.
Publication dans l'App Store - c'est un cauchemar. Mon ami conseille d'allouer au développement du calendrier au moins un jour sur la guerre avec des certificats et des profils de distribution. Peu importe combien de fois vous l'avez déjà fait, et combien plus il tente de rendre le processus de la prochaine version de Xcode - vous encore de nombreux problèmes. tests d'application devient encore plus d'un problème, sauf si vous utilisez TestFlight. Ajoutez à cela l'iTunes Connect, ce qui ne va pas à toute comparaison avec le Google Play Developer Console.
Ici bat Android, sans conditions.
gagnant
Il devient iOS, d'ailleurs avec une certaine marge. Nous avons les avantages d'Android, mais en général d'écrire une bonne application pour iOS est encore beaucoup plus facile que sous Android. Ajoutez à cela le fait que les utilisateurs iOS plus de solvabilité, et vous obtenez une réponse à la question de savoir quelle plate-forme devrait être une priorité pour une start-up. Probablement, l'écart sera réduit après la sortie d'Android studio, permettant ainsi de résoudre certains problèmes... mais pas tous.
Soit dit en passant, mon téléphone principal - Nexus 4, et je suis très heureux.
(via)