Application mobile

Étude de cas Inkyflash : application marketplace de tatouage, Flutter, PWA et WordPress

Une marketplace qui met en relation clients et tatoueurs professionnels vérifiés autour des flashs : application installable depuis le navigateur, coque Flutter pour iOS et Android, et plateforme WordPress sur mesure pour la réservation, l’agenda, le paiement et la messagerie.

Client
Inkyflash
Période
Juin – octobre 2026 (en cours)
Technologies
  • WordPress (thème et extension sur mesure)
  • PHP 8
  • JavaScript
  • API REST WordPress
  • PWA
  • Flutter
  • Dart
  • Stripe Connect
  • FullCalendar
  • Leaflet
  • Codemagic

Résultat : Site en ligne sur inkyflash.fr et application installable depuis le navigateur (PWA) ; application iOS et Android compilée en Flutter, publication sur les stores en préparation.

Accueil d’Inkyflash sur ordinateur et sur mobile : marketplace de flash tattoos, boutons « Télécharger l’app » et « Je suis tatoueur »

Cette étude de cas d’application marketplace présente Inkyflash, une plateforme qui met en relation des personnes majeures qui veulent se faire tatouer et des tatoueurs professionnels vérifiés, autour des flashs : des motifs dessinés par l’artiste et prêts à être tatoués. Pour la société Inkyflash, basée à Angers, j’ai reconstruit la plateforme de zéro sur un socle WordPress sur mesure, puis je l’ai déclinée en application : installable depuis le navigateur sous forme de PWA, et compilée pour iOS et Android avec Flutter. Le site est en ligne sur inkyflash.fr ; le projet, commencé en juin 2026, se poursuit en octobre 2026.

Si vous préparez une plateforme du même type, la page développement de marketplace sur mesure détaille ma démarche et les points à cadrer.

Contexte : reconstruire la marketplace de zéro sur un socle maîtrisé

Inkyflash existait déjà dans une première version. Après un audit de cette version mené en mai 2026, le choix a été de repartir de zéro : une nouvelle plateforme sur un socle WordPress sur mesure, hébergée en France, dont le code et les données appartiennent à la société. Aucun code de l’ancienne version n’a été repris ; seul son design, déjà validé par la société, a été conservé et réintégré dans le nouveau thème.

Les objectifs du projet :

  • deux parcours distincts, l’un pour les clients, l’autre pour les tatoueurs, réunis sur une même plateforme ;
  • une réservation avec acompte en ligne et un paiement réparti entre l’artiste et la plateforme ;
  • un tatoueur autonome : profil, flashs et agenda gérés sans passer par l’administration de WordPress ;
  • une vraie application sur téléphone, sans maintenir deux produits séparés.

L’enjeu d’une application marketplace à deux faces

Une marketplace de tatouage doit convaincre deux publics en même temps. Le client cherche un style, un artiste proche de chez lui et une réservation sans mauvaise surprise. Le tatoueur veut de la visibilité, un agenda simple et des paiements fiables. Entre les deux, la plateforme doit porter la confiance.

  • La confiance d’abord. Un tatoueur s’inscrit avec son SIRET et son numéro de récépissé ARS ; son profil reste en brouillon jusqu’à sa validation manuelle par l’équipe Inkyflash.
  • La majorité, contrôlée à l’inscription. Le tatouage est réservé aux personnes majeures : la date de naissance est demandée à la création du compte client, et l’inscription est refusée avant 18 ans.
  • Des échanges sensibles. Avant un rendez-vous, client et artiste échangent des photos de la zone à tatouer, à protéger en conséquence.

L’application : une PWA installable et une coque Flutter pour iOS et Android

L’application Inkyflash existe sous deux formes qui ouvrent le même écran. La première est une PWA : le bouton « Télécharger l’app » du site l’installe dès aujourd’hui depuis le navigateur. La seconde est une application Flutter pour iOS et Android, déjà compilée, dont la publication sur l’App Store et Google Play est en préparation.

Un écran d’application dédié

