Les TypeConverters Room en 2026 : stocker enums, dates et listes sans corrompre votre schéma
Un guide pratique des TypeConverters Room sur Android — enums, Instant/LocalDate, et listes — ainsi que les erreurs qui transforment un converter en bug silencieux de corruption de données.
R8 et ProGuard pour Kotlin, Room et Compose : le crash qui n'arrive qu'en release
Pourquoi une app Android Room + Compose peut fonctionner parfaitement en debug et planter en production, et les règles keep R8/ProGuard précises qui l'évitent.
L'API In-App Review d'Android : demander une note sans être pénible
Un guide pratique de l'API In-App Review de Google — comment elle fonctionne réellement, quand la déclencher, et pourquoi la popup classique « notez-nous » nuit discrètement à votre note sur le Play Store.
Raccourcis d'application et tuiles de Paramètres rapides sur Android : enregistrer de l'eau sans ouvrir l'application
Un guide pratique de l'API dynamique ShortcutManager et de TileService sur Android — comment permettre à une action en un tap de contourner complètement l'application, avec les pièges qui font trébucher la plupart des implémentations.
Les types de services au premier plan sur Android en 2026 : choisir celui auquel votre fonctionnalité correspond vraiment
Un guide pratique des restrictions de types de services au premier plan d'Android — dataSync, mediaPlayback, specialUse, shortService — et comment choisir le bon sans se faire tuer ou rejeter.
StateFlow vs SharedFlow dans Jetpack Compose : modéliser l'état UI sans le bug de replay
Quand utiliser StateFlow et quand utiliser SharedFlow dans un ViewModel Compose — et le bug d'événement unique qui apparaît quand on les confond.
Les index de base de données Room en 2026 : trouver la requête réellement lente et la corriger
Un guide pratique pour indexer une base Room/SQLite sur Android — lire EXPLAIN QUERY PLAN, ajouter @Index sans deviner, et les erreurs qui neutralisent un index en silence.
@Relation de Room : interroger des données un-à-plusieurs sur Android sans requêtes N+1
Un guide pratique de l'annotation @Relation de Room — modéliser des données un-à-plusieurs comme des catégories et des entrées sans requêtes N+1 ni jointures manuelles.
Navigation typée dans Jetpack Compose : les routes comme données, pas comme chaînes de caractères
Comment remplacer les routes Compose Navigation basées sur des chaînes par des objets Kotlin sérialisables — arguments typés, graphes imbriqués, et deep links qui survivent à un refactoring.
Android 16 Live Updates : afficher le minuteur de concentration de Mintly sur l'écran de verrouillage
Un guide pratique des notifications centrées sur la progression d'Android 16 — segments ProgressStyle, notifications continues promues, et ce qu'elles apportent à un minuteur Pomodoro actif.
Les canaux de notification Android en 2026 : concevoir des niveaux d'importance que les utilisateurs ne couperont pas
Un guide pratique des canaux de notification Android — niveaux d'importance, groupes de canaux, pourquoi les réglages se figent après création, et comment migrer sans perdre la confiance des utilisateurs.
Paging 3 avec Room : garder une liste de transactions fluide sur Android en 2026
Comment paginer une liste de transactions adossée à Room avec Jetpack Paging 3 pour que des années de données restent fluides dans Compose — pas de RemoteMediator, pas de réseau, juste une base de données locale bien faite.
La migration Android vers les pages mémoire de 16 Ko : ce qui casse vraiment et comment vérifier ton APK
Google exige désormais que les apps Android prennent en charge les pages mémoire de 16 Ko. Voici ce que ça change en pratique, pourquoi les bibliothèques natives sont celles qui cassent, et comment vérifier que la tienne est sûre.
La concurrence structurée sur Android en 2026 : scopes, annulation et les fuites qu'elle évite
Un guide pratique de la concurrence structurée Kotlin sur Android — viewModelScope contre lifecycleScope, pourquoi l'annulation se propage, et les fuites de coroutines qu'elle élimine silencieusement.
La recomposition dans Jetpack Compose : ce qui la déclenche vraiment, et pourquoi j'ai arrêté de deviner
Un guide pratique de la recomposition Jetpack Compose en 2026 — stabilité des types, lambdas instables, clés LazyColumn, et comment lire le rapport de métriques du compilateur.
La recherche plein texte dans Room : ajouter une recherche instantanée à une app Android local-first en 2026
Un guide pratique du support FTS4 de Room sur Android — construire une table virtuelle de recherche, la synchroniser avec des triggers, et pourquoi FTS5 exige une migration manuelle.
Sauvegarder des données local-first sur Android en 2026 : export SAF, Auto Backup, et un flux de restauration fiable
Comment les applications Android local-first sauvegardent les données utilisateur sans serveur : export/import SAF, Auto Backup for App Data, et une restauration qui vérifie avant d'écraser.
Tester une application Android local-first en 2026 : Room, Flow et les tests Compose UI qui détectent de vrais bugs
Une stratégie de test pratique pour les applications Android local-first en 2026 — tests DAO Room en mémoire, Turbine pour Flow, et les quelques tests Compose UI qui valent vraiment la peine.
L'authentification biométrique sur Android en 2026 : BiometricPrompt, le Keystore et le verrouillage d'une app local-first
Un guide pratique d'androidx.biometric sur Android — BiometricPrompt, clés adossées à un CryptoObject, repli sur les identifiants de l'appareil, et les erreurs qui font qu'une empreinte digitale ne protège rien.
L'accessibilité sur Android en 2026 : une checklist TalkBack et sémantique Compose qui tient la route
Une checklist pratique d'accessibilité Android pour 2026 — TalkBack, sémantique Compose, zones tactiles et la passe de test que je fais sur chaque écran avant publication.
Health Connect sur Android en 2026 : lire et écrire des données sans renoncer au local-first
Un guide pratique de l'API Health Connect d'Android en 2026 — permissions, lectures en arrière-plan, et pourquoi une app local-first devrait la traiter comme optionnelle, pas comme une vérité absolue.
Edge-to-edge et retour prédictif sur Android en 2026 : ce qui est désormais obligatoire, et comment ne pas casser votre interface
L'edge-to-edge est désormais imposé sur API 35+ et le retour prédictif est le geste par défaut. Un guide pratique sur les insets Compose, WindowInsets et PredictiveBackHandler.
Jetpack DataStore en 2026 : migrer depuis SharedPreferences sans perdre un seul réglage
Un guide pratique pour passer de SharedPreferences à Jetpack DataStore sur Android — les pièges asynchrones, le chemin de migration qui préserve les valeurs existantes, et comment le tester.
Le scan de codes-barres avec ML Kit sur Android en 2026 : comment Stocky ajoute un article au garde-manger en moins d'une seconde
Un guide pratique 2026 du scan de codes-barres sur l'appareil avec ML Kit et CameraX : réglage des formats, recherche produit hors ligne, et le calcul d'usage partiel d'une app de garde-manger.
Les migrations de base de données Room en 2026 : faire évoluer un schéma sans perdre une seule ligne
Un guide pratique des migrations de base de données Room sur Android — AutoMigration, objets Migration écrits à la main, et comment tester une migration avant que vos utilisateurs ne trouvent le bug.
Baseline Profiles sur Android : ce qui change vraiment votre temps de démarrage à froid en 2026
Un guide pratique des Baseline Profiles Android — les générer avec Macrobenchmark, les brancher dans Gradle, mesurer le vrai gain, et les trois autres leviers du démarrage à froid.
Jetpack Glance en 2026 : construire un widget d'écran d'accueil qui ne ment jamais sur vos données
Un guide pratique des widgets Jetpack Glance sur Android — état, actions de clic, et le piège du quota de mise à jour qui affiche des données périmées.
Construire Subly : les calculs de calendrier derrière les dates de renouvellement d'abonnement
Prédire la prochaine date de prélèvement d'un abonnement semble trivial jusqu'à ce qu'on tombe sur la facturation en fin de mois, les années bissextiles et les conversions d'essai. Voici comment Subly y arrive, sur l'appareil.
Construire Mintly : garder un minuteur de focus précis quand Android veut tuer le processus
Un minuteur Pomodoro en cours d'exécution pose un problème de fiabilité plus difficile qu'un simple rappel ponctuel. Voici comment Mintly survit au mode Doze, à la mort du processus et à la dérive écran éteint grâce à un service au premier plan et une heure de fin en temps réel.
Comment je publie des applis Android en solo en 2026
Un vrai guide de lancement de bout en bout pour publier seul une appli Android en Kotlin + Compose en 2026 — cadrage, développement, fiche Play Store et les détails ennuyeux qui décident si vous publiez un jour.