Le déploiement continu pour le développement d'applications mobiles

Daniel KnottDaniel Knott
Temps de lecture: minutes

Quel type de déploiement est le mieux adapté à vos activités ?

L'intégration continue et la livraison continue sont devenus ces dernières années des processus standards pour le développement d’applications web. Il est à présent possible de déployer des mises à jour produit et autres correctifs en production plusieurs fois par jour. À l'aide d'outils de déploiement et d'une solide infrastructure, cette tâche est devenue de plus en plus rapide et fiable. Mais est-ce également le cas pour les applications mobiles natives ? Est-il possible de lancer une nouvelle application mobile dans les délais compte tenu du processus de soumission imposé par certains app stores ?

La réponse à ces deux questions est oui. Je vais vous décrire dans cet article quelles sont les options possibles pour les applications mobiles natives.

Investissez dans une infrastructure mobile

L'intégration continue et la livraison continue ne sont pas gratuites – que l'on parle d'applications Web ou d'applications mobiles natives. Les entreprises doivent investir à la fois du temps et de l'argent dans leur infrastructure pour pouvoir livrer à la demande une nouvelle version d'une application mobile native. Compte tenu des logiciels et outils disponibles sur le marché, l'opération est assez facile.

Par exemple, des logiciels open source tel que Jenkins (en tant que système d'intégration continue) et fastlane (comme logiciel de publication clé en main) peuvent constituer une base simple et robuste pour votre infrastructure. À partir de là, vous pouvez facilement créer un canal de distribution d'applications mobiles via des services tels que Testflight, AppCenter ou Firebase pour tester des appareils lors des phases de développement et de test.

Options de déploiement des app stores

Une fois l'infrastructure en place, il est vital pour l'équipe de développement de l'application mobile native de bien comprendre les différences liées au processus de déploiement pour l'App Store d'Apple et le Google Play Store, car il y en a plusieurs.

La principale différence à noter est la notion d’évaluation de l'application. Alors que chaque application de l'App Store d'Apple doit être approuvée par l'équipe App Review, les apps du Google Play Store peuvent être mises en ligne immédiatement et remplacer une app déjà en production en quelques heures.

Vient ensuite la manière dont les applications peuvent être déployées auprès de vrais utilisateurs ou de testeurs. Dans les deux app stores, vous avez la possibilité d'opter pour un déploiement par étapes (iOS, Android). Ce processus permet de déployer la dernière version de l'app de manière progressive à l’ensemble des clients. L'équipe de développement peut alors suivre la progression de la mise à jour et interrompre le déploiement dès qu'un problème apparaît. Si vous souhaitez une autre approche, le Google Play Store propose aussi des options de publication en mode alpha et bêta.

Il est critique de bien comprendre quelles sont les options de test et de déploiement possibles pour sélectionner celle qui conviendra le mieux. Compte tenu des outils de développement et de déploiement mobiles disponibles et des options proposées par chaque app store, deux possibilités s'offrent à vous :

Déploiement continu interne

Dans ce scénario, le déploiement logiciel fonctionne de telle sorte que tous les membres de votre équipe ou votre entreprise reçoivent immédiatement la dernière version d'une app une fois que les tests ont réussi et qu'un nouveau build est fourni par le logiciel de distribution. Selon la taille de l'entreprise, l'application sera utilisée par des centaines ou des milliers de collaborateurs qui pourront et devraient fournir des retours sur son état. Ceci peut se faire sans aucune implication de la part d'Apple ou de Google, ce qui donne le contrôle total à votre équipe de développement.

Déploiement continu externe

Avec cette option, votre équipe peut soit utiliser sa propre infrastructure de distribution mobile, soit partir de celles utilisées par Apple et Google. La première option nécessite que vous invitiez des clients existants sur votre système de distribution pour déployer la nouvelle version de votre app (ce qui peut être assez simple grâce à des outils tels que Testflight, AppCenter ou Firebase) ou que vous fassiez appel à une communauté de crowdtesteurs dont les appareils peuvent être ajoutés à la liste de distribution. C'est la méthode idéale, car vous pouvez distribuer l'app auprès de vrais clients et testeurs sans passer par le processus de soumission de l'App Store.

Pour une application Android, vous pouvez utiliser l'infrastructure de distribution du Google Play Store qui fournit des canaux de test alpha et bêta. Vous pouvez ainsi déployer votre version sur le canal alpha et cibler jusqu'à 100 clients ou testeurs (internes ou externes) grâce à leurs adresses e-mail. Le canal bêta n'impose pas de limite sur le nombre de testeurs et vous laisse le choix de le rendre public ou accessible sur invitation. Les canaux alpha comme bêta peuvent être configurés pour le déploiement continu. Pour les applications iOS, la possibilité de déployer une version alpha ou bêta de vos apps n'existe pas. Apple fournit un système de déploiement progressif qui peut être utilisé pour échelonner la diffusion d'une nouvelle version et suivre les retours des utilisateurs et autres données d’utilisation.

Une fois que le déploiement externe et les retours des clients sont jugés satisfaisants, l'équipe de développement mobile peut soumettre la nouvelle version aux app stores. L'équipe pourra alors décider si elle souhaite la déployer de manière progressive ou non.

Quel type de déploiement est le plus pertinent pour votre organisation ?

Le déploiement continu d'applications mobiles n'est pas gratuit. Il n'existe pas de solution universelle. Un pipeline de CI/CD est propre à chaque entreprise et nécessite de consacrer du temps et de l'argent à le mettre en place.

En premier lieu, vous devez vérifier que vous disposez bien des compétences et du cadre technique nécessaires pour introduire un processus de déploiement continu.

Si l'environnement technique et les connaissances sont au rendez-vous, il vous faut ensuite déterminer avec votre équipe quelle approche parmi celles mentionnées plus haut vous conviendrait le mieux.

Pour trouver la bonne méthode de déploiement, assurez-vous de pouvoir répondre à certaines des questions suivantes :

  1. Avez-vous les compétences requises dans votre entreprise pour mettre en place un pipeline de déploiement ?
  2. Disposez-vous d'une infrastructure de déploiement que vous pouvez réutiliser ?
  3. Avez-vous la possibilité de connecter vos systèmes internes à des outils tiers ?
  4. Auprès de qui voulez-vous déployer les versions alpha et bêta ?

Ressources supplémentaires que vous apprécierez :