Développement d'applications mobiles multi-platesformes
Android - IOS Iphone - Windows 10 mobile - B2B - B2C - RH - Force de vente - Communication interne - Marketing - Métiers - Base de donnée - Gestion du mode off-line - Exploitation des données produites par les capteurs (appareil photo, GPS, gyroscope, boussole, accéléromètre...)
Une question? Posez-la ici
Pour rappel, le cycle de vie d'une application informatique se modélise comme ceci. Nous allons l'adapter au développement spécificique d'une application mobile.
Idée, expression du besoin, cahier des charges
Définition des objectifs, élaboration du cycle de vie de l'application.
Phase analyse, conception, modélisation
Enveloppe budgetaire préliminaire. Mise en place du calendrier de livraison.
Choix du modèle de cycle de vie : cascade, en V, semi-itératif (cycles de 4 semaines), en spirale, itératif (cycles de 8 semaines) et incrémental...
Choix de la (ou des) méthode : Software craftsmanship à tendances Rad (rapid application development), RUP, XP Extreme Programming, Scrum, Agile, Waterfall en cascades, Kanban, Hermes, Puma... Voir le manifeste pour le développement Agile de logiciel
Validation des diagrammes de GANTT, PERT. Planning
Gestion des exigences, structures de données, Merise MCD, MLD, UML et les 9 diagrammes, dont diagramme des classes (1 classe = 1 responsabilité!!!) , designs patterns, workflow... On s'occupe ici principalement du Back-end comme certains aiment l'appeler
Une question? Posez-la ici
Phase design
Conception du prototype basé sur les fonctionnalitées de base attendues, avec les écrans et les éléments de la future interface HIM : Storyboard
Elaboration de la charte graphique généralement avec l'équipe marketing, au couleurs de l'entreprise
"Démo" de l'application en live, validation de la modélisation et des écrans (UX-Design)
On s'occupe ici principalement du Front comme certains aiment l'appeler
Outils de prototypage, ionic Creator, Invision, Marvel, Baslamiq, Sketch...
Une question? Posez-la ici
b
Développement
Choix du langage de programmation en fonction des objectifs définis, du nombre de plateformes à adresser. Et là, on laisse le choix aux développeurs. 1 langage pour le back-end? 1 langage pour le front? Pourquoi pas 1 seul langage fullstack Javascript, à la fois pour le front et le back-end? Python (Django, Flask)? Ruby (on rails?) Bien souvent, plusieurs langages sont nécéssaires. Code natif? Code hybride? Code hybride-hybride? (Mix HTML5 encapsulé Cordova et natif C++ qui reste incontournable pour les applications temps-réel, graphiques, jeux, compression vidéo, réalité augmentée...)
Choix d'un IDE MEAP (mobile enterprise application platform, plateformes de développement d'applications d'entreprise mobiles) généralement Eclipse avec des plugins, ou React Native, Cordova Ionic Meteor Angular , RHO Mobile suite , Convertigo Mobilizer Studio, Kony One Studio, Mobile First Platform , SAP Mobile platform , Visual Studio Xamarin , Windev Mobile , Titanium Axway Appcelerator , RHO Mobile suite , QT mobile, Haxe, Rubymotion.. Visual Studio Code, Visual Studio IDE, Atom, Webstorm, Sublime Text, TextMate, Brackets... Et des MDM (Mobile application management) MCM (Mobile content management) MAM (Mobile aplication management) pour gérer les objets, classes, polymorphismes, encapsulations, héritages...
Le but étant de faciliter l'intégartion de l'application mobile avec le système d'information existant
Interrogations bases de données, OLE, ODBC, Oracle, MySQL, MariaDB, AS/400, Azure, PostgreSQL, SQL Server, Firebase, AWS DynamoDB, AWS RDS, Heroku Postgres, Self-hosted MongoDB, Cloud hosted MongoDB, Ionic DB, SQlite...
Big Data, Hadoop, HDFS, Hbase, Hive, Riak, MongoDB...
Architectures client-serveur, 2-tiers, 3-tiers, n-tiers...
Fonctionnalités classiques, GPS, Email, SMS, Photo, Export PDF, FacebookID login...
Ressources externes et connecteurs, Imap, Smtp, Pop, Ftp, Javascript, Rest, Json, Soap, Socket, API, Frameworks...
Backend , Firebase/GCM, Amazon SNS, OneSignal, Urban Airship, Pushwoosh, Ionic Push, Custom push system (node-apns, etc), AWS Lambda, Amazon ECS, AWS LightSail, Google App Engine/GCP Containers, Heroku, Azure, Digital Ocean, Classic VPS provider (Linode, Rackspace Cloud, etc), Self-hosted Virtual Server, Self-hosted docker containers, Self-hosted dedicated server
Analytics, Google Analytics, Firebase Analytics, Amazon Mobile Analytics, Fabric Answers, Mixpanel, Keen, Segment, Amplitude, Localytics, Adobe, Ionic Analytics, Custom analytics (self-hosted, self-built, etc)
User authentication, Firebase Auth, GCP Auth, Auth.io, Auth0, Stormpath, Fabric Digits, Amazon Cognito, Azure Authentication, Ionic Auth, Custom oAuth
Testing app in the cloud, AWS Device Farm, Firebase Test Lab, Browserstack, Sauce Labs, Custom device testing system, I don't do cloud device testing
Debug, track errors and crashes, Fabric/Crashlytic, Firebase crash reporting, Sentry, TrackJS, Bugsnag, Opbeat, Rollbar...
Mise à jour de l'app à distance, Ionic Deploy, Code Push, PhoneGap ContentSync, PhoneGap Hydration, Custom Update System...
Une question? Posez-la ici
Phase de revue de code
Inspection de produit logiciel : il s'agit d'un ensemble d'activités précises, dont le but est d'identifier les anomalies d'un produit. Cette technique inclut obligatoirement un responsable d'inspection/modérateur, un lecteur, un scribe, qui ne doivent pas faire partie des auteurs du produit. Le produit est présenté à l'équipe, ainsi que les outils de vérification (liste de vérification ou autre).
Chaque auteur, dans les jours qui suivent, fait une lecture attentive du produit, en notant les anomalies. Par la suite, une réunion permet de mettre en commun les anomalies détectées. Aucune discussion sur les solutions n'est tolérée. Un rapport d'inspection est produit et un suivi des corrections des anomalies est fait. Aucun administrateur ne doit utiliser les résultats de l'inspection pour évaluer l'auteur du produit.
Une question? Posez-la ici
Phase de test
Designation des testeurs
Tests unitaires, niveau composant, tests d'intégration globale, système et acceptation
Feedback continu, tracabilité, chasse aux bugs, suivis des bugs, gestion des incidents
Tests de performance : validation que les performances annoncées dans la spécification sont bien atteintes.
Tests fonctionnels : vérification que les fonctionnalités demandées sont bien supportées.
Tests de robustesse : validation la stabilité et la fiabilité du logiciel dans le temps.
Tests exploratoires. Tests de vulnérabilité : vérification de sécurité du logiciel.
Tests de charge, test utilisateur. Automatisation des tests.
Beta test frameworks, Junit, Hockeyapp, Testflight, TestFairy...
Une question? Posez-la ici
c
Phase de formation
Désignation des formateurs
Supports retenus pour la formation : sessions présentielles, didacticiel ou tutoriel, formation en ligne, ...
Identification des différentes populations à former, par métiers
Inventaire des supports retenus pour la formation : sessions présentielles, didacticiel ou tutoriel, formation en ligne, ...
Elaboration des modules de formation avec leurs supports de cours. planification des sessions de formation
Allocation des ressources nécessaires au déroulement de la formation (salles, équipements, etc.)
Evaluation de chaque module (avec une population-test)
Evaluation de la réussite de la formation (bilan)
Mise en place d'une cellule d'assistance (avec des téléassistants, des techniciens helpdesk, qui assurent les fonction SVP)
Monitorat, tutorat des personnes formées.
Une question? Posez-la ici
Phase de documentation
Désignation des rédacteurs
Documentation générale du logiciel: elle décrira les fonctionnalités du logiciel.
Documentation spécifique orientée: elle décrira les fonctions du logiciel en fonction du métier de l'utilisateur.
Procédures métier. Ces procédures décriront les actions de l'utilisateur sur le logiciel.
Ces documentations peuvent être :
un manuel ou livre imprimé
une aide en ligne accessible à partir du logiciel ou téléchargeable
une aide intégrée au logiciel
Une question? Posez-la ici
Phase de pilote
Pré-production. l'application n'est mis en production que sur quelques périphériques afin d'attendre des retours de la part des utilisateurs.
Phase de déploiement, généralisation
Une fois que l'application satisfait les utilisateurs pilotes, l'application est généralisée sur tous les périphériques
Distribution des applications, MobileIron, Airwatch, Microsoft Intune, Ionic View...
Retour d'expérience, revue de fin d'implémentation
Remise des produits finis
Evaluation du projet
Notification de la recommandation de clôture
Phase de maintenance applicative
Analyses personnalisée de l'utilisation à grande échelle
Mesure des usages de de l'utilisation (cas des utilisateurs qui n'utilisent jamais cette fonction, ce menu, ou ne cliquent jamais sur ce bouton...)
Livraison de mises à jour continue, démarche devops
Comparaison des résultats des requêtes sur les bases de données
Définition des optimisations des requêtes.
Obtention de visibilité instantanée sur les performances de l'application
Réduction des taux d'incidents de l'application et amélioration de son temps de disponibilité
...
Besoin d'une application mobile? Android ? IOS Iphone ? Windows 10 mobile ? B2B ? B2C ? RH ? Force de vente ? Communication interne ? Marketing ? Métiers ? Base de donnée - Gestion du mode off-line - Exploitation des données produites par les capteurs (appareil photo, GPS, gyroscope, boussole, accéléromètre...)
Formulaire de contact: