Créer une Application Mobile: Quelle Technologie Utiliser?

par Philippe Bérubé ― 30 avr. 2018

Ce n’est un scoop pour personne : il n’existe pas de «meilleure» technologie dans l’univers du développement, surtout pas en ce qui à trait aux applications mobiles. Exit donc la pensée magique, on ne peut pas toujours prendre la même recette et l’appliquer à toutes les situations.

Maintenant qu’on est d’accord, comment est-ce que vous pouvez faire pour choisir la meilleure technologie pour votre projet, dans votre contexte et selon vos contraintes?

Voilà la question à laquelle cet article tente de répondre, en se penchant sur les «pour» et les «contre» de chaque technologie actuelle.

Avec cette approche, vous serez en mesure d’identifier la technique appropriée en fonction de la situation dans laquelle vous vous trouvez.




iOS Natif & Android Natif

Utiliser XCode ou Android Studio est toujours intéressant. Après tout, c'est le "nec plus ultra" du développement mobile. Vous serez toujours les premiers à avoir accès aux nouvelles fonctionnalités et le support sera d’une qualité et d’une efficacité hors pair. Ça implique aussi que vous aurez deux codebase complètement différentes à gérer lors du développement d’une application mobile.

Performance

Un framework qui donne accès à toute la puissance de développement disponible est un point non négligeable. Si vous cherchez de la performance, c’est ici que vous la trouverez.

Une suite de développement solide

Quand une nouvelle fonctionnalité est disponible, vous y aurez accès automatiquement. Pas besoin d’une tierce partie pour la rendre disponible.

Swift et Kotlin sont les nouveaux rois

Comptés parmi les langages les plus populaires en ce moment, ils ont jusqu’à maintenant prouvé leur efficacité en permettant de développer sans avoir à passer par des outils externes. 

Chacun tente de moderniser le développement natif en se rapprochant le plus possible de ce que le web offre.

Différents langages

Pour iOS, vous aurez besoin de développeur Swift/ObjC tandis que pour Android, il s’agira de développeur Kotlin/Java. Trouver la perle rare qui connaît les deux est difficile, mais, si vous la trouvez, fantastique! Ou vous pouvez toujours faire affaires avec un studio de développement comme nous... 🙄

Coûts de développement et de maintenance élevés

Puisqu’il faut coder 2 fois et faire la maintenance des 2 “Codebase”, ces 2 catégories de coûts s’en voient directement affectées. 


 Xamarin

L’idée derrière Xamarin c'est d’offrir une expérience native sur Android et iOS en bâtissant l’application en .NET

NET pour les deux plateformes

.NET est un framework utilisé depuis déjà bien longtemps. Plusieurs ont travaillé avec cette technologie à un moment ou un autre, et la majorité devraient être à l’aise avec la techno.

Xamarin fait maintenant partie intégrale de Visual Studio

Suite à l’acquisition de Xamarin par Microsoft, celui-ci est maintenant entièrement intégré dans la suite Visual Studio. Qu’est-ce que ça veut dire? Que vous avez dorénavant accès à plusieurs plug-ins et outils qui rendent votre vie de développeur drôlement plus facile !

Vous pouvez partager votre code de “Logique d’entreprise” entre les 2 plateformes

Avoir la capacité de partager la codebase liée à votre “logique d’entreprise” à une valeur inestimable. Après tout, qui n'aime pas sauver du temps?

Xamarin est bien documenté

La plupart des ressources ou techniques dont vous aurez besoin lors du développement d’une nouvelle application sont présentées sous forme d’exemples sur le site de Xamarin. Ceci facilite grandement la tâche de développer une application hybride.

Xamarin.Forms

Forms est une façon simple de développer une application avec un niveau de complexité restreint, et ce, une seule fois. En résumé, ça permet de développer des prototypes sur les deux plateformes de façon efficace.

Le code spécifique à une plateforme en particulier doit être écrit 2 fois

Vous devrez créer des fichiers «interface» pour chaque plateforme, sauf si vous utilisez Xamarin.Forms.

N.B. Cela peut aussi s’avérer vrai lorsque vous utilisez des fonctionnalités spécifiques à une plateforme. 

Le support des nouvelles fonctionnalités prend du temps

Cette contrainte se ressent surtout lorsqu’une nouvelle version d’iOS ou Android est lancée au grand public. Dans ce cas, soyez certain que Xamarin supportera celle-ci dans les plus brefs délais, mais toutes les fonctionnalités ne seront pas offertes lors de la sortie officielle. 

Développer des interfaces avec Xamarin Designer peut s'avérer complexe

Avoir à développer une interface en Xamarin Designer au lieu de sa version native (XCode) est d’une complexité douloureuse. Plusieurs fonctionnalités se cachent derrière des décisions UX très complexes, ce qui rend certaines tâches beaucoup plus ardues qu’elles ne devraient l’être.

Xamarin.Forms est limité

Malgré son efficacité, Xamarin.Forms n'est pas nécessairement ce qu'il y a de mieux lors de la création d'une application mobile possédant des fonctionnalités qui sortent du commun ou qui sont plus "funky". 


 React Native