L’application ne s’ouvre pas sur la page d’accueil marketing, mais sur un écran pensé pour l’usage quotidien : raccourcis vers la galerie, les tatoueurs, la messagerie et le compte, puis les flashs du moment et les drops en cours. Un visiteur non connecté est redirigé vers la connexion.

Une PWA WordPress installable depuis le navigateur

Le manifeste et le service worker rendent le site installable sur l’écran d’accueil : il s’ouvre comme une application, sans barre d’adresse, aux couleurs de la marque. Les fichiers statiques sont servis depuis le cache, les pages passent d’abord par le réseau, avec un repli sur les pages déjà en cache hors connexion, et l’administration n’est jamais mise en cache. Sur Chrome pour Android, le bouton lance l’installation ; sur iPhone, il explique la marche à suivre dans Safari.

Une coque Flutter en WebView pour iOS et Android

L’application iOS et Android est une coque native écrite en Flutter : un seul code pour les deux systèmes, l’un des atouts que je détaille sur la page développeur Flutter freelance. Elle affiche le site en plein écran dans une WebView et ajoute les gestes d’une application : barre d’onglets native (Accueil, Galerie, Messages, Compte), glisser pour actualiser, bouton retour d’Android, écran hors ligne et écran d’erreur avec « Réessayer ». Les liens externes s’ouvrent dans le navigateur du téléphone. Les deux versions sont compilées sur Codemagic, un service d’intégration continue, où les étapes de signature et d’envoi vers les stores sont préparées.

Pourquoi une coque plutôt que des écrans natifs ?

Parce que tout le métier vit déjà dans WordPress : chaque évolution publiée sur inkyflash.fr arrive aussitôt dans l’application, sans double maintenance. Pour LSF-CFB, à l’inverse, j’ai développé des écrans Flutter natifs reliés à une API REST : l’étude de cas LSF-CFB montre l’autre approche. Je compare les deux dans l’article application native, hybride ou PWA, et je détaille la démarche dans transformer un site WordPress en application.

Le parcours client : trouver un flash, l’essayer, réserver

Côté client, tout part de la galerie de flashs, filtrable par style, par ville et par prix maximum. Chaque flash a sa fiche, avec un outil pour l’essayer sur sa peau, puis un accès direct au profil de l’artiste et à la réservation.

Une galerie filtrable et une carte des tatoueurs

Les filtres de la galerie sont traités côté serveur : ils fonctionnent sans JavaScript et produisent des pages indexables. Le client met des flashs en favoris et suit ses tatoueurs préférés. Le profil d’un artiste affiche le badge « Artiste vérifié », ses informations pratiques, son portfolio et ses avis. La carte utilise Leaflet, hébergé sur le serveur ; la ville de chaque artiste est géolocalisée par l’API Adresse de data.gouv.fr, un service public français, puis mise en cache.

« Essaie-le sur ta peau » : un aperçu qui reste sur le téléphone

Sur chaque fiche, le client choisit ou prend une photo de sa peau et y superpose le flash. Il le déplace, le redimensionne, le fait pivoter, règle l’opacité, active un fondu qui imite l’encre ou un effet miroir, puis enregistre l’aperçu en image. Tout se passe dans le navigateur : la photo n’est jamais envoyée au serveur.

La réservation en ligne : créneaux réels, acompte et consentement conservé

Sur cette plateforme de réservation de tatoueurs, le client choisit un créneau ouvert dans l’agenda de l’artiste (à défaut, il propose un horaire que le tatoueur confirme), puis décide de régler un acompte ou la totalité de la prestation. Avant de valider, il coche une case obligatoire de renonciation au droit de rétractation. Ce consentement est conservé comme preuve, horodaté, avec une empreinte (hachage SHA-256) de l’adresse IP plutôt que l’adresse en clair.

Un détail compte : quand un créneau de l’agenda est choisi, l’artiste est déduit de ce créneau et non d’un champ du formulaire, pour qu’on ne puisse pas réserver chez un tatoueur avec le créneau d’un autre. Ce sont les points que je vérifie en priorité sur toute application de réservation.

