Passer au contenu principal

Étude de cas · FinTech · Crypto · Mobile

Portefeuille crypto — compagnon Flutter iOS + Android pour une plateforme custodiale

Publié le · Mis à jour le · Par YuSMP Group Engineering

Comment nous avons livré une application mobile compagnon en production pour une plateforme crypto custodiale — des clients iOS et Android natifs sur un seul code source Flutter, déverrouillage biométrique, transferts P2P, une passerelle fiat-crypto intégrée et une posture prête pour l'audit qui résiste au contrôle RGPD et CCPA aux États-Unis et dans l'Union européenne.

SecteurFinTech · Crypto · Mobile
Année du projet2022
EngagementPrix fixe + support
Application mobile compagnon de portefeuille crypto — développement Flutter iOS + Android sur un backend Laravel custodial, lancement États-Unis et UE

Le brief — mobile qui respecte la façon dont les utilisateurs crypto se comportent réellement

Le client exploitait une plateforme crypto custodiale avec un frontend web fonctionnel et un backend qui traitait déjà de l'argent réel. Ce qui manquait était une expérience mobile — et le bassin d'acheteurs crypto aux États-Unis et dans l'Union européenne est presque entièrement mobile-first. Le défi n'était pas de construire un portefeuille de zéro : les clés, la garde et la correspondance des ordres existaient déjà. Le défi était de transférer une logique financière complexe du web vers le mobile sans perdre la précision que le produit web avait acquise, tout en livrant une UX qui cache toute la complexité crypto derrière une interface de qualité application bancaire. Nous avons choisi Flutter pour les clients mobiles, avons conservé le backend Laravel existant comme système d'enregistrement, et avons construit six flux de base en parallèle : inscription avec KYC, gestion des actifs, transferts P2P, passerelle fiat-crypto, échangeur in-app et un historique de transactions qui résiste à n'importe quel auditeur.

Points clés du projet

Code source Flutter unique — iOS + Android Ponts natifs StoreKit + Play Billing Déverrouillage biométrique avec PIN de secours Taux de change WebSocket en temps réel Transferts P2P avec QR + lien profond Passerelle fiat-crypto via gateway de paiement par carte Échangeur intégré au taux mid-market en direct Gestion des données conforme RGPD + CCPA

En chiffres

Un instantané de ce que le développement de l'application compagnon de portefeuille crypto a livré sur web, mobile et les systèmes back-office lors de son premier cycle de production.

2plateformes natives — iOS et Android, un seul code source Flutter
6flux utilisateur de base livrés — inscription, soldes, P2P, passerelle fiat, échangeur, historique
5 moisdu démarrage à la présence dans les deux stores — cycle de livraison complet
0clés privées sur l'appareil mobile — la garde reste sur le backend renforcé
60 fpsrendu de graphiques typique sur un appareil Android milieu de gamme à 200 € via Skia
120–280 k€fourchette de livraison type d'un MVP d'application compagnon de portefeuille crypto
Application mobile compagnon de portefeuille crypto — développement natif Flutter pour iOS et Android, utilisateurs américains et européens

Pourquoi une application mobile compagnon à la plateforme web existante

Le client avait déjà une plateforme web fonctionnelle et un backend qui la propulsait — ce dont il ne disposait pas était une expérience mobile qui respectait la façon dont les utilisateurs crypto se comportent réellement. Les acheteurs crypto aux États-Unis et dans l'Union européenne vivent sur leurs téléphones : ils vérifient les soldes lors de trajets, réagissent à la volatilité depuis le canapé et s'assoient rarement devant un navigateur de bureau. Une version web mobile a été testée tôt et abandonnée — la latence, les intégrations de partage et les flux de déverrouillage biométrique souffraient tous par rapport à un développement natif.

Nous avons choisi Flutter pour les clients mobiles. Un seul code source Dart livre iOS et Android avec un rendu cohérent au pixel près, le rechargement à chaud accélère la boucle design-ingénierie, et la trappe d'évasion de canal de plateforme maintient les APIs natives StoreKit, Google Pay et biométriques accessibles lorsque nécessaire. Le backend Laravel qui servait déjà la plateforme web a servi les clients mobiles sans réécriture — un contrat REST typé était le seul ajout.

