Nous avons beaucoup apprécié collaborer avec Kanso. Nous avions ensemble un projet moyen termes (3 mois). La communication a été fluide (point hebdo). Le rendu conforme aux attentes, les délais respectés. Le collectif a également su être arrangeant pour rentrer dans notre fenêtre de délais.
Enguerand Jobard
CEO de Josepho
Le client
Jospeho est une entreprise de location de photobooth pour immortaliser des évènements à travers des photos instantanées. L'entreprise est née en 2015, de l'alliance de 4 passionnés (Enguérand, Sebastien, Ségolène, Jean).
Le projet et les besoins
Josepho avait déjà une application sur tablette iOS mais le rendu photo n'était pas satisfaisant et les contraintes d'Apple étaient trop strictes. Ils ont choisi une tablette Galaxy S8 dont la qualité photo est bien meilleure et ont amélioré le produit initial. Ils nous ont sollicité pour réaliser l'application mobile ainsi qu'une partie de la connexion à l'imprimante, tout en gardant à l'esprit que les clients seraient en autonomie avec la tablette ce qui impliquait un produit conçu avec rigueur pour être parfait, c'est à dire :
- Donner la possibilité de faire des gifs ou des photos
- Permettre d'imprimer les photos
- Envoyer les Gifs ou photos sur une ou plusieurs adresses emails
- Fonctionner en mode hors-ligne le temps de le prestation
- S'assurer d'un rendu net des photos et d'un découpage propre de l'imprimante
- Permettre de lancer l'application directement au démarrage de l'OS et restreindre les fonctionnalités accessibles en dehors de l'application de photobooth
- Controller la tablette à distance et gérer les cas (automatiquement lorsque c'est possible) de crash, de redémarrage nécessaire, etc.
L'autre enjeu était les délais : il leur fallait un produit livré au début de l'été pour ne pas perdre de clients pendant leur période de rush.
La solution proposée
- Pour respecter les contraintes fonctionnelles (cadre personnalisé, gif animé) et techniques concernant l'impression (formats, découpes) nous avons personnalisé le code Kotlin de communication avec l'imprimante et nous avons utilisé la librairie FFMPEG au sein de React Native.
- Pour assurer le bon fonctionnement en mode hors-ligne ou en cas de problème (panne de batterie, perte ou absence d'internet, etc), nous avons sérialisé et persisté sur fichiers la plupart des taches exécutées par l'application. Cette "sauvegarde" periodique est accompagnée d'un système de file d'attente, pour reprendre les taches automatiquement là ou elles s'étaient interrompues.
- Pour gérer le temps d'impression (plusieurs dizaines de secondes) sans bloquer le fonctionnement de l'application nous avons réutilisé le système de file d'attente qui avait été développé pour évité la perte d'information. Ainsi un client final peut prendre des photos et lancer l'impression puis immédiatement laisser d'autres personnes utiliser le photobooth : il n'y a pas de temps d'attente.
- Pour contrôler la tablette à distance (MDM) et accompagner les clients finaux en cas de problèmes, nous avons configuré le mode Kiosk avec Hexnode. Cette solution permet à la fois de créer une app en boot automatique (on arrive directement sur l'app au lancement de la tablette) et de gérer différents scénarios comme le reboot en cas de crash de l'app.
La stack technique et l'infrastructure
- React Native, TypeScript
- Kotlin (intégré en module natif au sein de React Native)
- FFMpeg
- Hexnode (MDM: Mobile device management)
Le périmètre d'action/Les moyens déployés (durée et équipe)
L'ensemble du projet a duré 3 mois, avec 2 ETP.
L'impact
10 événements
4,6 million de photos
3.4mariages