Un paiement réparti avec Stripe Connect

Stripe est intégré directement par son API, sans bibliothèque tierce. L’acompte passe par Stripe Checkout ; chaque tatoueur ouvre son compte Stripe Connect depuis son espace, et la commission de la plateforme est prélevée au paiement. Une notification de Stripe, dont la signature est vérifiée par le serveur, confirme la réservation. Les taux de commission et d’acompte se règlent dans le back-office, et l’abonnement des tatoueurs passe par Stripe Billing. La mise en service de ces paiements dépend de la configuration du compte Stripe de la société.

L’espace tatoueur : tout gérer sans ouvrir WordPress

Le tatoueur dispose d’un espace pro en libre-service, organisé en onglets : agenda, flashs, profil, paiements, abonnement, parrainage et justificatifs. Il n’a pas besoin d’ouvrir l’administration de WordPress pour gérer son activité.

  • Un agenda complet. Un calendrier FullCalendar en vue mois, semaine ou jour : créneaux libres, plages occupées, récurrences et congés. Le tatoueur confirme ou refuse un rendez-vous et le déplace par glisser-déposer ; un e-mail part à chaque action, un rappel la veille, et un lien iCal privé reporte ses rendez-vous dans son calendrier habituel.
  • Des flashs en libre-service. Création et modification avec envoi d’image. Les « Flash Drops » proposent un flash pendant 24 ou 48 heures, retiré automatiquement à l’échéance ; la rubrique d’accueil ne s’affiche que si un drop est réellement actif. Pas de fausse rareté.
  • Un parrainage entre tatoueurs. Code et lien d’invitation, récompense à la première prestation payée du filleul.
  • Des justificatifs protégés. Stockage privé, téléchargement réservé à leur propriétaire et à l’administrateur, qui les valide depuis le back-office.

Messagerie chiffrée, avis clients et modération

Client et tatoueur échangent dans une messagerie privée dont les messages sont chiffrés en base de données. Les avis, eux, ne peuvent venir que d’un client ayant réservé, et passent par une modération avant publication.

Chaque message est chiffré au repos en AES-256, avec une clé conservée côté serveur. L’accès est vérifié à chaque requête : seuls les deux participants lisent leur fil, aucune route ne permet de lire l’ensemble des échanges, et l’administration du site n’a aucun écran pour les consulter. Les photos jointes sont rangées dans un stockage privé, accessible aux deux seuls participants. Les messages arrivent en quasi temps réel par interrogation régulière du serveur, sans infrastructure WebSocket à maintenir.

Un client ne peut noter un artiste qu’après une réservation, et une seule fois. Il donne une note globale et quatre notes détaillées (qualité, propreté, accueil, respect du devis) ; l’avis est modéré avant publication. Sur le profil, la note moyenne est recalculée uniquement à partir des avis publiés.

Sécurité, RGPD et hébergement en France

La plateforme est hébergée en France, chez HaiSoft. Elle traite des données sensibles : photos, conversations, justificatifs professionnels, paiements. La protection est donc intégrée à chaque fonction plutôt qu’ajoutée à la fin.

  • adresse e-mail vérifiée avant la première connexion, tentatives limitées, mot de passe oublié qui ne révèle pas si un compte existe ;
  • jetons de sécurité, contrôle des droits et vérification de propriété dans les traitements sensibles, avec un script de recette automatisé qui rejoue les contrôles d’accès critiques ;
  • messages chiffrés, photos et justificatifs en stockage privé ;
  • espace RGPD dans le compte client : export des données et demande d’effacement, avec anonymisation des réservations ;
  • purge automatique : les notifications de plus de 90 jours et les créneaux passés non réservés sont supprimés chaque jour.

Les choix techniques : un thème et une extension métier séparés

