Étude de cas · 2022
Intégrer un moteur cryptographique au cœur d'une application mobile : myUnbox, le portefeuille numérique d'Unbox Universe.
- 1 moteur cryptographiqueécrit en Rust, intégré au cœur d'une application Flutter
- iOS et Android: une seule application, publiée sur l'App Store et Google Play
- 1 chaîne de publication automatiquede la compilation jusqu'aux stores

Contexte
Unbox Universe est une start-up belge, basée à Anvers, qui s'est donné pour mission de récompenser les gestes utiles. Ramasser des déchets ou recycler rapporte une monnaie numérique, que l'utilisateur peut ensuite dépenser ou échanger. Ses programmes sont menés avec des villes et des acteurs du recyclage.
Pour recevoir et utiliser cette monnaie, ses utilisateurs avaient besoin d'une application : myUnbox, à la fois portefeuille et identité numérique. Le cœur du système, un moteur qui gère les clés cryptographiques et les échanges avec la blockchain, était développé en Rust par une autre équipe du projet. L'application, quant à elle, serait écrite en Flutter, pour sortir sur iOS et sur Android à partir d'un seul code. Encore fallait-il que les deux se comprennent.
Fin 2022, Unbox Universe nous a contactés avec une question précise : comment faire fonctionner un moteur Rust au cœur d'une application Flutter ? Nous avons d'abord mené cette intégration, puis pris la direction technique de l'ensemble de l'application, jusqu'à sa publication sur les stores.
Enjeux
Deux langages, une seule application
Rust et Flutter ne communiquent pas nativement. En 2022, les outils permettant à Flutter de dialoguer avec un autre langage étaient encore jeunes.
Des clés qui ne doivent jamais se perdre
Dans un portefeuille numérique, la clé privée donne accès aux fonds. Contrairement à un mot de passe, elle ne se réinitialise pas en cas de perte ; exposée, elle permet à quiconque de s'en servir. Sa gestion ne tolère aucune approximation.
Une application pensée pour tous
Les utilisateurs d'Unbox gagnent leurs récompenses en recyclant, non par intérêt pour la blockchain. Recevoir, payer et échanger devait leur paraître aussi simple que dans une application bancaire.
Un moteur et une application construits en parallèle
Le moteur Rust évoluait à mesure que l'application prenait forme. Les deux équipes devaient avancer de concert, sans que l'une ne bloque l'autre.
Notre approche
L'intégration d'abord, avant le moindre écran
Nous avons commencé par la partie la plus incertaine du projet : faire fonctionner le moteur Rust au sein de l'application Flutter, sur iOS comme sur Android. Un premier prototype a démontré que l'intégration tenait, et le reste de l'application a pu être bâti sur une base éprouvée.
Du prototype au produit : une architecture et une équipe
Le prototype validé, nous avons défini l'architecture de l'application et sa stratégie de développement, puis pris la tête d'une équipe de quatre développeurs Flutter. Nous assurions en parallèle la coordination avec l'équipe du moteur Rust, et avons gardé la main sur les composants les plus sensibles : la communication avec la blockchain et la gestion des clés.
Un portefeuille aussi simple qu'une application bancaire
L'utilisateur gère plusieurs portefeuilles, reçoit ses récompenses, les échange et consulte l'historique de ses transactions. Pour payer, il lui suffit de scanner un QR code.
Plusieurs identités, aucun mot de passe
myUnbox fait aussi office d'identité numérique. L'utilisateur peut créer plusieurs identités (personnelle, professionnelle, jeu), chacune avec ses propres informations. Il se connecte aux services d'Unbox en scannant un QR code : c'est sa clé privée, conservée sur son téléphone, qui atteste de son identité.
Des clés mises en sécurité
Une clé perdue ne se récupère pas. L'application la conserve donc sur le téléphone, et en garde une copie de secours sur un serveur, protégée par un code.
Une publication automatisée
Nous avons mis en place une chaîne d'intégration et de déploiement continus : chaque version est compilée, puis publiée automatiquement sur l'App Store et Google Play. Une mise à jour ne repose plus sur une manipulation manuelle.
Ce que fait myUnbox
- PortefeuillesPlusieurs portefeuilles, réception et échange des récompenses
- PaiementPar QR code, avec l'historique des transactions
- IdentitésPersonnelle, professionnelle, jeu : connexion sans mot de passe
- ClésConservées sur le téléphone, avec une copie de secours
Résultats
myUnbox a été publiée sur l'App Store et sur Google Play. La question posée fin 2022 avait trouvé sa réponse : le moteur Rust fonctionnait au cœur d'une application Flutter en production, sur iOS comme sur Android. Unbox Universe nous a attribué la note de 5/5 sur Malt.
Direction technique : Pierre Martin, fondateur de Highway Studio.