Flutter vs React Native vs iOS + Android natif — pour une application compagnon de portefeuille crypto
DimensionFlutter (choisi)React NativeiOS + Android natif
Code sources à livrerUn seul code source DartUn code source JS + modules natifsDeux code sources indépendants
Pipeline de renduSkia — cohérent au pixel près sur les deux plateformesWidgets natifs pontés via JSJeu de widgets natif de chaque plateforme
Performance des graphiques crypto60 fps sur un appareil Android milieu de gamme à 200 €Limité par le pont sur les redessinages lourdsNatif — plafond dépend des compétences de l'équipe
Délai de mise sur les deux stores~5 mois pour un MVP multi-fonctions~5-6 mois — similaire7-10 mois — double l'équipe
StoreKit / Google Play BillingDisponible via canaux de plateformeDisponible via modules natifsAPIs natives de premier rang
Déverrouillage biométriquePlugin local_auth — maturereact-native-biometricsLocalAuthentication / BiometricPrompt
Économie d'équipeUne paire Flutter livre les deux storesUne paire RN — similaireDeux équipes dédiées — coûteux

Références : Flutter, Apple StoreKit, Google Play Billing.

Transferts P2P du portefeuille crypto — flux pair-à-pair Flutter avec confirmation biométrique sur iOS et Android

Application iOS — Flutter, déverrouillage biométrique et le tableau de bord des actifs

Le client iOS enveloppe le binaire Flutter dans un hôte Swift fin qui gère le déverrouillage biométrique via LocalAuthentication, les achats in-app via StoreKit et les liens profonds depuis Safari, Mail et les messages partagés. Le flux de déverrouillage est biométrique en premier : Face ID ou Touch ID au démarrage, avec un PIN à six chiffres de secours qui lui-même limite agressivement le débit. Un seul échec ne déconnecte pas l'utilisateur, mais cinq en dix minutes effacent les clés de session en mémoire et forcent une ré-authentification complète.

Le tableau de bord des actifs est l'écran d'accueil de l'application iOS : cartes de solde par devise, valeur totale du portefeuille en haut, et un seul geste vers le détail par actif avec un graphique de prix et un historique de transactions. Les taux de change en direct sont diffusés via un WebSocket de longue durée vers le backend Laravel, avec un sondage HTTP de secours sur les réseaux qui bloquent les WebSockets (une préoccupation réelle sur les Wi-Fi d'hôtels et de conférences aux États-Unis et dans l'UE). Les champs de saisie pour les montants de transfert se valident contre le solde réel de l'utilisateur, le minimum réseau et la précision décimale de l'actif avant que le bouton « envoyer » ne s'active jamais — vous ne pouvez pas accidentellement envoyer 0,000000001 BTC à cause d'une erreur de clavier. C'est le niveau de détail que nous appliquons à chaque projet de développement d'applications mobiles où de l'argent est en jeu.

Passerelle fiat-crypto du portefeuille crypto — dépôt et retrait liés par carte, posture prête pour l'audit, conforme RGPD et CCPA

Application Android — Flutter, transferts P2P et conversion en direct

Le client Android est le même binaire Flutter fronté par un hôte Kotlin fin qui gère BiometricPrompt, Google Play Billing et l'intention de partage Android. Le comportement de l'optimiseur de batterie sur les familles d'appareils Samsung, Xiaomi, OnePlus et Pixel a été réglé par-OEM lors de l'AQ — le timing de reconnexion WebSocket et la politique de notification de premier plan diffèrent suffisamment pour que le développement qui « fonctionne sur un Pixel » ne fonctionnait pas réellement sur un Xiaomi tant que la matrice par-OEM n'était pas remplie.

Les transferts pair-à-pair sont le cœur social de l'application. Un utilisateur peut envoyer des fonds à un autre utilisateur par nom d'utilisateur, par QR code scanné depuis une impression papier ou un autre écran de téléphone, ou par lien profond partagé via n'importe quel messager. Le flux ressemble à une application bancaire par conception : saisir le montant, choisir le destinataire, confirmer par biométrie, suivi de statut en temps réel de « soumis » à « confirmé sur la chaîne ». Un petit échangeur intégré permet à l'utilisateur de convertir une partie de son solde Bitcoin en Ethereum ou en stablecoin sans quitter l'application, au taux mid-market en direct avec une divulgation transparente des frais sur l'écran de confirmation — pas de surprises, pas de spread caché. La même équipe d'ingénierie maintient iOS et Android en parallèle dans le cadre de notre pratique d'ingénierie iOS et Android.