J’ai séparé la présentation et la logique. Le thème inkyflash-theme s’occupe de la présentation ; l’extension inkyflash-marketplace porte tout le métier : comptes, réservation, agenda, messagerie, paiements, notifications, avis, géolocalisation et RGPD. Le thème peut donc changer un jour sans casser les fonctionnalités.

Inkyflash est ainsi un exemple de marketplace WordPress construite sans extension de marketplace prête à l’emploi : tout le métier est codé pour le projet. Je détaille cette séparation sur les pages développement de plugin WordPress et thème WordPress sur mesure. Le référencement est codé sans extension SEO, avec des données structurées pour chaque flash et chaque artiste. Pour la transmission, j’ai rédigé quatre guides PDF (administration, client, tatoueur, back-office) et réalisé un tutoriel vidéo du back-office.

Stack technique

CoucheTechnologieRôle
PlateformeWordPress, thème inkyflash-theme et extension inkyflash-marketplace (PHP 8)Présentation d’un côté, logique métier de l’autre
Application webPWA (manifeste et service worker)Installation depuis le navigateur, repli sur le cache hors connexion
Application mobileFlutter (Dart) et WebViewCoque iOS et Android avec barre d’onglets native
PaiementStripe Connect, Stripe Checkout, Stripe BillingAcompte, commission de la plateforme, abonnement des tatoueurs
AgendaFullCalendar, lien iCal privéCréneaux, récurrences, congés, rendez-vous reportés dans le calendrier du tatoueur
CarteLeaflet, API Adresse de data.gouv.frCarte des tatoueurs et géolocalisation des villes
SécuritéChiffrement AES-256, stockage privé, hachage SHA-256Messages chiffrés, justificatifs protégés, preuve de consentement
Intégration continueCodemagicCompilation iOS et Android, signature et envoi vers les stores préparés
HébergementHaiSoftServeur en France
Technologies utilisées sur Inkyflash

Où en est le projet

En octobre 2026, le site est en ligne sur inkyflash.fr et l’application s’installe depuis le navigateur. L’application iOS et Android est compilée ; sa publication sur les stores est en préparation.

Un nouveau lot est développé mais pas encore en ligne : un agenda simplifié en quatre actions, des photos de profil (bannière et avatar) et un module consacré aux conventions de tatouage. La connexion avec Google et Apple est codée mais pas encore activée ; les notifications push restent à ajouter à la coque Flutter.

Pour juger de mon travail sur des projets déjà livrés, les avis vérifiés de mes clients sont réunis sur la page avis clients Codeur.com.

Ce que j’en retiens

Dans une marketplace, la technique sert la confiance. Profils vérifiés, avis réservés aux clients ayant réservé, consentement conservé, messages chiffrés : chaque fonction répond à une question que se pose l’un des deux publics avant de s’engager.

Je retiens aussi qu’il n’existe pas une seule bonne architecture mobile. Quand la plateforme web porte déjà tout le métier et que le délai compte, une PWA puis une coque Flutter donnent vite une présence sur le téléphone, sans double maintenance. Quand l’application doit offrir une expérience entièrement native, je développe plutôt des écrans Flutter reliés à WordPress par une API REST, comme pour LSF-CFB : les deux options sont comparées sur la page application mobile WordPress. Dans tous les cas, la partie native mérite du soin : Apple attend d’une application qu’elle apporte plus qu’un site web reconditionné, un point que je détaille dans le guide pour publier une application sur l’App Store.

Vous préparez une marketplace ou une application de mise en relation entre clients et professionnels ? Trois questions se tranchent dès le cadrage : qui paie, à quel moment, et comment les professionnels sont vérifiés. La page prix d’une application mobile donne les fourchettes par type d’application ; pour la vôtre, demandez un devis en décrivant votre projet en quelques lignes : je vous réponds personnellement, et le cadrage est gratuit.

Un projet similaire en tête ?

Deux façons de commencer : un devis rapide, avec une première fourchette affichée tout de suite, ou une description guidée de votre projet, étape par étape. Je vous réponds personnellement, avec mes questions et une estimation.

Noté 4,87/5 sur Codeur.com