Vous avez envie de développer des applications mobiles et vous ne savez pas encore quelle technologie choisir ? Vous hésitez entre Android et iOS ou entre Java et Swift ? Cet article est pour vous ! Pour bien comprendre les spécificités de ces technologies, la Wild Code School Toulouse est allée interviewer en exclusivité deux des meilleurs développeurs mobiles seniors toulousains : Jean-Jacques Wacksman et Maxime Fudym (Waxym).
Laquelle de ces deux plateformes vous semble la plus pédagogique ?
Jean-Jacques : Ça dépend du background de la personne. Si tu as déjà fait du java ou du .net je pense que c'est plus simple de passer sur Android car le développeur retrouve des concepts communs, voire le langage. En revanche, pour un débutant qui n'a jamais codé ou dans d’autres langages, d’autres plateformes (serveur, php…), ça semble plus simple de débuter sur iOS. Mais au fond, quand on démarre de zéro, la durée et la difficulté d'apprentissage reste plus ou moins la même sur l'une ou l'autre de ces plateformes.
Maxime : J'ajouterai qu'Android est très bien documenté donc à mon sens c'est top pour démarrer dans le code. Je ne crois pas qu'iOS soit aussi simple d'accès. Sur Android, il y a une hétérogénéité des « devices » qui peut surprendre un débutant mais qui est au final très bien gérée par la plateforme.
Java versus Swift. Lequel de ces langages de programmation vous semble le plus à la portée d'un débutant ?
Maxime : Swift est plus léger en terme de lecture et d'écriture.
Jean-Jacques : Android est un langage qui évolue moins rapidement donc plus stable. Il n'y a pas si longtemps Swift était un nouveau langage de programmation complètement en chantier. Ça obligeait le développeur à s'adapter continuellement à des changements du langage de base. C'était très déconcertant, d’autant que Xcode ne vous laisse (presque) pas le choix. Aujourd'hui Swift est à peu près aussi stable que Java. J'ai d'ailleurs remarqué dernièrement que pour quelqu'un qui n'a jamais fait de développement, Swift est aujourd'hui plus apprécié que Java. Mais pour moi c'est pareil. J'ai l'impression qu'un débutant arriverait à développer une appli d'une même qualité peu importe le langage choisi.
Ces langages de programmation sont-ils bien documentés ?
Maxime : Sur Android, l'apprentissage est très guidé avec de très bons tutoriels en ligne. Mais pas sûr que ça soit le cas sur iOS aussi.
Jean-Jacques : Mais si ! La documentation officielle est là. On peut même télécharger des projets de démo pour apprendre à coder.
Les communautés Java/Android et Swift/iOS sont-elles aussi soudées l'une que l'autre ?
Maxime : Ça bouge des deux côtés…
Jean-Jacques : Il y a quand même plus d'évènements sur Android…
Maxime : C'est vrai que les développeurs Android sont quand même plus actifs (conférences, meetup, etc.). Grâce au faible coût d'entrée, la communauté Android s'est agrandie rapidement et il me semble qu'il y a aujourd'hui plus de développeurs Android qu'iOS…
Jean-Jacques : C'est vrai qu'au début, iOS était plus populaire. Les smartphones Apple étaient les devices préférés mais petit à petit Android a pris de l'avance. Mais moi j'ai l'impression qu'il y a aujourd'hui autant de développeurs Android qu'iOS.
Pour un développeur, est-il plus facile d'aller d'Android vers iOS ou inversement ?
Jean-Jacques : Android vers iOS ! Sans hésitation! Un développeur va être forcé à avoir un code plus rigoureux sur Android. Le design et l'architecture imposent des contraintes de code plus « propres » sur cette plateforme que sur iOS, principale en termes de couplages forts, du fait notamment du cycle de vie des Activity. Un développeur iOS moins structuré (tous ne le sont évidemment pas) aura plus de mal à faire un pas vers Android. De plus, le développeur iOS est moins farfouilleur qu’un développeur Android, du fait d’une plateforme plus cloisonnée et limitante. Le développeur Android peut être aventurier dans l'âme. On pourrait faire le parallèle entre l’utilisateur bidouilleur linux et l’utilisateur plus rangé Windows.
Maxime : Je suis d'accord mais pas pour les mêmes raisons ! iOS est plus structuré mais très lourd et déconcertant pour un développeur Android qui va plus difficilement s'y retrouver. Mais je rejoins Jean-Jacques ; mieux vaut commencer par Android et passer ensuite à iOS !
Quel est à vos yeux le grand avantage d'Android sur iOS ?
Jean-Jacques : Son langage (Java) qui est gratuit est accessible à tous, car répandu pour d’autres usages (clients lourds, serveurs, web, etc…). Le langage de programmation d'Apple (Swift) est aussi gratuit et open source mais il n'est utilisé aujourd’hui… que par Apple ! Aujourd'hui, n'importe quelle personne qui souhaite développer sous Android peut le faire depuis n'importe quel ordinateur. Ce n'est pas le cas avec iOS où un Mac est indispensable pour coder!.
Et inversement ?
Jean-Jacques : Le plus gros avantage d'iOS sur Android, c'est la maîtrise absolue d'Apple de toute la chaîne, la plateforme de développement, le langage, la fabrication des devices cibles. C'est un vrai confort pour un développeur. Il n'y a jamais de grosse mauvaise surprise sur l'exécution du code selon les différents devices.
Maxime : Deux gros atouts à mes yeux : Interface builder qui est très bien fait et le simulateur iOS qui est largement plus efficace que sur Android (il se lance très vite!).
De quel matériel j'ai besoin pour développer sous Android ? Et à quel prix ?
Maxime : Ça démarre à pas cher. N'importe quel ordinateur de n'importe quelle gamme avec 8 Go de RAM minimum peut permettre de coder. On peut dire qu'à partir de 500€, on peut s'équiper avec un matériel suffisant pour se lancer dans du développement Android.
Et pour iOS ?
Jean-Jacques : Il faut plutôt compter sur un investissement de 1500€ minimum.
Les salaires des développeurs, le temps nécessaire pour développer une application, les langages hybrides etc. => la suite de l'entretien bientôt, restez connectés !
Et pour découvrir et télécharger ENGRAM, la surprenante application de Jean-Jacques et Maxime, c'est par ici : iOS / Android