Accueil / Projets / Ash

Ash — arrêter de fumer, preuves à l'appui

Une application d'arrêt du tabac qui suit les déclencheurs plutôt que les cigarettes. Widgets natifs sur iOS et Android, coach IA contextuel, protocole de crise de trois minutes. Application maison, publiée sur les deux stores.

Écran des objectifs d'Ash : 27 badges débloqués sur 67 et paliers de récupération santé validés
Écran Récupération Santé d'Ash : score de 65 sur 100 et carte corporelle des organes régénérés
Accueil d'Ash : 23 jours sans fumer, cigarettes évitées et argent économisé
Écran SOS Envie d'Ash : compte à rebours de 3 minutes et mini-jeu de diversion

Le produit

Ash est un compagnon d'arrêt du tabac. Pas un compteur de cigarettes de plus : un programme qui s'adapte à la personne. À l'inscription, un test de Fagerström et un diagnostic comportemental déterminent une méthode — arrêt net, réduction progressive ou approche flexible — avec des limites quotidiennes qui décroissent dans le temps.

Ensuite, chaque cigarette se logue avec son déclencheur et l'intensité de l'envie. Ces données alimentent une détection de schémas qui finit par dire à l'utilisateur ce qu'il ne voyait pas : que ses envies arrivent surtout après le déjeuner, ou le vendredi soir. Quand l'envie devient trop forte, un bouton SOS lance un protocole de trois minutes — respiration guidée, mini-jeux de diversion, coach conversationnel.

Le reste du produit sert à rendre l'abstinence tangible : une timeline de récupération corporelle où les organes se débloquent, un compteur d'argent économisé, des niveaux, des badges et des séries. Trois langues : français, anglais, espagnol.

Le défi technique

C'est le projet où on est allés le plus loin hors du périmètre JavaScript. Une application d'arrêt du tabac se joue sur la friction : si logger une cigarette demande d'ouvrir l'application, de la déverrouiller et de naviguer, l'utilisateur ne le fera pas. Il fallait donc que l'action soit possible depuis l'écran d'accueil du téléphone, sur les deux plateformes.

Sur iOS, ça veut dire un widget WidgetKit écrit en Swift, avec des AppIntents qui rendent le bouton du widget réellement interactif — on incrémente le compteur sans jamais ouvrir l'application. Sur Android, deux widgets rendus en React. Et pour que l'application et les widgets partagent le même état, un App Group commun, plus un module Expo écrit en Kotlin pour proposer l'épinglage du widget directement depuis l'application.

Sous le capot

  • Widgets natifs sur les deux plateformes — WidgetKit en Swift avec AppIntents interactifs côté iOS, widgets rendus en React côté Android, synchronisés via un App Group partagé.
  • Module Expo sur mesure en Kotlin — expose l'API Android d'épinglage de widget pour transformer l'ajout en un seul geste.
  • Trois fonctions serveur Deno — un coach IA dont le contexte contient l'état complet de l'utilisateur (jour du programme, série en cours, méthode, humeur récente, déclencheurs), un proxy de génération d'images qui garde la clé API hors du bundle, et un webhook d'abonnement signé.
  • Sécurité au niveau des lignes — trois migrations successives sur les politiques Postgres, dont une qui corrige des clauses d'écriture manquantes.
  • Résilience des données — à la réinstallation, les compteurs et badges sont fusionnés sans perte plutôt qu'écrasés, pour qu'un changement de téléphone ne remette jamais une série à zéro.
  • Notifications contextuelles — quatorze catégories, contenu localisé et rotation des messages pour éviter l'effet répétition qui fait désinstaller.
  • Tests A/B en production — deux variantes complètes de page d'abonnement et plusieurs parcours d'inscription, pilotés par les feature flags.
Expo SDK 54 RN 0.81 · New Arch React 19 · compiler Reanimated 4 Unistyles v3 WidgetKit · Swift Module natif Kotlin Supabase · RLS Edge Functions Deno Gemini RevenueCat PostHog · A/B i18n FR/EN/ES
Application maison, publiée sur l'App Store et Google Play, en version 2.2.2. On la maintient et on l'itère nous-mêmes — ce qui veut dire qu'on vit avec nos propres décisions techniques.

Aller plus loin

Un projet du même calibre ?

Décrivez-nous ce que vous voulez construire. On répond sous 24 h, et on vous propose un premier échange de 30 minutes sans engagement.

Parlons-en