Application iOS · Swift · SwiftUI · SQLite · Supabase
Qiyam
Une application de révision du Coran qui planifie chaque verset séparément, au lieu de découper la mémorisation en portions égales.
- Période
- Novembre 2025 — présent
- Contexte
- Projet personnel
- 250+
- Téléchargements
- 50+
- Pays
- 5,0
- Note App Store
- 3
- Mois
Le problème
La méthode habituelle découpe le texte mémorisé en portions égales et en révise une par jour. Un verset appris il y a dix ans reçoit donc autant de temps qu'un verset appris la semaine dernière. Je voulais que le temps de révision suive la fragilité réelle de chaque verset.
Ce que j'ai construit
- Chaque verset a sa propre échéance de révision, calculée par répétition espacée à partir de la note que l'utilisateur se donne. Un verset solide s'éloigne, un verset hésitant revient vite.
- Un second mécanisme décide comment regrouper les versets dus en séances cohérentes : des blocs d'une longueur lisible, qui ne traversent jamais la frontière d'une sourate. Séparer les deux permet de régler la charge quotidienne sans toucher au rythme d'apprentissage.
- Le planning est lissé au moment de la notation, puis figé. L'échéance idéale reste stockée à part et ne bouge pas. Sans cela, un planning recalculé chaque jour redéplace sans cesse les mêmes versets et donne l'impression d'un tapis roulant.
- L'application fonctionne d'abord hors ligne. Les 6 236 versets sont embarqués dans l'application et la base locale est la source de vérité. La synchronisation est arrivée ensuite, comme sauvegarde, jamais comme condition de démarrage.
- iOS natif plutôt qu'une solution multiplateforme. Le contenu est du texte arabe : police dédiée, lecture de droite à gauche, diacritiques. Je préférais maîtriser le rendu typographique directement.
Le rejet de l'App Store
Ma première soumission a été refusée en décembre 2025. C'était ma première application, et j'avais visé une version initiale avec abonnements et synchronisation cloud alors que je ne connaissais même pas l'existence d'App Store Connect. Il manquait des choses dans le code, et la configuration des abonnements n'était pas conforme.
J'ai coupé. La version publiée est entièrement gratuite et entièrement locale. Le développement s'est simplifié d'un coup et l'application est passée. Les abonnements sont revenus plus tard, en s'appuyant sur les composants d'Apple plutôt que sur un service tiers — ce sont précisément les points sur lesquels la validation achoppe.
Le site et le blog
qiyamapp.com accompagne l'application : présentation de la méthode, pages légales, et un blog en fichiers versionnés plutôt qu'un système de gestion de contenu. Publier passe donc par un commit, ce qui coûte un peu à chaque article mais supprime toute base de données et tout back-office. Les visuels de réseaux sociaux sont générés à partir de gabarits figés, dont seul le texte change.
Ce que je referais autrement
- Décider du modèle économique avant d'écrire la moindre ligne de code de paiement. Trois architectures d'abonnement en huit mois : la troisième est la bonne, les deux premières ont coûté des cycles entiers d'intégration et de soumission.
- Les algorithmes sont couverts par un banc d'essai qui fait vieillir des utilisateurs fictifs sur plusieurs mois simulés et vérifie que rien ne dérive. Mais rien ne lance ces tests automatiquement : leur exécution dépend de ma discipline. C'est le maillon faible du projet.