Historique des transactions du portefeuille crypto — enregistrements auditables, posture KYC, gestion des données conforme RGPD + CCPA

Architecture, modèle de menaces et posture prête pour l'audit

Une application compagnon de portefeuille crypto est un produit à risque élevé même lorsqu'elle ne détient jamais de fonds directement. La tâche du portefeuille est d'être la surface visible d'un backend custodial — soldes, transferts, dépôts, retraits — sans jamais exposer les clés privées à l'appareil mobile. Les clés privées se trouvent sur le backend dans des coffres de clés isolés matériellement ; l'application mobile reçoit des jetons porteurs de courte durée qui autorisent des opérations spécifiques, et chaque opération impliquant de l'argent nécessite une confirmation biométrique fraîche quel que soit le moment de la dernière authentification de l'utilisateur.

Les dépôts et retraits liés par carte passent par une gateway de paiement qui gère la portée PCI : l'application mobile ne voit jamais un numéro de compte primaire, seulement une représentation tokenisée de la carte enregistrée de l'utilisateur. Les documents KYC collectés lors de l'onboarding sont stockés dans un blob store chiffré avec un accès journalisé pour l'audit, et le calendrier de conservation des données est aligné sur les obligations du RGPD pour les utilisateurs dans l'Union européenne et les obligations du CCPA / CPRA pour les utilisateurs en Californie et aux États-Unis.

Posture de conformité : conforme RGPD · prêt ISO 27001 · SOC 2 Type II en cours · compatible HIPAA · CCPA reconnu.

Méthodologie de livraison

Un développement en cinq phases qui a conduit l'application compagnon de portefeuille crypto de la spécification produit aux deux stores actifs aux États-Unis et dans l'Union européenne.

Phase 1

Découverte & modèle de menaces

Modèle de menaces (garde, gestion des clés, portée de la carte de paiement), inventaire des fonctionnalités du web vers le mobile, révision de la posture KYC, cartographie de la gestion des données RGPD + CCPA.

Phase 2

Architecture & contrat API

Structure du projet Flutter, contrat REST typé contre le backend Laravel existant, streaming de taux via WebSocket, flux de déverrouillage biométrique et de PIN de secours.

Phase 3

Développement des plateformes

Six flux de base en parallèle — inscription avec KYC, tableau de bord des actifs, transferts P2P, passerelle fiat-crypto, échangeur in-app, historique des transactions.

Phase 4

Durcissement prêt pour l'audit

Matrice d'optimiseur de batterie Android par-OEM, ré-authentification biométrique sur chaque action impliquant de l'argent, isolation de portée PCI de la gateway de paiement, AQ de gestion des clés en mémoire.

Phase 5

Lancement & télémétrie

Soumission App Store et Google Play dans les storefronts américains et européens, déploiement de surveillance des utilisateurs réels, transfert de support, documentation de conformité RGPD + CCPA.

Taux en direct, l'échangeur in-app et le pont de droits

L'échangeur in-app est le plus petit des six flux de base mais celui qui génère le plus de bienveillance au quotidien. Un utilisateur regardant un solde Bitcoin peut en échanger une partie contre de l'Ethereum ou des stablecoins sans quitter l'application, au taux mid-market en direct, avec une divulgation transparente des frais qui détaille le spread et l'estimation du gas avant que l'utilisateur ne confirme. Le flux fonctionne contre le même service de correspondance des ordres Laravel que la plateforme web utilise, ce qui signifie que la liquidité est partagée et les devis sont cohérents sur le web et le mobile. Le droit à l'échangeur — et à des limites de transaction plus élevées, des retraits fiat et certains actifs — est conditionné par le niveau KYC complété de l'utilisateur, que l'application mobile lit depuis le backend à chaque démarrage de session. Un utilisateur qui complète le KYC sur la plateforme web voit sa mise à niveau de niveau se refléter sur mobile en une minute, et un utilisateur qui commence le KYC sur mobile le complète via un flux de téléversement de documents qui utilise la caméra native avec un OCR sur l'appareil pour la validation côté client avant que le document ne quitte jamais l'appareil. L'ensemble du sous-système a été conçu avec l'extensibilité à l'esprit : l'ajout d'un nouvel actif, d'une nouvelle devise fiat, d'une nouvelle gateway de paiement ou d'un nouveau niveau KYC est une modification de configuration contre le service de droits, pas une version de code.

