Du vibe-coding à l'App Store en un week-end : retour d'expérience
Mon carlin pèse 7,2 kg. C'est trop ? Pas assez ? Ca dépend de son âge, de son stade de vie, de s'il est stérilisé ou non. Et ça, aucune app sur l'App Store n'est capable de me le dire. J'ai vérifié.
Pendant des années, j'ai fait avec les moyens du bord. Une base Notion pour les vaccins. Des Rappels iOS pour les plis du visage. Une note pour le poids. Un raccourci Siri pour le bain. Quatre outils, aucun lien entre eux, et surtout aucun qui comprenne quoi que ce soit aux carlins. Quand Apple a intégré Claude Agent nativement dans Xcode, je me suis dit que c'était peut-être le moment d'arrêter de bricoler.
Un week-end plus tard, l'app était sur l'App Store. Validée du premier coup.
Le carlin, un problème de niche parfait
Petit aparté pour ceux qui ne connaissent pas la race. Le carlin, c'est un chien merveilleux et une catastrophe médicale ambulante. Museau écrasé, voies respiratoires étroites, yeux proéminents et fragiles, plis faciaux qu'il faut nettoyer tous les jours sous peine d'infection. Son poids idéal tient dans un mouchoir de poche, entre 6 et 8 kg, et il grossit en regardant une croquette. Les rappels de vaccins, c'est un calendrier à part entière.
J'ai cherché une app pour gérer tout ça. Il en existe des dizaines pour les animaux de compagnie : 11Pets, PetDesk, DogLog, Pet First Aid. Elles sont toutes généralistes. Aucune ne sait qu'un carlin de 5 mois devrait peser entre 2 et 3 kg. Aucune ne propose un suivi des plis faciaux. Aucune ne connaît la sensibilité à la chaleur des races brachycéphales. Le créneau "une app dédiée à une seule race" n'existe tout simplement pas sur l'App Store.
C'est le genre de problème invisible de l'extérieur. Si vous n'avez pas de carlin, vous ne voyez pas le besoin. Si vous en avez un, vous le vivez tous les jours.
1300 lignes de specs avant d'ouvrir Xcode
Le vibe-coding a une réputation. On tape un prompt, l'IA crache du code, ça marche. La réalité, c'est l'inverse. Plus le prompt est vague, plus le résultat est inutilisable. La vraie compétence du vibe-coding, ce n'est pas de coder. C'est d'écrire des specs.
J'ai passé une matinée entière sur un fichier CLAUDE.md. 1300 lignes. Ce n'est pas un brief de trois paragraphes envoyé à la va-vite. C'est un cahier des charges complet qui décrit l'architecture attendue (MVVM strict, SwiftData, SwiftUI), la structure de navigation, les modèles de données avec leurs enums, la palette de couleurs, et surtout les données de santé du carlin.
Pour cette dernière partie, j'ai fait de vraies recherches vétérinaires. Les seuils de poids par stade de vie (chiot, junior, adulte, senior). Les fréquences de nettoyage recommandées pour les plis, les yeux, les oreilles. Le protocole vaccinal en vigueur en France et à l'international. L'IA génère du code, pas de l'expertise vétérinaire. Si les données du cahier des charges sont fausses, l'app sera fausse, avec une architecture impeccable et des tests qui passent au vert. C'est presque pire.
J'y reviendrai, mais cette étape représente à mon sens 80% du vrai travail. Le reste, c'est de l'exécution.
Ce que Claude Code a produit en un après-midi
J'ai lancé Claude Agent dans Xcode avec mon CLAUDE.md de 1300 lignes. Ce qui est sorti du premier run : une architecture MVVM complète. Des modèles SwiftData. Un suivi des repas avec statistiques hebdomadaires. Un suivi du poids avec courbe Swift Charts. Un système de soins quotidiens avec indicateurs vert/orange/rouge. Des rappels de vaccins avec dates de rappel. Une fiche vétérinaire avec export PDF. Un Tip Jar via StoreKit 2. Et 12 fichiers de tests unitaires qui couvrent les transitions entre stades de vie, les seuils de poids, les statuts de soins, les calculs de dates.
Le tout sans une seule dépendance externe. Zéro package tiers. Pas d'API, pas de serveur, pas de cloud, pas de Firebase, pas d'analytics. Tout tourne en local sur l'iPhone.
C'est impressionnant. Je n'aurais pas été capable de produire ça moi-même en si peu de temps. Probablement pas en plusieurs semaines.
Mais le design était hideux.
Claude Code avait généré une interface fonctionnelle mais sans âme, basée sur une palette Catppuccin. C'était propre, technique, et ça ressemblait à n'importe quelle app de productivité. Pas à quelque chose que des gens qui photographient leur carlin 12 fois par jour auraient envie d'ouvrir.
J'ai passé la soirée à chercher une direction. J'ai regardé des dizaines d'apps. J'ai fini par m'inspirer de Finch, une app de bien-être avec un univers visuel très doux, pour créer ce que j'ai appelé la palette "Pugify Latte" : fond crème chaud (#FFF8F0), accents pastel, typographie arrondie, ambiance kawaii et chaleureuse. J'ai écrit un nouveau prompt de redesign et relancé Claude Code.
Le résultat n'avait plus rien à voir. Même code, même fonctionnalités, une toute autre émotion.
La leçon tient en une phrase : l'IA implémente une vision. Elle n'en a pas.
L'autre moitié du travail
Quand l'app tourne sur le simulateur, on a l'impression d'avoir fini. En réalité, on est à mi-chemin.
Il faut des screenshots App Store. Six en français, six en anglais, avec des mockups iPhone, des textes accrocheurs, un fond de couleur cohérent. J'ai fait ça dans Canva. L'icône de l'app, un carlin stylisé en 1024x1024, je l'ai générée avec Gemini. Il faut une page de support et une politique de confidentialité, c'est obligatoire pour soumettre. Je les ai déployées sur mon VPS Hetzner, intégrées à mon site Next.js existant via Coolify, bilingues français-anglais. Deux descriptions App Store complètes, des mots-clés optimisés pour l'ASO, du texte promotionnel.
Et puis il y a App Store Connect. Créer trois produits In-App Purchase pour le Tip Jar (0,99, 2,99 et 4,99 euros). Remplir le formulaire fiscal W-8BEN parce qu'Apple est américain et que je suis micro-entrepreneur français (il existe une convention fiscale FR-US, article 12, qui ramène la retenue à la source à 0% sur les royalties logicielles, il faut le savoir). Configurer un compte bancaire. S'inscrire au Small Business Program d'Apple pour payer 15% de commission au lieu de 30%.
Rien de tout ça n'est difficile. Mais c'est du travail réel, incompressible, et l'IA n'y change strictement rien.
Soumise un dimanche soir, approuvée le lundi matin
J'ai cliqué sur "Submit to App Review" un dimanche soir en m'attendant à un rejet. La majorité des développeurs, surtout sur une première app, ont au moins un aller-retour avec l'équipe de review. Le lundi matin, Pugify était approuvée. Zéro remarque. Zéro demande de modification.
Je pense que la raison est simple : il n'y avait rien à trouver. Pugify ne collecte aucune donnée. Pas d'analytics, pas de compte utilisateur, pas de tracking. Le questionnaire App Privacy d'Apple se résume à un seul "No". La note pour les reviewers tenait en une ligne : "Free pug health tracker. No login. Tip Jar via StoreKit 2 consumable products." Quand il n'y a rien à chercher, le review passe vite.
La suite a été moins linéaire. L'app était visible aux Etats-Unis immédiatement, mais bloquée dans les 27 pays de l'Union Européenne. Le Digital Services Act exige que les développeurs se déclarent "commerçants" pour distribuer dans l'UE. Formulaires à remplir, vérification à attendre, et un appel téléphonique au support Apple pour débloquer le tout. Quelques heures et un peu de patience plus tard, Pugify était disponible dans 175 pays. Le premier tip, 0,99 euro, est arrivé dans la foulée. La boucle était bouclée.
Ce que le vibe-coding change vraiment
✔ Ce que l'IA fait mieux que moi
Générer du code structuré à partir de specs claires. L'architecture, les modèles, les vues, les tests, c'est rapide et propre. Implémenter des patterns bien documentés (StoreKit 2, notifications locales, export PDF). Produire en un après-midi ce qui m'aurait pris des semaines en développement iOS natif.
Je ne suis pas développeur Swift de formation. Le vibe-coding m'a permis de contourner cette barrière technique sans sacrifier la qualité du résultat. C'est un changement réel.
⚠ Ce que l'IA ne fait pas à ma place
Trouver la bonne idée. C'est moi qui savais qu'aucune app n'était dédiée à une seule race de chien. C'est moi qui vivais le problème depuis des années.
Avoir du goût. C'est moi qui ai rejeté le premier design et qui ai passé une soirée à chercher la bonne direction visuelle.
Naviguer dans l'écosystème Apple. Les formulaires fiscaux, la conformité européenne, les screenshots aux bonnes dimensions, l'ASO. Tout ça reste du travail humain, méticuleux, et indispensable.
Le vibe-coding ne transforme pas n'importe qui en développeur. Il transforme quelqu'un qui sait ce qu'il veut construire en quelqu'un qui peut le construire. La nuance est importante. Sans vision produit claire et sans specs précises, l'IA produit du bruit avec de la syntaxe correcte.
Conclusion
En un week-end, je suis passé d'un bricolage Notion vieux de plusieurs années à une vraie app native sur l'App Store. Pas un prototype, pas une démo. Une app complète avec suivi de santé, rappels de vaccins, courbes de poids, export vétérinaire et Tip Jar. Approuvée du premier coup par Apple.
Ce qui m'a le plus marqué, ce n'est pas la vitesse de génération du code. C'est le déplacement du travail. J'ai passé plus de temps à rédiger des specs qu'à "coder". Plus de temps dans App Store Connect que dans Xcode. Le code est devenu le maillon le plus automatisable de la chaîne.
La vraie question n'est plus "est-ce que je sais coder ?". C'est "est-ce que je sais ce que je veux construire, et est-ce que je suis capable de le décrire avec précision ?"
Si la réponse est oui, le vibe-coding fait le reste.
Questions ? Vous pouvez me joindre sur LinkedIn ou utiliser le formulaire de contact.
Par Gauthier Huguenin