Bambu Bar
Monitor Bambu Lab printers from your Mac menu bar: print progress, the live camera, AMS filament, alerts and desktop widgets. Bambu Bar for macOS 26+.
Momentum : démo en ligne de la to-do list gamifiée, noir et blanc, 100 % locale.
Translation pending
ProductivityDart · HTMLGitHub @lucaslleOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Momentum : to-do list gamifiée en Flutter, 100 % locale (SQLite), avec routines, séries, XP et quête du jour.
Translation pending
Loading the full README.
Read the full README ↗Une to-do list gamifiée, noir et blanc, 100 % locale. Aucun compte, aucun serveur, aucune API : tâches, routines, série, XP et statistiques vivent dans une base SQLite sur le téléphone.
Implémentation Flutter de la maquette Momentum — to-do gamifiée.
Démo en ligne : lucaslle.github.io/TODOapp. Sur ordinateur, l'app s'affiche dans un cadre d'iPhone ; sur téléphone, elle occupe tout l'écran. Huit semaines d'historique d'exemple sont déjà remplies et les données restent dans le navigateur.
Les APK de release sont dans build/app/outputs/flutter-apk/ :
| Fichier | Pour qui |
|---|---|
app-release.apk | Universel — marche sur tous les téléphones |
app-arm64-v8a-release.apk | Téléphones Android récents (le plus léger) |
Copie le fichier sur le téléphone, ouvre-le, et autorise l'installation depuis des sources inconnues si Android le demande.
Les APK sont signés avec la clé de debug de Flutter. C'est suffisant pour une installation perso ; il faudra une vraie keystore pour publier sur le Play Store ou pour livrer des mises à jour installables par-dessus.
flutter build apk --release
La démo est publiée sur GitHub Pages à chaque push sur main
(.github/workflows/web-demo.yml), avec l'APK Android à côté (momentum.apk,
téléchargeable par le QR code de la page). Pour la construire en local :
dart run sqflite_common_ffi_web:setup
flutter build web --release --dart-define=MOMENTUM_DEMO=true --no-web-resources-cdn
MOMENTUM_DEMO=true remplit une installation neuve avec huit semaines
d'historique cohérent (seed_demo_data_use_case.dart) : série de 24 jours,
record de 31, un gel dépensé, niveau 13 à quelques XP du suivant. Sur le web,
SQLite tourne en WebAssembly et sa base vit dans IndexedDB ; le rappel du soir
est absent.
Le jour. À chaque ouverture, Momentum rattrape les jours écoulés : les jours
passés sont archivés en day_logs, les tâches ponctuelles encore ouvertes
remontent à aujourd'hui, et les routines actives réimpriment leurs étapes. Une
étape de routine manquée reste sur le jour qui la demandait.
L'XP. Chaque liste porte sa propre récompense (Maison 10, Routine et Focus
15, Famille 25). Fermer une tâche paie ; la rouvrir reprend. L'échelle des
niveaux est définie dans level.dart et reprend les paliers de la maquette
(6 Régulière, 7 Constante, 8 Fiable, 9 Inébranlable).
La quête du jour. Trois étapes de routine fermées dans la journée paient un bonus de 40 XP, une fois par jour.
La série. Un jour compte dès qu'une tâche y est fermée. Un jour qui ne demandait rien est neutre (« repos »), il ne casse rien. Un jour manqué est couvert par un gel — deux par mois calendaire.
Les stats. Tout est calculé depuis les tâches réellement fermées : la régularité sur 28 jours comparée aux 28 précédents, l'XP par jour de la semaine en cours, et des tendances qui n'apparaissent que quand l'historique permet de les défendre.
Le rappel du soir. Une notification locale à 20h30, replanifiée à chaque changement d'état et annulée dès qu'il ne reste plus rien d'ouvert.
Architecture OSDD : couches techniques réutilisables d'un côté, couche fonctionnelle métier de l'autre, en clean architecture.
lib/
main.dart composition root (câblage des gateways)
layers/
technical/
theme/ couleurs, typo, motion, icônes, widgets de base
persistence/ connexion sqflite et schéma
notifications/ planification des notifications locales
formatting/ noms de jours et de mois en français
functional/
habit_tracker/
domain/ entités, contrats de gateway, use cases
data/ modèles de ligne, data sources SQL, gateways
presentation/ cubit, vues, widgets
Le domaine ne connaît ni Flutter, ni SQL : il est testé sans base de données via
les doublures de test/fakes/.
flutter test
60 tests : l'échelle des niveaux, les données de la démo, la série et ses gels, la bascule de jour, la complétion et son bonus de quête, plus le rendu de chaque écran à taille téléphone (un débordement de layout y fait échouer le test).