Le Dev Mobile
Voici les étapes de réalisation par un développeur.
Développeur au sens large: agence digitale, freelance, ...
1. Etude du projet
Estimation du client
- Sa compréhension et son expérience du dev mobile, son engagement, ses valeurs
- Son degré d'acceptabilité au changement et à la simplification (son "agilité").
- Ses capacités d'abstraction, de projection, de documentation et de test. Sa résilience.
- Sa fiabilité et viabilité financière
Analyse fonctionnelle du projet
- Ce que veux le client / la ou il est
- Avec une description et étendue souvent succinte
- Le but étant d'estimer le temps nécessaire et le tarif final en grosse louche
Etude de faisabilité
- Estimation de ce que le dev connait (ie: a déjà fait par le passé) ;
- Et de ce qu'il ne connait pas (ie: découverte R&D)
- Et de ce qu'il ne sait pas comment faire.
- De tout ce qui peux lui faire perdre du temps:
- La validation du design, de l'UX, des parcours clients, des détails
- La réactivité du client à ces validations et à toutes les petites imprécisions
- L'utilisation d'API, de liens externes "web", de données tierces, de composants tierces (iOT). Ex: systèmes de paiements, connexion utilisateur, branchement sur un e-shop, ...
- Ses propres outils (logiciels et PC)
- Ses propres connaissances (langage, plateformes)
Estimation du temps de réalisation et du coût.
- forfait
- ou au temps passé
2. Conception
Analyse organique
Détail de chaque écran de l'app
- contenu: les données affichées
- interaction: tout ce qui va déclencher des actions
- boutons, gestures: tap, swipe, pinch
- timers et capteurs: Position GPS, pression, magnétomètre, gyroscope, NFC, Bluetooth, Wifi
- Notifications: push et locale
- navigation: relation hiérarchique entre écrans.
- Design, Ux, thème, icônes, animations
- Bien coller aux "bonnes pratiques" pour diminuer les risques de dépassement et de blocage sur des sujets "affichage".
Le choix de la techno
A la discrétion du développeur !
- Choix impactant pour le client ?
- Rapidité de développement
- Fluidité de présentation: coller au aspects de chaque plateforme (présentation et interaction)
- Rapidité d'exécution: pour apps particulières (traitement photo, voix, vidéo ...)
- Facilité de branchement de systèmes externes (iOT: prises connectées, ...).
- Facilité à trouver un dev de bon niveau
- Code source bien organisé en termes d'architecture interne
- Mauvais niveau ⇒ mauvais résultat, ou très gros dépassement
Les types de technos
- Natif ⇒ 1 code pour l'app iOS, 1 code pour l'app Android. Tout est doublé: validations, tests, crashs, etc.
- Swift, Objective C; Java (pas Javascript), C et C++
- Cross-plateforme ⇒ 1 code commun aux 2 apps iOS et Android (90 à 100%) + 1 code iOS et 1 code Android.
- Kotlin (JetBrains), Xamarin Forms (language C#, Microsoft), Flutter (langage Dart; Google), React Native (langage javascript; Facebook),
- No-code
- Ex Shopify: Shopney, Tapcart, Vajro, Plobal, ...
- Hybride et PWA: page web et javascript. Interaction non native, lent.
- Backend
- Firebase (Google), Mobile Apps (Microsoft Azure, AWS), Onesignal, ...
3. Réalisation
Organisation
- Backlog, sprint et agilité
- Synchronisation des dev, des designs, des changements
- Remontée des surprises et blocages
Codage
- Architecture globale et interne
- données: de démarrage (produits, ...), et contenu utilisateur (profil, textes, images, vidéos, ...)
- codes graphiques (équivalent de HTML) et codes non graphiques (équivalent de javascript)
- Codage seul ou à plusieurs (pair programming)
- Normes communes et meilleures pratiques
- Librairies de composants externes payantes ou open source
- Attention à tout ce qu'on ne code pas !
Déploiements et tests
- Comptes Stores. Payant !
- CI/CD: automatisation des déploiements dans les stores, et des remontées de crashs et de tests.
4. Exemple de calcul de coût
Pour un budget de 50000€, et une app 100% maitrisée (pas de R&D).
Il faut de 1 à 3 mois pour avoir un produit terminé, si la communication avec le client et les intervenants est parfaite. Comptez plutôt 3 mois pour avoir une première version propre.
Estimation de temps de dev, avec un dev expert. Pour un dev junior ou moins bon comptez entre x2 et x10.
Cout de dev d'un écran simple: 1J
Cout de dev d'un écran complexe: 5 à 30J, moyenne 15J
Cout de dev des animations, interactions spéciales et autres: 5 à 30J, moyenne 10J