Votre application mobile ne convient plus à vos besoins et à ceux de vos utilisateurs et vous souhaitez mettre en place un projet de développement pour la rendre plus performante et améliorer l'expérience utilisateur ? Vous hésitez entre une refonte totale ou partielle ? Ou encore sur la technologie à utiliser ? Entre application native, application multi-plateformes et progressive web-app (PWA), il est parfois difficile de s'y retrouver. Dans cet article, nous vous donnons les clefs pour faire évoluer votre application mobile et accélérer son développement.
Le démarrage d'une application est un moment clef de son cycle de vie. Vous allez devoir définir l'architecture de votre projet que vous garderez probablement durant toute la durée de vie de votre application puisque c'est le moment où vous allez définir l'architecture de votre projet et les technologies que vous allez utiliser pour coder votre application. Ces premiers choix sont donc cruciaux mais il est très souvent difficile, voire impossible, d'anticiper ce que sera votre app dans plusieurs mois et les besoins que vous allez avoir.
Malheureusement, malgré tout le sérieux et l'implication que l'on peut mettre dans le choix des technologies au départ de l'application, il arrive souvent un moment où une entreprise doit faire évoluer la technologie de son app pour différentes raisons business :
Par exemple, Snapchat a récemment communiqué début 2019 sur la refonte totale de son application Android. La raison ? Les utilisateurs Android ont du mal à utiliser l'app car elle s'avère très lente et la qualité des photos est amoindrie par rapport à la qualité de leur appareil photo. La conséquence est que Snapchat a eu une bien moins bonne rétention sur Android que sur iOS et souhaite aujourd'hui résoudre ce problème avec sa refonte.
Lorsqu'une entreprise se lance dans une refonte totale, elle espère une mise à disposition rapide d'une nouvelle application plus fonctionnelle et devenue évolutive. Mais la refonte totale d'une application est un vaste chantier qui s'avère souvent plus compliqué que ce que l'on avait espéré et implique des semaines voire des mois de développement. Pendant ce temps, les utilisateurs ne vont pas avoir accès à des nouvelles fonctionnalités, ce qui peut affecter l'expérience client, notamment sur un marché où les fonctionnalités évoluent vite.
Faire évoluer son application de manière progressive est souvent un bon compromis à la refonte totale. C'est en effet un choix plus pragmatique, qui permet d'effectuer la refonte tout en continuant de développer votre application mobile et d'offrir aux utilisateurs des nouvelles fonctionnalités. Elle offre donc 3 avantages principaux :
La Progressive Web App est un site web développé pour s'adapter aux navigateurs mobiles. La PWA présente les avantages d'être développée avec les outils du web, principalement HTLM5/CSS et Javascript, tout en s'adaptant au format du mobile.
Une PWA ne remplacera pas votre app classique puisqu'elle ne se trouvera pas sur les stores et sera uniquement accessible via un navigateur web. En revanche, elle présente l'avantage de pouvoir faire de l'acquisition rapidement puisqu'elle n'oblige pas un téléchargement sur les stores qui nécessite une mémoire pas toujours disponible sur les smartphones des utilisateurs. Si votre besoin business est de tester vite de nouvelles fonctionnalités et d'atteindre rapidement un certains nombres d'utilisateurs, alors la PWA peut être un choix pragmatique intéressant.
Pour les développeurs habitués à ces langages de programmation, cela peut être un avantage indéniable de confort et de rapidité, et cela permet également des coûts de développement moindres. Les récentes avancées technologiques pour la PWA lui permettent d'être ajoutée à l'écran d'accueil comme une app (cependant peu d'utilisateurs le savent), d'être utilisée en offline pour effectuer certaines fonctionnalités et d'appeler certaines fonctionnalités du téléphone (GPS, Notifications, etc.). Avec ces récentes avancées, la PWA a le vent en poupe, notamment car elle présente aussi l'avantage de ne pas à avoir à passer par les stores classiques (Google Play Store, App Store, etc.).
En revanche, si vous ne souhaitez pas quelque chose de simple et souhaitez au contraire faire évoluer votre application pour lui permettre d'aller plus loin et d'ajouter des fonctionnalités complexes, la PWA n'est peut-être pas la meilleure option car vous serez probablement limités techniquement. De plus, il ne s'agit pas d'une application à proprement dit puisqu'elle n'est pas sur les stores, ce qui peut être perturbant pour vos utilisateurs s'ils sont habitués à voir votre app sur les stores.
Contrairement à la PWA, l'application native vous permettra de faire absolument tout ce qui est possible. Une application native signifie qu'elle est codée dans les technologies propres des fabricants de smartphones. Les "apps" sont directement téléchargeables depuis les stores en propre des principaux fabricants : Apple, Google (Android) et Windows. Sur un iPhone, qui fonctionne avec iOS, le langage natif sera obj-c ou Swift. Sur un Samsung, un Pixel ou un Huawei, qui fonctionnent tous avec Android, le langage sera Java ou Kotlin.
Vous voyez sûrement venir la complexité, qui est que si vous voulez que votre application soit sur l'App Store et sur Google Play, il faudra coder deux applications différentes, avec deux langages différents. Vous ne serez pas limités dans vos possibilités avec l'application, mais cela sera cependant bien plus coûteux en termes de développement.
Si votre app nécessite une expérience utilisateur maximisée par des fonctionnalités très complexes, impliquant notamment le recours à des fonctionnalités natives du téléphones, alors l'application native fait sens. Par exemple, pour une application comme Pokemon GO qui utilise l'appareil photo des utilisateurs pour faire de la réalité augmentée, une application native s'impose.
L'application "cross platform" est très intéressante si vous avez besoin de tester rapidement votre produit tout en ayant une expérience utilisateur (UX) performante. Le principe de l'application cross-platform est d'utiliser un même langage pour coder une base de code commune à des applications à destination des différents stores. Ce partage de code entre les applications iOS et Android est un réel atout de l'application cross-platform car il permet de réduire considérablement le coût du développement et le time-to-market.
De plus, l'application cross-platform permet de conserver un look & feel natif et donc de conserver un très bon niveau d'expérience utilisateur. Si l'app cross-platform ne sera probablement pas aussi rapide qu'une app native, elle pourra en revanche accéder à toutes les fonctionnalités natives du téléphone.
L'application cross-platform est donc un choix très pragmatique pour le développement d'une application mobile.
Migrez votre app native vers du cross-platform, découvrez notre offre.
React Native est un framework qui permet de coder des applications cross-platform. Il vous permettra de faire évoluer rapidement votre application et de tester rapidement un premier proof of concept car il peut s'intégrer directement dans votre code d'application existant. Ainsi, vous pouvez commencer à coder certaines fonctionnalités en React Native tout en conservant l'usage normal de votre app.
Développé par Facebook, il permet de créer des apps iOS et Android à partir de code écrit JavaScript, de manière accélérée, simple et multi-plateforme. JavaScript étant un langage web, il permet également aux développeurs Web de rapidement se familiariser avec le développement d'une app mobile. Il possède trois avantages principaux.
L'avantage de React Native est d'être aussi souple que les applications web using components. The components allow you to get rid of the constraints of containers and can be reused endlessly, regardless of changes in content.
The other major advantage is to be able to use the native components of the iOS and Android libraries. In addition to the native SDKs, you can use any component that was created by the React Native or JS community. Thus, there is no need to reinvent the wheel, you can directly draw on the multitude of designs already available in these libraries and which give your application a native look & feel, which is very important for the user experience. The components therefore make the code more reusable, testable and maintainable.
The benefit of React Native code is also to be multi-platform. That is to say, the same code base can be used to develop an Android application and an iOS application, even though the native languages of these two supports are very different. The time savings are therefore considerable since we do not start from scratch each time to code the same functionality on a new platform.
In addition, The code used by React Native is Javascript, which makes it possible to involve teams of web developers on a mobile development project without difficulty.
React Native is compatible with native Android languages and Of iOS. That is, some features can be coded in React Native (which use Javascript) and others in Swift or Kotlin, the languages of Android and iOS.
This is a very interesting point because it allows Partial redesign of your application with React Native and to avoid the risks of a total overhaul mentioned above. For example, Instagram started testing React Native in 2016 by coding Push Notifications in this framework, and then they recoded numerous others. features with React Native.
React Native therefore makes it possible to divide development times. The Framework thus makes it possible to reduce the time-to-market and to have a product available more quickly on the market in France. Finally, React Native makes it possible to maintain a look & feel similar to the native and to keep a field of possibilities totally open in terms of functionalities. Its future prospects are well established..