Aller au contenu

ADR-001 (learnkorean) — Client mobile : Capacitor

Statut : accepté (2026-07-19)

Contexte

La v1 vise Google Play, la v4 ajoutera le web et iOS — idéalement avec la même base de code. Je maîtrise HTML/CSS/JS/Tailwind (portfolio), mon temps est compté (alternance + Mastère), et la chaîne de build doit tourner self-hosted dans Woodpecker (pas de service de build cloud).

Comparatif pondéré

Question : avec quoi construire l'application mobile ?

1. Filtre éliminatoire (licence libre)

Flutter (BSD-3), React Native (MIT), Capacitor (MIT) : tous libres — aucun écarté. Écartés hors notation : app native Kotlin pure (pas de mutualisation web v4, courbe maximale), PWA seule (pas de présence Google Play, mon choix explicite).

2. Critères et pondérations (total = 100)

Critère Poids Pourquoi
Adéquation v1→v4 (Android now, web v4, hors-ligne possible) 30 La même base de code doit servir la roadmap entière
Compétences existantes / courbe 20 Temps limité : chaque semaine d'apprentissage retarde la v1
Build self-hosted en CI (APK dans Woodpecker) 15 Chaîne 100 % libre et chez nous, comme le reste
Valeur CV 15 Le projet est aussi une vitrine
Performance / ressenti natif 10 App de cartes et de quiz : exigence modérée
Écosystème et pérennité 10

3-4. Candidats et notation

Critère (poids) Capacitor 7 React Native + Expo Flutter
Adéquation v1→v4 (30) 5 — l'app EST une app web embarquée : le site v4 est déjà écrit ; hors-ligne via SQLite/IndexedDB 4 — Android ✓, web via react-native-web correct sans plus 3 — Android excellent, mais web rendu en canvas (lourd, SEO nul)
Compétences (20) 4 — HTML/JS/Tailwind déjà acquis 2 — React + outillage natif à apprendre 1 — Dart + paradigme widgets : tout est nouveau
Build CI self-hosted (15) 5 — build web + Gradle dans un conteneur, simple 3 — possible en local mais l'écosystème pousse vers EAS (cloud payant) 4 — image Docker flutter, correct
Valeur CV (15) 3 — moins « mobile natif » aux yeux des recruteurs 5 — React = énorme demande 4 — très demandé aussi
Performance (10) 4 — WebView moderne : largement suffisant pour des flashcards 5 5
Écosystème (10) 4 — porté par l'équipe Ionic, mature 5 5
Score pondéré / 5 4,30 3,80 3,30

5. Recommandation

Capacitor. C'est le seul candidat qui rend la roadmap cumulative : le code écrit pour la v1 Android est littéralement le site web de la v4, et iOS n'est qu'une cible de build supplémentaire. Avec mes compétences web déjà acquises, c'est aussi le chemin le plus court vers une v1 publiée. Ce que les chiffres ne captent pas : le ressenti « natif » est un cran en dessous de Flutter/RN — acceptable pour des cartes et des quiz, à réévaluer si un jour l'app devient très animée. Le manque à gagner CV est compensé par l'ADR-002 (React, compétence n°1 du marché front).

Décision

Capacitor 7. Je le valide le 2026-07-19 : une seule base de code web pour toute la roadmap (Android v1 → web v4 → iOS), buildée dans ma CI.

Conséquences

  • Une seule base de code web (React, cf. ADR-002) empaquetée par Capacitor ; plugins natifs (notifications, stockage) disponibles au besoin.
  • La CI construit l'APK/AAB avec Gradle dans un conteneur — à outiller en phase 3 (image Android SDK).
  • Signature de l'app et compte Google Play (25 $) à prévoir en phase 5.