Lancement aux États-Unis et dans l'Union européenne

L'application compagnon de portefeuille crypto s'est lancée sur l'App Store d'Apple et Google Play avec des storefronts actifs aux États-Unis et dans l'Union européenne. La version en langue anglaise sert les utilisateurs en Californie, New York, Texas, Floride et Washington aux États-Unis, et les utilisateurs aux Pays-Bas, en Allemagne, en France, en Irlande et en Suède dans l'UE, sans code source distinct par région. Les flux de consentement sont sensibles à la région au niveau de la couche cliente : les utilisateurs dans l'UE et l'EEE reçoivent un écran de consentement granulaire de type RGPD avec des interrupteurs séparés pour les analyses produit optionnelles ; les utilisateurs en Californie reçoivent une divulgation CCPA « Ne pas vendre ni partager mes informations personnelles » dans le même flux. Les pratiques de gestion des données sont alignées sur le RGPD pour les utilisateurs européens et sur le patchwork de confidentialité des États américains — CCPA / CPRA (Californie), VCDPA (Virginie), CPA (Colorado), CTDPA (Connecticut), UCPA (Utah), TDPSA (Texas) et Oregon CPA. Les divulgations spécifiques aux crypto concernant la volatilité, la garde et la portée du reporting fiscal sont présentées lors de l'onboarding plutôt qu'enfouies dans un lien vers les conditions d'utilisation.

Le backend était déjà actif pour le produit web, donc le lancement mobile a réutilisé la flotte existante dans les centres de données européens et américains — des nœuds aux Pays-Bas, en Allemagne, en France, en Suède et en Irlande pour la couverture UE ; US Est et US Ouest pour l'Amérique du Nord — avec le routage du trafic par région hérité de la plateforme web. L'évaluation de l'âge sur l'App Store et la notation du contenu sur Google Play ont toutes deux été calibrées pour la catégorie des applications financières, et la politique de confidentialité intégrée à l'application a été rédigée pour documenter l'architecture ci-dessus, citant les obligations RGPD et les obligations CCPA de Californie directement. L'équipe d'ingénierie derrière ce développement travaille selon un planning CET avec un chevauchement avec la côte Est des États-Unis (9 h–13 h ET) pour les stand-ups, la choreographie de révision des stores et la réponse aux incidents.

Pile technologique et feuille de route

Flutter Dart Swift Kotlin Laravel PHP PostgreSQL Redis WebSocket LocalAuthentication BiometricPrompt Apple StoreKit Google Play Billing Docker Kubernetes Terraform Prometheus Grafana

La feuille de route active de développement logiciel sur mesure du portefeuille comprend un flux d'appairage de portefeuille matériel pour les utilisateurs en auto-garde, un sous-système d'alertes de prix par notifications push, une fonctionnalité de « profils » multi-comptes pour les utilisateurs qui séparent les portefeuilles personnels et de trading, et un client de bureau construit sur Flutter for Desktop pour partager la logique métier avec le code source mobile. Des niveaux KYC plus approfondis sont prévus pour les utilisateurs institutionnels américains et européens, le sous-système de droits étant déjà structuré pour le contrôle des fonctionnalités basé sur les niveaux. Les plans d'infrastructure comprennent une automatisation supplémentaire du backend et un harnais de vérification continue interne pour le plan de garde dans la feuille de route cloud & DevOps.

Développer une application compagnon de portefeuille crypto — parlons-en

Si vous planifiez un portefeuille crypto, une application mobile compagnon custodiale ou tout développement mobile FinTech où la posture biométrique et la préparation à l'audit doivent coexister avec une UX de qualité application bancaire pour des audiences aux États-Unis et dans l'UE, nous avons livré cette pile de bout en bout et pouvons comprimer significativement le calendrier de développement. Le développement de référence est documenté sur référence du cas, et l'équipe d'ingénierie derrière ce projet est au sein de YuSMP Group. Nous travaillons à prix fixe pour les MVP bien définis et sur des équipes de développement dédiées pour la livraison continue, avec un planning CET et une fenêtre de chevauchement garantie avec la côte Est des États-Unis (9 h–13 h ET) pour les stand-ups, les démonstrations et la réponse aux incidents.

