CHICIO CODING

Android Studio vs Xcode vs AppCode : une brève comparaison sur la vitesse de codage

16 jan 2018 – 4 min de lecture

Dans ces posts, je vais comparer la vitesse de codage qu’il est possible d’atteindre avec Android Studio, Xcode, et certains IDE JetBrains en termes de création et de refactoring de code.

Les IDE, Integrated Development Environment, sont les boîtes à outils des développeurs de logiciels. Lorsque j’ai commencé à travailler au groupe lastminute.com, mes connaissances de la plateforme Android étaient très limitées. Mais… lastminute.com group est une société de développement logiciel agile et l’une des techniques que nous utilisons au cours de notre flux de travail de développement est la programmation en binôme : deux développeurs travaillent à la même fonctionnalité sur le même poste de travail.Comme rapporté sur Wikipedia, l’un des principaux avantages de la programmation en binôme est le partage des connaissances :

Les connaissances sont constamment partagées entre les programmeurs en binôme, que ce soit dans l’industrie ou dans une salle de classe, de nombreuses sources suggèrent que les étudiants montrent une plus grande confiance lorsqu’ils programment en binôme, et beaucoup apprennent que ce soit des conseils sur les règles du langage de programmation à la compétence de conception globale. Dans le cas d’un « binôme promiscuous », chaque programmeur communique et travaille avec tous les autres programmeurs de l’équipe au lieu de ne s’associer qu’avec un seul partenaire, ce qui permet de diffuser la connaissance du système à l’ensemble de l’équipe. La programmation en binôme permet aux programmeurs d’examiner le code de leur partenaire et de fournir des commentaires, ce qui est nécessaire pour augmenter leur propre capacité à développer des mécanismes de contrôle pour leurs propres activités d’apprentissage.

C’est pourquoi j’ai commencé à travailler avec mon collègue Francesco Bonfadelli, un développeur senior Android, iOS et Backend. Pendant nos sessions de programmation en binôme, j’ai beaucoup appris sur le développement d’applications mobiles pour la plateforme Android. L’une des choses que j’ai apprises au cours des premiers jours est la différence entre les IDE officiels : Android Studio et Xcode. Après avoir vu la vitesse de codage que Francesco a pu atteindre lors d’une session de codage Android, et combien il est plus lent de faire les mêmes choses dans Xcode pour iOS, j’ai réalisé combien Android Studio est plus avancé avec son ensemble de fonctionnalités de refactoring par rapport à Xcode.
Dans ce billet, j’analyserai brièvement certains IDEs couramment utilisés pour le développement d’applications mobiles en me concentrant sur la vitesse de codage qu’il est possible d’atteindre en les utilisant et je vous expliquerai pourquoi, au moment où j’écris ces lignes, j’ai commencé à préférer la famille d’IDEs JetBrains (pas seulement pour le développement d’applications mobiles :bowtie:).

Xcode

J’ai toujours aimé Xcode. J’ai commencé à l’utiliser il y a 8 ans et il est toujours là avec moi pendant mon travail quotidien. Il s’ouvre en quelques secondes et vous pouvez commencer à coder très rapidement. Mais…. que se passe-t-il lorsque le code de votre application commence à augmenter en termes de complexité et que vous devez effectuer une simple opération de refactoring ? Est-ce qu’il vous aide d’une manière ou d’une autre quand vous avez besoin de créer une nouvelle classe/propriété ? Est-ce que cela vous aide à naviguer dans votre code et à passer rapidement d’une classe à une autre ? Eh bien, pour être honnête, cela ne vous aide pas tant que ça. Même un simple renommage peut devenir une opération pénible, surtout si votre projet comporte des parties mixtes Swift/Objective-C. Tout doit être fait manuellement. Tout doit être fait manuellement. Considérez par exemple cette liste d’opérations mixtes de création/refactoring de code :

  • créer une nouvelle classe
  • l’instancier et la garder comme variable locale
  • ajouter une méthode à la classe précédente
  • ajouter un paramètre à la méthode précédemment créée
  • extraire la variable locale comme propriété du contrôleur dans lequel je l’ai créée

Dans la vidéo suivante, je vais essayer de faire ces opérations dans Xcode. Au moment où j’écris ces lignes, la version de Xcode disponible est la 9.2.

Plus de 2 minutes pour mettre en œuvre toutes les choses de la liste ci-dessus.Vraiment lent, n’est-ce pas ? !?? :fearful:

Android Studio

Avant le groupe lastminute.com, j’avais utilisé Android Studio seulement quelques fois pour quelques applications Android très simples. Puis j’ai commencé à travailler avec Francesco et il m’a fait découvrir la puissance des IDE de JetBrains. Cet IDE vous donne la possibilité de naviguer rapidement dans votre code source, de créer et de modifier des classes, et vous permet d’effectuer de nombreuses autres opérations de refactoring sans quitter le clavier ! En gros, vous pouvez écrire du code et oublier votre souris ! !! :open_mouth:. La liste des raccourcis clavier que vous pouvez utiliser dans votre flux de développement est infinie. Vous pouvez trouver la liste complète ici. Essayons de faire exactement les mêmes opérations que j’ai faites précédemment avec Xcode, et j’ajoute également un renommage de la classe créée à la fin de toute l’opération précédente. Au moment où j’écris ces lignes, la version disponible d’Android Studio est la 3.0.1.

En seulement 50 secondes et j’ai fait tous les trucs (et je n’appuyais pas fort sur le clavier…:stuck_out_tongue_winking_eye:).Comme vous pouvez le constater, Android Studio vous donne la possibilité d’écrire du code à la vitesse de la lumière ! !! :flushed:.

AppCode

Comme vous pouvez l’imaginer, après avoir travaillé quelques heures avec Android Studio, j’ai commencé à me demander s’il y a un IDE qui me permet de configurer le même style d’écriture de code et le même flux de travail. Ici, un autre collègue avec lequel je travaillais, Tommaso Resti, un développeur senior iOS et Android, m’a montré AppCode pour la première fois. C’est un autre IDE de JetBrains pour le développement iOS. Il vous permet d’améliorer votre vitesse de développement en vous permettant d’utiliser certains des outils de refactoring que vous pouvez trouver dans Android Studio. Cependant, ce n’est pas tout à fait la paix et la lumière dans ce cas. Certains des outils de refactoring ne sont pas disponibles pour Swift et vous aurez toujours besoin de Xcode pour travailler sur Xib et Storyboard (l’équipe de JetBrains a développé un plugin pour interface builder, mais celui-ci a été abandonné). Quoi qu’il en soit, si vous commencez à vous habituer au flux de travail d’écriture de code d’Android Studio, vous vous sentirez à l’aise avec AppCode :relaxed:.

Pensées finales

Android Studio et AppCode sont basés sur IntelliJ IDEA, le célèbre IDE Java de JetBrains. Mais ce n’est que la moitié de l’histoire : La famille d’IDE de JetBrains est vraiment grande. Vous pouvez trouver un IDE pour chacun de vos langages préférés :

  • CLion, pour C et C++
  • PhpStorm
  • PyCharm
  • RubyMine pour Ruby
  • GoLand pour GO
  • Rider pour C#

Donc pas de soucis : si vous voulez commencer à améliorer votre vitesse de codage probablement il y a un IDE pour votre langage préféré. Xcode aura toujours une place spéciale dans mon cœur. Je continuerai à l’utiliser dans mon travail quotidien de développeur mobile. Mais… la vitesse de codage que j’ai gagnée avec les IDE de JetBrains ne pouvait pas être ignorée :smiling_imp:. C’est pourquoi j’ai commencé à les préférer :heart:.