Étude de cas1word
À propos du projet
1Word est une plateforme intelligente de gestion des notifications conçue pour aider les utilisateurs à garder une trace de toutes les notifications importantes reçues sur les différentes applications de leur appareil. Dans l'environnement numérique actuel, les utilisateurs reçoivent un flux continu de notifications : codes de vérification, messages personnels, alertes bancaires et de paiement, suivis de livraison, offres promotionnelles, rappels et informations professionnelles. Les notifications importantes sont facilement effacées ou enfouies, ce qui les rend difficiles voire impossibles à retrouver ultérieurement. L'objectif de 1Word était de créer une solution mobile centralisée qui capture et organise automatiquement les notifications de chaque application, conserve un historique permanent et recherchable, et permet aux utilisateurs de retrouver ce dont ils ont besoin — non seulement par mots-clés et filtres d'applications, mais aussi grâce à des questions quotidiennes en langage naturel telles que « qu'est-ce que ma femme m'a demandé d'acheter vendredi dernier ? » ou « quand Alok m'a-t-il envoyé sa dernière fiche de paie ? ». Le résultat est une plateforme qui offre aux utilisateurs une mémoire recherchable pour l'historique des notifications de leur téléphone, accessible de la même manière qu'ils le demanderaient à une personne.
Exigences du client
"Le client nécessitait une application mobile moderne capable de capturer les notifications de toutes les applications installées et de les organiser dans un historique centralisé et recherchable en permanence — récupérable même après avoir été supprimé de l'appareil. Les exigences clés comprenaient :
• Capture automatique et en arrière-plan des notifications de toutes les applications
• Historique centralisé et persistant conservé localement et sur le cloud
• Recherche en langage naturel (pas seulement par correspondance de mots-clés), comprenant les relations (« ma femme »), les noms de personnes et les dates relatives (« vendredi dernier », « la dernière fois »)
• Filtrage des notifications par application, expéditeur, étiquette et catégorie
• Gestion efficace de volumes importants et croissants de notifications
• Navigation rapide et fluide dans l'historique des notifications
• Authentification sécurisée des utilisateurs et gestion des comptes multi-appareils
• API backend sécurisées gérant les fuseaux horaires pour une base d'utilisateurs mondiale
• Stockage de données cloud évolutif
• Fonctionnalités sous forme d'abonnement avec facturation in-app
• Expérience utilisateur mobile moderne et très performante
Le système devait également être conçu dans un souci d'évolutivité et de fiabilité, afin que l'application puisse continuer à capturer et synchroniser les notifications de manière constante sur un grand nombre d'appareils Android différents."
Solutions que nous avons fournies
"Ogma Conceptions a développé un écosystème complet Android, backend et IA pour la plateforme 1Word. L'application Android a été conçue avec Kotlin et Jetpack Compose pour offrir une interface utilisateur moderne, réactive et facile à maintenir, avec une architecture MVVM, Hilt pour l'injection de dépendances et Room pour la persistance locale. Les notifications sont capturées en arrière-plan via un service dédié (notification-listener) et stockées localement dès leur arrivée, afin que rien ne soit perdu même hors ligne.
Pour résoudre les problèmes de fiabilité en arrière-plan sur les différents constructeurs Android, la synchronisation a été bâtie sur WorkManager pour les tâches planifiées, soutenue par une solution de secours basée sur AlarmManager qui maintient la synchronisation même sur les appareils appliquants des restrictions de batterie agressives, avec récupération automatique au redémarrage.
Pour gérer efficacement de grands volumes de notifications, Paging 3 a été implémenté pour l'optimisation du chargement des données, permettant aux utilisateurs de naviguer en toute fluidité dans leur historique sans surcharger la mémoire. L'infrastructure backend a été développée avec Node.js (Fastify) et Python (FastAPI), répartie selon les responsabilités : le service Node.js gère l'authentification, le stockage, le marquage, les paiements et les comptes, tandis que le service Python dédié à l'IA convertit les questions en langage naturel en requêtes de base de données précises. Ce service utilise OpenAI pour la compréhension du langage, NLTK pour la reconnaissance d'entités nommées et la correspondance phonétique (Soundex) afin de reconnaître les surnoms ou orthographes approximatives.
Toutes les dates et heures sont normalisées en UTC lors de l'enregistrement puis converties selon le fuseau horaire de l'utilisateur lors de la consultation. MongoDB est utilisé comme base de données principale et Redis pour la mise en cache des recherches IA récurrentes.
L'architecture suit ce flux : Appareil de l'utilisateur → Capture des notifications → Application mobile → API Backend → Service de recherche IA → MongoDB → Recherche & Récupération.
L'application permet aux utilisateurs de :
• Conserver automatiquement un historique complet des notifications de chaque application
• Rechercher dans l'historique en utilisant un langage naturel et conversationnel
• Localiser les codes de vérification et messages importants
• Retrouver les alertes bancaires et financières
• Récupérer les offres promotionnelles et codes de réduction
• Accéder aux suivis de livraison
• Consulter les rappels et notifications professionnelles
• Filtrer et parcourir les notifications par expéditeur, application, étiquette ou catégorie"
Défis
L'un des défis majeurs consistait à capturer les notifications de manière fiable en arrière-plan, compte tenu de la grande diversité d'appareils et de fabricants Android et des conditions d'utilisation réelles. Certains systèmes de gestion de la batterie des fabricants (OEM) restreignent ou retardent considérablement les processus en arrière-plan, ce qui compromettait la synchronisation constante des notifications sur certains appareils.
Un second défi important était de dépasser la simple recherche par mots-clés. Les utilisateurs décrivent naturellement ce qu'ils recherchent en termes conversationnels — par lien de parenté (« ma femme »), par surnom ou orthographe approximative (« Alok ») et par repères temporels relatifs (« vendredi dernier », « la dernière fois ») plutôt que par des dates précises ou des noms de contacts exacts. Transformer ce langage courant en une requête de base de données précise et fiable — tout en respectant le fuseau horaire de chaque utilisateur — a nécessité la mise en place d'une chaîne de traitement du langage naturel (NLP) conçue sur mesure, plutôt que l'utilisation d'une recherche textuelle standard.
La gestion d'un volume potentiellement important et sans cesse croissant d'enregistrements de notifications, tout en garantissant la rapidité et la réactivité de l'application, représentait un autre défi de taille. Les utilisateurs peuvent accumuler des centaines, voire des milliers de notifications au fil du temps ; un chargement classique de cet historique aurait nui aux performances et accru la consommation de mémoire.
Enfin, la plateforme nécessitait une architecture capable d'assurer une synchronisation fluide et sécurisée entre l'application Android et divers services backend — y compris un service d'IA dédié à la recherche — sans compromettre la sécurité du contenu sensible des notifications, telles que les alertes bancaires ou les codes de vérification.
Caractéristiques principales
Suivi centralisé des notifications
L'application capture et organise les notifications provenant de toutes les applications installées, offrant aux utilisateurs un emplacement unique et permanent pour accéder à leur historique de notifications.
Recherche en langage naturel basée sur l'IA
Les utilisateurs peuvent poser des questions en langage courant — par expéditeur, relation, sujet ou date relative — et la plateforme les traduit en résultats précis, sans nécessiter de mots-clés exacts ni de défilement manuel.
Organisation par application et par expéditeur
Les notifications peuvent être filtrées selon l'application d'origine ou la personne les ayant envoyées, avec prise en charge des surnoms et des variantes orthographiques pour les noms des expéditeurs.
Chargement optimisé des données
La bibliothèque Paging 3 charge efficacement de grands volumes de notifications en arrière-plan, garantissant la rapidité et la réactivité de l'application, même avec un historique volumineux.
Capture fiable en arrière-plan
Un service d'écoute des notifications, couplé à WorkManager et à un mécanisme de secours via AlarmManager, assure une capture et une synchronisation constantes des notifications, y compris sur les appareils dotés de politiques restrictives de gestion de la batterie.
Interface utilisateur Android moderne
Jetpack Compose a été utilisé pour concevoir une interface moderne et réactive, offrant une grande facilité de maintenance ainsi qu'une expérience utilisateur cohérente.
Backend évolutif multi-services
Les services Node.js et Python FastAPI répartissent clairement les responsabilités entre la logique fondamentale de l'application et la recherche assistée par IA, favorisant ainsi une évolutivité optimale.
Gestion sécurisée des données avec prise en charge des fuseaux horaires
Tous les horodatages des notifications sont normalisés en UTC pour le stockage puis convertis selon le fuseau horaire local de chaque utilisateur ; la sécurité de chaque requête est assurée par une authentification basée sur les jetons JWT.
Gestion des abonnements et des comptes
L'application prend en charge des fonctionnalités basées sur l'abonnement, la gestion de comptes sur plusieurs appareils ainsi que la suppression complète du compte.
Résultat du projet
1Word a été développée avec succès en tant que plateforme intelligente de gestion des notifications, offrant aux utilisateurs une mémoire consultable de leurs notifications ; ils peuvent ainsi les interroger de la même manière naturelle qu'ils demanderaient à une personne de se les remémorer.
La plateforme permet aux utilisateurs de retrouver des informations importantes — qu'il s'agisse de codes de vérification, d'alertes bancaires ou de messages de proches — qui auraient pu être accidentellement ignorées ou perdues depuis le panneau de notifications de leur appareil.
En combinant Kotlin, Jetpack Compose et Paging 3 avec un backend évolutif basé sur Node.js et Python FastAPI — ainsi qu'un service d'IA dédié à la compréhension du langage naturel — la solution offre une expérience mobile réactive tout en assurant une recherche précise et efficace au sein d'un volume de données de notifications en constante augmentation.
Cette architecture modulaire et orientée services constitue également une base solide pour l'ajout futur de fonctionnalités et le développement continu de la plateforme





