Planifier un appel de découverte Voir le développement logiciel sur mesure

Questions fréquemment posées

Combien coûte le développement d'une application mobile compagnon de portefeuille crypto comme Coinbase ou Crypto.com ?

Un MVP compagnon de portefeuille crypto ciblé couvrant des clients iOS et Android sur Flutter, le déverrouillage biométrique, le tableau de bord des soldes, les transferts P2P et les soumissions aux stores coûte généralement entre 120 000 et 280 000 €. L'ajout d'une passerelle fiat-crypto avec gateway de paiement par carte, d'un échangeur in-app, d'un KYC multi-niveaux, d'un appairage de portefeuille matériel et d'une gestion des données prête pour l'audit porte un produit complet à 320 000-680 000 €. Les principaux facteurs de coût sont le travail de matrice Android par-OEM, l'isolation de portée PCI de la gateway de paiement et la choreographie de révision des applications financières sur l'App Store et Google Play concernant les divulgations de garde.

Pourquoi utiliser Flutter plutôt que React Native ou le natif complet pour un portefeuille crypto ?

Flutter livre iOS et Android depuis un seul code source Dart avec un rendu cohérent au pixel près via Skia, ce qui compte lorsque les graphiques crypto doivent s'afficher à 60 fps sur un appareil Android milieu de gamme à 200 €. La trappe d'évasion de canal de plateforme maintient les APIs natives StoreKit, Google Play Billing et biométriques accessibles lorsque nécessaire. React Native est une alternative raisonnable avec des économies d'équipe similaires ; le natif complet iOS plus Android double généralement l'équipe et le calendrier. Pour une application compagnon de portefeuille où le backend existe déjà, Flutter est le choix à moindre risque.

Comment garder les clés privées en sécurité dans un portefeuille mobile custodial ?

L'application mobile ne voit jamais les clés privées. Les clés se trouvent sur le backend dans des coffres de clés isolés matériellement avec un accès journalisé pour l'audit, et le client mobile ne reçoit que des jetons porteurs de courte durée qui autorisent des opérations spécifiques. Chaque action impliquant de l'argent nécessite une confirmation biométrique fraîche quel que soit le moment de la dernière authentification de l'utilisateur, et une série d'échecs biométriques efface l'état de session en mémoire. Les attaquants déterminés avec un accès complet à l'appareil peuvent toujours piéger une biométrie par ingénierie sociale, mais le modèle custodial place le compromis à haute valeur derrière le backend, pas le téléphone.

Quelles sont les règles de l'App Store et de Google Play pour une application crypto ?

Apple exige que les applications crypto se conforment à la catégorie des services financiers, divulguent les risques de garde et de volatilité dans le produit, et utilisent StoreKit pour tout achat in-app de valeur non-crypto. Google Play exige des divulgations équivalentes, déclare l'objet de l'application financière de façon prominente et passe une revue d'autorisations supplémentaire. Les deux stores exigent un KYC fonctionnel pour les entrées fiat, une divulgation transparente de toute collecte de données, et — pour les applications au service des utilisateurs européens et californiens — un mécanisme de consentement granulaire satisfaisant le RGPD et le CCPA / CPRA dans le même flux.

Combien de temps faut-il pour livrer une application compagnon de portefeuille crypto sur iOS et Android ?

Un MVP ciblé avec des clients Flutter, le déverrouillage biométrique, le tableau de bord des actifs, les transferts P2P et les deux soumissions aux stores prend généralement entre 16 et 22 semaines. L'ajout d'une passerelle fiat-crypto avec gateway de paiement par carte, d'un échangeur in-app, d'un KYC multi-niveaux et d'une matrice d'optimiseur de batterie Android par-OEM ajoute 6 à 10 semaines. Le passage de durcissement prêt pour l'audit — isolation de portée PCI de la gateway de paiement, AQ de ré-authentification biométrique, modélisation des menaces du plan de garde — est fréquemment sous-estimé et doit être budgété à 4-6 semaines de travail dédié.

Partager cette étude de cas

LinkedIn X

Planifier un développement similaire

Planifier un appel de découverte

Demander une proposition

Partagez quelques détails et un consultant senior vous répondra dans un délai d'un jour ouvrable.

Vous préférez parler directement ? ☎ Appeler le +374 44 871 811 ✉ sales@yusmpgroup.com