Solutions d'applications mobiles
Une application mobile n'est pas une interface de bureau réduite. On attend qu'elle fonctionne quand la connexion coupe, que la batterie faiblit ou que les mains sont occupées.
Ce qui détermine l'utilisabilité d'une application mobile sur le terrain n'est généralement pas le design des écrans. Ce qui se passe en cas de coupure, le moment de la synchronisation et quel appareil prévaut quand deux d'entre eux modifient le même enregistrement sont bien plus déterminants.
La plateforme et la technologie de développement se déterminent selon le cas d'usage. Une application de terrain nécessitant un accès poussé au matériel et une application principalement dédiée à l'affichage de données n'ont pas la même bonne réponse.
Les applications qui considèrent la connexion comme un prérequis finissent par devenir inutilisables sur le terrain.
Sommes-nous le bon interlocuteur ?
Une application mobile n'est pas la réponse à tous les besoins. Si l'utilisateur est assis à son bureau et que le travail fonctionne dans un navigateur, une application séparée ne fait qu'ajouter une charge de maintenance et de version, sans contrepartie.
Oui, discutons-en
- Le travail se fait sur le terrain, debout, et souvent d'une seule main
- Un accès au matériel de l'appareil est nécessaire — caméra, localisation, code-barres, NFC
- La saisie doit rester possible même sans connexion
Non, quelqu'un d'autre le fera mieux
- L'application ne ferait que réduire une interface web existante
- Le nombre d'utilisateurs et la fréquence d'usage ne justifient pas la charge de store et de versions
- Le vrai besoin est le reporting — souvent résolu à moindre coût côté web
Ce que nous faisons
- Choix de plateforme et de technologie selon le cas d'usage
- Fonctionnement hors ligne et stockage local des données
- Synchronisation des données et résolution des conflits
- Conception d'API côté serveur
- Accès au matériel de l'appareil — caméra, localisation, code-barres, NFC, Bluetooth
- Infrastructure de notifications push
- Conception ergonomique pour les conditions de terrain
- Publication en store et gestion des versions
Comment nous procédons
Cas d'usage
Nous établissons où, dans quelles conditions et à quelle fréquence l'application sera utilisée. Les conditions de terrain déterminent d'emblée la plupart des choix d'interface.
Conception du flux de données
C'est ici que nous décidons quelles données restent sur l'appareil, quand elles se synchronisent et comment les conflits se résolvent.
Contrat d'API
Nous écrivons l'interface côté serveur avant de commencer le développement de l'application. Les deux équipes avancent ainsi en parallèle.
Développement et test terrain
Nous testons l'application sur des appareils réels, dans des conditions d'usage réelles. Les tests sur émulateur seuls ne nous suffisent pas.
Publication et version
Nous gérons les processus de store et définissons la politique de versions avec vous. Nous maintenons la compatibilité des anciennes versions avec le serveur pendant une période de transition.
Nos choix techniques
- L'application est conçue pour rester utile même sans connexion réseau. Le personnel de terrain peut saisir des données là où il n'y a pas de réseau, et celles-ci se synchronisent dès qu'une connexion est disponible. Les applications qui considèrent la connexion comme un prérequis finissent par devenir inutilisables sur le terrain.
- Ce qui se passe quand deux appareils modifient le même enregistrement est décidé dès la conception. Si cette règle est ajoutée plus tard, une partie des données accumulées jusque-là est déjà devenue incohérente.
- Tous les utilisateurs ne mettent pas à jour l'application en même temps. L'interface serveur est développée pour laisser fonctionner les anciennes versions ; sinon, les utilisateurs qui n'ont pas mis à jour se retrouvent exclus du système.
- Le suivi de localisation, la synchronisation en arrière-plan et la fréquence des notifications sont réglés en tenant compte de l'autonomie de l'appareil. Une application qui vide la batterie rapidement finit désactivée par l'utilisateur, même si elle fonctionne techniquement bien.