Android est un système d’exploitation mobile dirigé par le géant américain Google. Ce système d’exploitation est basé sur le noyau d’un autre système qui s’appelle Linux et est utilisé par des millions d’appareils, notamment les smartphones, les tablettes, les télévisions, etc.

Le développement d’une application mobile Android s’appuie sur deux piliers :

  • Le langage Java ou Kotlin.
  • Le SDK, utile pour avoir un environnement de programmation intégré.

La réalisation de chacun de ces piliers amène à faire collaborer différentes compétences techniques au sein d’une même équipe de développeurs.

Les principales compétences requises au sein d’une équipe-projet

Pour développer une application (Android ou iOS pouriPhone), il faut mettre en combinaison un ensemble de compétences spécifiques. Ces compétences nécessitent des connaissances techniques et du savoir-faire directement liés à la programmation.

Ces compétences, qui n’incluent pas les aptitudes personnelles, peuvent être regroupés en quatre catégories, à savoir :

1. Le design

  • Design d’interface.
  • Ergonomie.
  • Prototypage.
  • Expérience utilisateur.

2. L’architecture

  • Conception.
  • Gestion des différents types d’appareils.
  • Infographie.
  • Sécurité en mobilité.

3. La programmation

  • Applications hybrides.
  • Applications natives (AndroidiOSWindows).
  • Programmation-objet (les langages de type Java).

4. Affaires et gestion

  • Gestion des applications pour le compte des entreprises – mise sur le marché des applications.

En considérant que tous les développeurs ne possèdent pas nécessairement chacune de ces compétences et que les effectifs d’équipes-projets sont généralement réduits, il faut déterminer un partage harmonieux des différentes tâches.

Les phases de conception et de programmation d’une application Android

Quelle que soit la consistance d’un projet, le développementd’une application Android se déroule en général en quatre phases.

1. La phase de conception

La durée de cette phase dépend aussi bien de la complexité des fonctions à mettre en œuvre que de celle des terminaux mobiles à prendre en compte.

Cette phase est généralement budgétisée en fonction de la durée qu’une équipe de développeurs a besoin pour la développer.

2. La phase de programmation

Elle consiste à développer l’interface graphique et les web-services de l’app tout en veillant à ce que les flux d’échanges avec le back-office soient sécurisés.

La principale difficulté que rencontrent généralement les développeurs au cours de cette phase réside sur la capacité à garantir une parfaite connectivité entre l’application mobileet le système d’information de l’entreprise qui la sollicite.

La réalisation de cette phase peut faire intervenir plusieurs développeurs.

3. La phase des tests, des recettes et des corrections.

C’est une étape capitale dont le but est de s’assurer de la qualité de l’application avant que celle-ci ne soit mise sur le marché.

Tout comme les précédentes phases, sa durée dépend aussi bien de la complexité des tâches à réaliser et en partie de :

  • La diversité des scénarios.
  • Des systèmes ciblés pour leurs déploiements.
  • La politique des tests demandés.

Cette phase est systématiquement budgétisée par les agences spécialisées, car elle fait partie intégrante de la réalisation d’un projet mobile.

4. La phase de maintenance

La phase de maintenance n’est en général opérationnelle qu’au terme d’une période de garantie.

Elle a plusieurs fonctions :

  • Assurer l’évolutivité des applications, notamment dans l’ajout de nouvelles fonctionnalités.
  • Assurer la viabilité des solutions développées.
  • Garantir la qualité de service de l’application.

Sa durée est généralement encadrée par des contrats renouvelables et peut s’étendre sur tout le cycle de vie de l’application.

Côté budget, le prix dépend fortement des versions de l’application et de différents autres critères tels que le contenu des services. D’après les tendances du marché Android, il faut prévoir en moyenne 10 à 20% du coût de développement initial.

La politique d’organisation du travail

Dans le développement des applications Android, l’organisation du travail dépend en général de deux facteurs que sont :

  • L’envergure du projet à réaliser.
  • Les compétences techniques disponibles.

Dans la plupart des cas, un seul professionnel est en mesure de couvrir l’ensemble du cahier de charges de la créationd’une app (utilisation des outils, codage, débogage, soutien technique, etc.)

Cependant, tel que nous l’avons indiqué, il peut arriver que selon la complexité d’une situation, des équipes de plus de dix personnes soient constituées. Dans ce cas, la plupart des agences ou des entreprises spécialisées « mobile » mettent en œuvre ce qu’on appelle la méthode Scrum.

La méthode Scrum : les bases d’une équipe de développement

La méthode Scrum est une méthode ayant acquis une grande popularité dans la gestion des projets de développement d’applications mobiles, qu’il s’agisse d’Android ou d’iOS.

Elle s’intéresse à la dimension humaine du travail à réaliser et permet de créer les bases d’une bonne interaction entre les membres d’une équipe, les managers et les clients.

Dans le cas du développement des applications Androidcomplexes, le travail se forme en général autour d’une équipe auto-organisée et multifonctionnelle constituée du :

  • Responsable produit.
  • Scrum Master.
  • Designer d’interface ou spécialiste User eXperience.
  • Développeur ou programmeur.
  • Analystes en contrôles de qualité.
  • Spécialiste en sécurité.
  • Responsable de la documentation.

Le responsable produit

Le responsable produit a la charge de définir les spécifications fonctionnelles de l’application mobile telle que le veut le client (entreprise ou particulier) et devra partager cette vision à l’ensemble de l’équipe.

En général, c’est lui qui a le plus de responsabilité et d’autorité. Il a la charge d’identifier le périmètre et les contraintes du projet, c’est-à-dire :

  • Déterminer le modèle économique de l’application à réaliser.
  • Donner des orientations sur la nature des contenus et de leur environnement techniques.
  • Donner des orientations sur les maquettes graphiques et le design des applications.
  • Approuver le produit final et s’assurer qu’il respecte la déontologie et les contraintes juridiques.

Le Scrum Master

Tel que son nom l’indique, le Scrum Master est celui qui veille à ce que les valeurs de la méthode Scrum soient respectées à chaque étape.

Les Scrum Master sont en général des développeurs ayant déjà eu à piloter des projets et qui assurent le rôle de coach, de formateur et d’enseignant au sein de la team.

Leurs missions consistent donc également à :

  • Assurer l’intermédiation entre le responsable produit et les équipes.
  • Déterminer les orientations possibles (court, moyen et long terme).
  • Identifier les obstacles et les menaces.
  • Coordonner le travail des équipes afin de stimuler la créativité.
  • Veiller au respect des bonnes pratiques agiles (mode de programmation multiforme).
  • Faciliter et encadrer l’auto-organisation.

Le designer d’interface ou spécialiste User eXperience

Il s’occupe de la dimension graphique et artistique de l’application mobile. Son rôle consiste principalement à :

  • Concevoir la présentation visuelle de l’application.
  • Établir la charte graphique.
  • Effectuer la scénarisation de l’application.
  • Créer des images, des textes, des couleurs, en somme, tout ce que les utilisateurs voient de manière graphique sur leurs appareils.
  • Concevoir la navigation et l’architecture des informations en prenant en compte les besoins d’utilisation des mobinautes.

Pour réaliser cette tâche, le designer d’interface se sert principalement du XML. C’est un langage informatique qui permet de structurer facilement des données grâce à ses balises.

Le développeur ou programmeur

Il s’occupe de la partie technique, essentiellement consacrée à la programmation proprement dite. Les développeurs sont la plupart du temps amenés à exercer différentes missions en fonction de l’envergure des projets. Ils peuvent être affectés soit au volet serveur soit au volet mobile.

De manière globale, son rôle consiste à :

  • Analyser la commande.
  • Fragmenter l’application en plusieurs composantes différentes.
  • Définir les algorithmes.
  • Résoudre les bogues et assurer la compatibilité avec les différents terminaux mobiles.
  • Effectuer aussi bien la programmation native que celle de l’interface utilisateur.
  • Assurer l’optimisation du poids des pages web.

Pour réaliser cette partie du développement des applications Android, tout développeur devrait au moins avoir la maîtrise parfaite de Java.

Quelle est sa particularité ?

Par exemple, sur un jeu d’animation pour téléphone mobile, deux personnages représentent deux objets distincts. En se servant du langage Java, on va attribuer à chacun de ces objets des fonctions précises afin qu’ils puissent interagir entre eux.

L’analyste en contrôle de la qualité

L’analyste en contrôle de qualité a un rôle essentiel dans la chaîne de production d’une application mobile (qu’elle soit Android, Windows ou iOS).

À la fin de chaque sprint, il veille à ce que toute la documentation générée (le code) soit conforme aux bonnes pratiques afin de faciliter le relais ou un éventuel recyclage de l’application.

Son rôle consiste donc à :

  • Établir des scénarios pour les tests.
  • Évaluer les caractéristiques fonctionnelles et les caractéristiques d’intégration de l’application (fonctions, calculs, images, textes, couleurs, etc.).
  • Tester les bogues afin d’identifier ceux qui sont fonctionnels.
  • Évaluer l’application sur la base du cahier de charges.
  • Identifier les caractéristiques des différentes plateformes.

Conclusion

La création des applications mobiles est le résultat d’un travail d’équipe mettant en relation plusieurs compétences spécifiques. Il est de ce fait essentiel de veiller à ce que les développeurs faisant partie d’une mission de programmation aient des compétences complémentaires.

C’est pour cette raison qu’il est idéalement conseillé aux entreprises ou aux particuliers d’avoir recours à l’expertise des professionnels en termes de conseils aussi bien pour des applications destinées au système Android qu’à celles destinées au système iOS (iPhone) ou Windows.