Créer une Application Mobile: Quelle Technologie Utiliser?

par Philippe Bérubé ― 30 avr. 2018

Dans un monde où l’application mobile prend de plus en plus de place et que tu te trouves à être un développeur mobile, tu dois être à l’affut de quelles technologies utiliser selon la situation qui se présente à toi. Ce n’est pas toujours aussi simple que de dire: << On prend la même technique à chaque fois parce que c’est la “meilleure”>>. La vérité, c’est qu’il n’y a pas vraiment de “meilleure” technique dans l’univers du développement, surtout pas en ce qui à trait aux applications mobiles. Quand vous faites face à un projet d’application multiplateforme, beaucoup d’éléments vous feront pencher vers une technologie ou une autre. C’est dans cette optique que cette liste de “pour” et de “contre” a été mise sur pied:
Afin d’identifier la technique appropriée en fonction de la situation dans laquelle on se trouve.

Xamarin

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

Pour:


.NET pour les deux plateformes

.NET est un “framework” qui est utilisé depuis déjà bien longtemps. Plusieurs ont travaillé avec cette technologie à un moment ou un autre et la majorité devraient être à l’aise de travailler avec celle-ci. 

Xamarin fait maintenant partie intégrale de Visual Studio

Suite à l’acquisition de Xamarin par Microsoft, ce premier fut entièrement intégré dans la suite Visual Studio. Qu’est-ce que ça veut dire? Vous avez maintenant 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 formes 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 qu’une seule fois. Ceci permet de développer des prototypes sur les deux plateformes de façon efficace.


Contre :

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

Vous devrez créer des documents “Interface” pour chaque plateforme. (À part 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

Le meilleur exemple est lorsqu’une nouvelle version d’iOS est lancée au grand public. Dans ce cas, soyez certain que Xamarin supportera celle-ci dans les plus brefs délais. Cependant, ce ne sera peut-être pas toutes les fonctionnalités qui vous seront 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.  


React Native

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

Pour :

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 sommes, les développeurs React n’ont pas besoin d’en savoir plus avant de pouvoir commencer à développer une application native. React étant très populaire en soi démontre l’intérêt que les développeurs lui porte.

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 “A” majuscule.) 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 incommensurable. Non seulement ça, mais React Native est le seul à fournir cette fonctionnalité pour le moment.

Contre :

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

De commencer à développer du HTML et du CSS pour vos interfaces est considérablement différent à l’utilisation des outils de développement Androïd 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.


iOS Natif et Android Natif

Utiliser XCode ou Android Studio est toujours intéressant. Tu seras toujours le premier à avoir accès aux nouvelles fonctionnalités et le support sera d’une qualité/efficacité hors pair. Ça implique aussi que vous aurez 2 “codebase” complètement différente à gérer lors du développement d’une application mobile.

Pour :

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é à permettre de développer sans avoir à faire affaire avec des outils externes. 

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

Performance

Avoir accès à 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.

Contre :

Écrire le code deux fois n’est jamais plaisant

D’avoir à exécuter les mêmes tâches deux fois n’est jamais palpitant. Cependant, c’est ce que ce choix technologique implique.

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 sait faire les deux est difficile mais si ça arrive, fantastique.


Cordova

Un plaisir pour les développeurs web, Cordova est le framework facile d’usage qui permet le développement d’une application qui fonctionne sur iOS et Android et ce, sans avoir à acquérir de nouvelles connaissances techniques. Malgré certaines lacunes qui peuvent s'avérer dérangeantes 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 prototype ou des applications simples sans se casser la tête.

Pour :

Parfait pour des apps plus petites et du prototypage

Vous avez un site web que vous aimeriez avoir comme une app? Cordova est votre meilleure option.

Simplicité

Apprendre du HTML et CSS est très facile. Les chances sont qu’un de vos développeurs ait déjà développé un site web sont élevées, ce qui veut dire qu’ils peuvent probablement développer une app avec Cordova.

Contre :

Moins efficace/performant pour de grosses applications

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 pas la route. 

La logique derrière tout ça: 
Les applications développées avec Cordova sont d'emblée hybrides → ces applications marchent avec une “WebView” →  le web n’a pas été développé pour utiliser la pleine capacité de vos téléphones (du moins, pas dans la même capacité qu’une application native).


Difficile d’utiliser des librairies natives

Vous aurez à travailler avec des “plugins” ou développer votre propre librairie lorsque vous souhaiterez faire l’utilisation de toutes les belles fonctionnalités qu’une application native permet.

Conclusion

Tel que mentionné ultérieurement, il n’y a pas de solution parfaite. Il s’agit de trouver la bonne et cela peut dépendre soit de l’équipe qui est à votre disposition ou du type de projet que vous devez exécuter. Cependant, on espère que l’information divulgué aujourd’hui saura simplifier votre processus de sélection et vous aider à gagner en efficacité. Sentez-vous à l’aise de nous poser vos question via le chat, il nous fera plaisir d’y répondre. 





More Article
10 mai 2018
Une technique de management innovant en entreprise expliquée.
14 fév. 2018
test