Je vais être honnête : lorsque Apple a annoncé Genmoji pour la première fois, notre équipe produit chez ViviDiary a eu un moment de panique collective.
Pendant des années, toute notre philosophie de suivi a été construite sur des contraintes. Vous ouvrez l'application, vous appuyez sur l'une des cinq humeurs principales (Génial, Bien, Moyen, Bas, Difficile), vous appuyez peut-être sur quelques émojis standard pour ajouter du contexte, et c'est terminé. Nous maintenons délibérément les choses sous contrainte car les contraintes sont synonymes de rapidité.
Mais iOS 27 a lancé un énorme défi dans notre écosystème. Soudain, les utilisateurs n'étaient plus limités à l'ensemble d'émojis Unicode standard. Ils pouvaient taper « pigeon épuisé tenant un minuscule café » et le système générait instantanément un émoji personnalisé.
Nous avons immédiatement su que nos utilisateurs voudraient cela. Mais nous savions aussi que les entrées infinies brisent la reconnaissance de formes. Comment construire un tableau de bord d'analyses hebdomadaires quand chaque point de données est une image unique générée par IA ?
Voici un aperçu de la façon dont nous concevons les fonctionnalités de journalisation de l'humeur par genmoji ios 27 pour ViviDiary, les obstacles techniques que nous avons rencontrés, et pourquoi nous avons finalement choisi le mappage d'invites textuelles plutôt que l'enregistrement d'images.
Réponse rapide : Comment ViviDiary traite les journaux d'humeur Genmoji sur iOS 27 1. L'utilisateur sélectionne un Genmoji (par exemple, « pigeon épuisé ») lors de son journal quotidien de 3 secondes. 2. Nous capturons l'invite textuelle sous-jacente plutôt que l'image lourde. 3. L'invite est désidentifiée et débarrassée de toute donnée personnelle. 4. Le système associe l'invite à une valence d'humeur standard (par exemple, « fatigué », « faible énergie »). 5. Les métadonnées désidentifiées sont enregistrées en toute sécurité dans notre architecture Supabase stockée dans le cloud pour générer vos analyses hebdomadaires.
---
Le défi d'iOS 27 : Quand les émojis deviennent infinis
Pour comprendre le problème, il faut comprendre comment fonctionne ViviDiary sous le capot. Nous sommes un outil de suivi modulaire de l'humeur et de la vie. La seule entrée requise est votre humeur principale. Tout le reste — mémos, notes vocales, photos et nos catégories d'émojis manuelles 22 — est strictement facultatif.
La beauté des émojis standard est qu'ils agissent comme des balises de données universelles et structurées. Si vous enregistrez l'émoji 🌧️ (pluie) et l'émoji 😞 (triste) trois fois en un mois, notre fonctionnalité hebdomadaire Mirror peut gentiment souligner une corrélation. Il existe une réelle validité psychologique à cela ; la science derrière l'enregistrement d'un émoji repose fortement sur un étiquetage affectif cohérent.
Genmoji brise cette cohérence.
Lors des premiers tests bêta pour la conception d'application de bien-être ios 27, nous avons vu des utilisateurs créer des avatars émotionnels incroyablement spécifiques. Un utilisateur a généré un « ballon dégonflé avec un visage souriant dessiné dessus ». Un autre a créé un « écureuil caféiné qui vibre ».
Ce sont des représentations brillantes et très précises d'émotions humaines complexes. Mais pour une base de données, un « ballon dégonflé » et un « écureuil qui vibre » ne sont que des fichiers image aléatoires. Ils n'ont aucune valeur relationnelle. Si nous laissions simplement les utilisateurs les déposer dans leurs journaux quotidiens, nous briserions complètement la découverte de modèles qui rend ViviDiary utile en premier lieu.
Ce que nous avons rejeté : Le piège de l'image brute
Notre premier prototype a pris le chemin de la moindre résistance : enregistrer simplement l'image Genmoji dans le journal quotidien de l'utilisateur.
Nous l'avons construit, testé en interne, et abandonné en une semaine.
Voici pourquoi nous l'avons rejeté :
- Encombrement de la base de données : Un émoji Unicode standard occupe environ 4 octets de stockage. Une image Genmoji générée pèse environ 50-100 kilo-octets. Si un utilisateur enregistre trois émojis personnalisés par jour, cela représente 100 Mo d'encombrement pur par an et par utilisateur. Multipliez cela par notre base d'utilisateurs, et nos coûts de serveur monteraient en flèche sans aucun avantage fonctionnel.
- Dégradation des performances : ViviDiary est rapide. Lorsque nous avons précédemment repensé notre écran d'accueil, nous avons explicitement priorisé une interaction de deux secondes par rapport aux éléments d'interface lourds. Charger une grille d'images personnalisées à chaque fois que vous ouvrez la vue calendrier provoquait des saccades notables.
- Le problème de la boîte noire : Si nous n'enregistrons que l'image, nous ne savons pas ce qu'elle signifie. Nous ne pouvons pas regrouper « pigeon épuisé » avec « chien fatigué » dans votre Mirror hebdomadaire. Les données deviennent visuellement riches mais analytiquement inutiles.
Nous avons réalisé que nous abordions le problème à l'envers. La valeur d'un Genmoji n'est pas l'image. La valeur est l'intention derrière l'image.
Tests A/B du mappage de l'invite à la valence
Au lieu d'enregistrer l'image, nous avons décidé de capturer l'invite textuelle que l'utilisateur a tapée pour générer le Genmoji.
Les API d'Apple permettent aux développeurs d'accéder au texte descriptif d'un Genmoji. Donc, lorsqu'un utilisateur dépose ce pigeon épuisé, nous n'enregistrons pas le PNG. Nous enregistrons la chaîne : `"exhausted pigeon holding a tiny coffee"`.
Mais nous devions toujours le catégoriser. Cela nous a ramenés à une décision produit clé que nous avons prise l'année dernière concernant pourquoi nous avons supprimé l'émoji d'humeur au profit d'un mappage de valence basé sur le texte.
Nous avons effectué un test A/B avec 400 utilisateurs bêta pour voir comment nous pouvions mapper ces invites personnalisées à notre échelle d'humeur standard à 5 niveaux (Génial, Bien, Moyen, Bas, Difficile) et à nos catégories d'émojis existantes.
* Groupe A (Contrôle) : Les utilisateurs enregistraient des Genmojis, et nous les enregistrions sous forme d'images brutes. Aucun mappage de modèle.
* Groupe B (Test) : Les utilisateurs enregistraient des Genmojis. Nous extrayions l'invite textuelle, la faisions passer par un script de catégorisation léger et désidentifié, et l'associions à une valence principale (par exemple, « pigeon épuisé » correspond à « Faible énergie »).
Les résultats :
Le groupe B a conservé ses habitudes de journalisation 38% mieux sur une période de 14 jours. Pourquoi ? Parce qu'à la fin de la semaine, le groupe B a reçu un rapport Mirror qui les comprenait réellement. L'application était capable de dire : « Nous avons remarqué que votre énergie était Basse les jours où vous avez enregistré des émojis personnalisés liés à l'« épuisement ». » Le groupe A a juste obtenu une galerie d'images étranges.
En nous concentrant sur l'invite plutôt que sur le pixel, nous avons réussi à prendre en charge le suivi de l'humeur par émoji personnalisé infini sans perdre les données structurées qui font fonctionner l'application.
Architecture des données : Stockage cloud désidentifié dans Supabase
Chaque fois que vous introduisez l'IA ou le traitement d'invites dans une application de journalisation, vous devez parler de confidentialité.
Il existe une tendance massive en ce moment dans l'espace des applications de bien-être à faire des déclarations générales sur la confidentialité absolue. Je vais être complètement transparent avec vous : nous utilisons un stockage cloud sécurisé et désidentifions votre texte, et nous pensons que la vraie confidentialité vient de la minimisation des données.
ViviDiary repose sur une architecture cloud axée sur la confidentialité construite sur Supabase. Vos données sont stockées dans le cloud.
Pourquoi ? Parce que la vraie confidentialité ne vient pas du fait de prétendre que le cloud n'existe pas ; elle vient d'une minimisation et d'une désidentification rigoureuses des données.
Lorsque vous enregistrez une invite Genmoji comme « frustré par mon patron », voici exactement ce qui se passe dans notre architecture :
- L'invite est séparée de votre identité utilisateur (UUID) à la périphérie.
- Le texte brut est débarrassé de tout nom identifiable à l'aide d'un filtre regex local avant même de quitter l'application.
- La chaîne désidentifiée (`"frustrated with [REDACTED]"`) est envoyée à notre backend Supabase.
- Notre backend catégorise l'émotion (Valence : Difficile, Étiquette : Frustration).
- Seules les métadonnées catégorisées et l'invite originale chiffrée sont stockées dans votre base de données cloud.
Nous traitons cela dans le cloud car cela nous permet d'exécuter des modèles de catégorisation beaucoup plus précis que ce que le processeur local d'un téléphone peut gérer, sans vider votre batterie. Nos fonctionnalités d'IA sont strictement facultatives, non pas parce que nous cachons des données localement, mais parce que la valeur fondamentale de ViviDiary est un journal de 3 secondes. L'IA est juste une aide optionnelle pour les jours où vous voulez plus de profondeur. Nous n'enregistrons ni ne confirmons jamais de contenu généré par IA sans votre examen explicite.
Pourquoi la journalisation principale doit rester sous 3 secondes
En fin de compte, chaque fonctionnalité que nous construisons doit justifier son existence face au temps.
Nous savons grâce à nos mesures internes que si un enregistrement quotidien prend plus de 30 secondes, la rétention des utilisateurs chute brutalement. C'est pourquoi nous ne faisons pas de séries de type pression. Nous ne faisons pas de pourcentages d'achèvement. Nous n'envoyons pas de notifications de culpabilité « vous avez manqué hier ! ».
Si vous utilisez notre module Focus (qui est désactivé par défaut), une Routine est juste quelque chose que vous voulez remarquer, et une Tâche est juste quelque chose que vous cochez. Il n'y a aucune punition pour avoir manqué une journée.
ViviDiary est entièrement gratuit pour tous les modules d'entrée, la journalisation illimitée de l'humeur et des émojis, une archive de calendrier de 3 mois, votre Mirror hebdomadaire, et jusqu'à 3 Routines / 5 Tâches. (Nous avons un niveau Premium pour 2.99 $/mois ou 11.99 $/an qui débloque des archives historiques plus profondes et des éléments Focus illimités, mais l'expérience principale est entièrement gratuite).
L'intégration de Genmoji avait le potentiel de ralentir tout ce processus. Les utilisateurs pourraient facilement se perdre à passer cinq minutes à créer l'émoji personnalisé parfait.
Pour contrer cela, nous avons fortement intégré le flux Genmoji dans notre système de journalisation de l'humeur basée sur les gestes. Vous balayez vers votre humeur principale, le clavier affiche instantanément vos Genmojis récemment utilisés aux côtés des émojis standard, vous appuyez, et vous avez terminé.
Si vous voulez passer du temps à en générer un nouveau, vous pouvez. Mais le chemin sans friction reste sous 3 secondes.
Et ensuite ?
Nous déployons actuellement le mappage de l'invite à la valence auprès de notre groupe bêta TestFlight. Le plus grand défi à l'heure actuelle est de gérer les cas limites — comme lorsqu'un utilisateur génère un Genmoji de « clown heureux en pleurs » et que notre moteur de catégorisation n'est pas tout à fait sûr s'il s'agit d'une bonne journée ou d'une journée difficile.
Mais c'est la partie amusante de la conception de produits. Vous construisez les contraintes, les utilisateurs trouvent de belles façons de les briser, et vous adaptez le système pour rattraper le retard.
Nous partagerons plus de données sur la façon dont les utilisateurs interagissent avec les émojis personnalisés le mois prochain, une fois qu'iOS 27 sera disponible au public. D'ici là, gardez vos journaux rapides, et ne vous inquiétez pas de briser vos séries.