React Native permet de bâtir une application avec JavaScript et React. Qu’est-ce que ça veut dire? Que vous allez utiliser CSS pour le style et le JavaScript pour déclarer les composantes. Facile à utiliser pour les développeurs web, un peu moins pour les développeurs de logiciels.

D’une pierre deux coups

L’un des plus gros avantages de toute la liste (si ce n’est pas le plus gros): Pouvoir développer une application d’envergure pour 2 plateformes d’un seul coup. Malgré que cette caractéristique ne soit pas exclusive à React Native, ce dernier est le seul à l’offrir tout en permettant de garantir la pleine puissance de votre application mobile. 

Coûts de maintenance et de développement réduits 

Le coût de développement réduit va de soi vu le temps de développement sauver à coder qu’une seule fois. Pour ce qui est du coût de maintenance réduit, ceci est aussi relié au premier «pour». En enlevant le besoin d’entretenir 2 “codebase” différents, le temps de maintenance est drastiquement réduit. 

Les développeurs web seront à l’aise lors du développement d’une application mobile native (JSX, CSS, etc.)

Utiliser le HTML, le CSS et le JavaScript pour créer un pont entre React et le code natif de votre plateforme est une parfaite introduction au monde du développement natif pour vos développeurs web.

React native, ca reste React

En somme, les développeurs React n’ont pas besoin d’en savoir plus avant de pouvoir commencer à développer une application native. Le fait que React soit très populaire en soi démontre l’intérêt que les développeurs lui portent.

La transition est simple pour les développeurs

Les développeurs de logiciel se retrouveront avec la même structure View/Controller que s’ils travaillaient en mode natif.

Pas besoin de recompiler à chaque fois qu’on veut tester un changement

Voici l’Avantage avec un grand «A». L’itération lors de votre processus de développement ne pourrait être plus simple. Voir votre code prendre forme en temps réel est un atout colossal. Et  React Native est le seul à fournir cette fonctionnalité pour le moment.

Possibilité de se replier vers du natif

Dernièrement, si React ne répond pas à l'appel, il y a moyen de se replier au natif. Ce qui représente une belle bouée de sauvetage. 

Suite d’outils natifs vers une suite d’outils web

Développer du HTML et du CSS pour vos interfaces est considérablement différent des outils de développement Android et iOS. Ça pourrait s’avérer problématique pour vos développeurs logiciels.

Documentation limitée

React Native étant relativement nouveau, il est possible que vous n’ayez pas de support pour certains problèmes qui se présentent à vous.


Cordova

Un plaisir pour les développeurs web, Cordova est le framework facile à utiliser qui permet de développer une application iOS et Android, et ce, sans avoir à acquérir de nouvelles connaissances techniques. Malgré certaines lacunes qui peuvent s'avérer limitantes lors du développement d’une application mobile de qualité supérieure, la vitesse et la facilité d’utilisation que Cordova prodigue permet de produire des prototypes ou des applications simples sans se casser la tête.

Développer une fois pour les deux plateformes

Tout comme React Native, Cordova à la merveilleuse qualité de demander qu’un seul Codebase qui permet de générer l’application mobile pour iOS et Android.  

Coûts de maintenance et de développement réduits 

Temps de développement/2 = Coûts de développement/2

Parfait pour des apps plus petites et du prototypage

Vous avez un site web et vous aimeriez le transformer en app? Cordova est votre meilleure option.

Simplicité

Apprendre du HTML et CSS est très facile. Comme la plupart des développeurs ont déjà développé un site web, il n’y a qu’un pas à franchir pour développer une app avec Cordova.

Moins efficace/performant 

Lorsque vos applications nécessitent des animations plus complexes, une expérience native plus poussée ou plus de puissance en général, Cordova ne tiendra généralement pas la route. 

La logique derrière tout ça: 
Les applications développées avec Cordova sont d'emblée hybrides, ce qui veut dire qu’elles fonctionnent avec une «WebView». Le web n’a pas été développé pour utiliser la pleine capacité de vos téléphones ou du moins, pas dans la même capacité qu’une application native.

Difficile d’utiliser des librairies natives

Vous aurez à travailler avec des plug-ins ou développer votre propre librairie lorsque vous souhaiterez intégrer toutes les belles fonctionnalités qu’une application native peut offrir. D'un autre côté, ça vous permet de vous replier sur le natif à tout moment ce qui représente un avantage en soi. 


Conclusion

Comme vous l’aurez constaté, il n’y a pas de solution parfaite. Il vous faudra trouver la bonne solution pour vous, selon les requis du projet, l’équipe de développement et tous les paramètres plus ou moins complexes qui font que chaque situation est unique. L'important est de se souvenir que les technologies sont comme les composantes d'un coffre à outil et que, comme pour toute tâche, il y a un outil approprié pour compléter celle-ci. 

On espère que ce court guide saura simplifier votre processus de sélection et vous aider à gagner en efficacité. Soyez bien à l’aise de nous poser vos questions via le chat, il nous fera plaisir d’en discuter avec vous.

On attend vos questions!

More Article
14 fév. 2018
test
24 jan. 2018
Découvrez comment toucher votre cible avec des vidéos personnalisées simple d'utilisation.