正直に言います。Appleが初めてGenmojiを発表したとき、ViviDiaryのプロダクトチームは全員でパニックに陥りました。

長年、私たちのトラッキング哲学は制約の上に成り立っていました。アプリを開き、5つの主要な気分(最高、良い、普通、低い、つらい)のいずれかをタップし、必要に応じて標準的な絵文字をいくつかタップしてコンテキストを追加すれば完了です。私たちが意図的に物事を制限しているのは、制約がスピードにつながるからです。

しかし、iOS 27は私たちのエコシステムに大きな変化をもたらしました。突然、ユーザーは標準のUnicode絵文字セットに限定されなくなりました。「小さなコーヒーを持った疲れ切ったハト」と入力すれば、システムが即座にカスタム絵文字を生成するようになったのです。

私たちはすぐにユーザーがこれを望むだろうと確信しました。しかし同時に、無限の入力はパターン認識を壊すことも理解していました。すべてのデータポイントが完全にユニークなAI生成画像である場合、どうやって週次インサイトのダッシュボードを構築すればよいのでしょうか?

ここでは、ViviDiaryにおけるgenmoji mood logging ios 27機能の設計方法、私たちが直面した技術的なハードル、そしてなぜ最終的に画像アセットを保存するのではなくテキストプロンプトマッピングを選択したのかについて解説します。

クイックアンサー:ViviDiaryがiOS 27のGenmoji気分ログを処理する方法 1. ユーザーは毎日の3秒のログ記録中にGenmoji(例:「疲れ切ったハト」)を選択します。 2. 私たちは重い画像アセットではなく、基となるテキストプロンプトをキャプチャします。 3. プロンプトは非識別化され、個人データが削除されます。 4. システムはプロンプトを標準的な気分の価(例:「疲労」、「エネルギー低下」)にマッピングします。 5. 非識別化されたメタデータは、週次インサイトを生成するためにクラウドストレージであるSupabaseアーキテクチャに安全に保存されます。

---

iOS 27の衝撃:絵文字が無限になったとき

この問題を理解するには、ViviDiaryの仕組みを知る必要があります。私たちはモジュール式の気分・ライフトラッカーです。必須の入力は「主要な気分」のみです。それ以外(メモ、ボイスメモ、写真、そして22個の標準絵文字カテゴリ)はすべて完全にオプトインです。

標準絵文字の利点は、それらが普遍的で構造化されたデータタグとして機能することです。もし1ヶ月の間に🌧️(雨)と😞(悲しい)の絵文字を3回記録すれば、私たちの週次「ミラー」機能がその相関関係を優しく指摘できます。これには心理学的な妥当性があります。絵文字を記録する背後にある科学は、一貫した感情のラベル付けに大きく依存しているからです。

Genmojiはその一貫性を打ち砕きます。

ios 27 ウェルネスアプリ設計の初期ベータテストでは、ユーザーが非常に具体的な感情のアバターを作成している様子が見られました。あるユーザーは「顔が描かれたしぼんだ風船」を生成し、別のユーザーは「振動するカフェイン中毒のリス」を作成しました。

これらは複雑な人間の感情を非常に正確に表現した素晴らしいものです。しかし、データベースにとって「しぼんだ風船」や「振動するリス」は単なるランダムな画像ファイルに過ぎません。それらには関係値がありません。もしユーザーがこれらを毎日のログに自由にドロップできるようにすれば、ViviDiaryを有用なものにしているパターン発見機能が完全に壊れてしまいます。

カスタムの疲れ切ったハトの絵文字が低い気分にマッピングされているgenmoji mood logging ios 27インターフェース
カスタムの疲れ切ったハトの絵文字が低い気分にマッピングされているgenmoji mood logging ios 27インターフェース

私たちが拒否したもの:生の画像アセットという罠

最初のプロトタイプでは、最も抵抗の少ない方法、つまりGenmojiの画像アセットをユーザーの毎日のログにそのまま保存する方法をとりました。

私たちはそれを構築し、内部でテストしましたが、1週間以内に廃止しました。

私たちがそれを拒否した理由は以下の通りです。

  1. データベースの肥大化: 標準のUnicode絵文字は約4バイトのストレージを消費します。生成されたGenmoji画像アセットは約50~100キロバイトです。ユーザーが1日に3つのカスタム絵文字を記録すると、ユーザー1人あたり年間100MBの純粋な肥大化となります。これをユーザーベース全体に掛け合わせると、機能的なメリットがないにもかかわらずサーバーコストが急騰してしまいます。
  2. パフォーマンスの低下: ViviDiaryは高速です。以前ホーム画面を再設計した際、私たちは重いUI要素よりも2秒以内のインタラクションを優先しました。カレンダービューを開くたびにカスタム画像アセットのグリッドを読み込むと、目に見えるカクつきが発生しました。
  3. ブラックボックス問題: 画像のみを保存する場合、その意味が分かりません。週次「ミラー」で「疲れ切ったハト」と「疲れた犬」をグループ化することができません。データは視覚的に豊かになりますが、分析には役に立たなくなります。

私たちは問題を逆に捉えていたことに気づきました。Genmojiの価値は画像そのものではなく、その背後にある「意図」にあります。

プロンプトから価(Valence)へのマッピングのA/Bテスト

画像を保存する代わりに、ユーザーがGenmojiを生成するために入力したテキストプロンプトをキャプチャすることにしました。

AppleのAPIでは、開発者がGenmojiの記述テキストにアクセスできます。そのため、ユーザーが「疲れ切ったハト」をドロップしたとき、私たちはPNGを保存するのではなく、`"exhausted pigeon holding a tiny coffee"`という文字列を保存します。

しかし、それでも分類が必要でした。これは、私たちが昨年行った気分絵文字を廃止し、テキストベースの価マッピングを採用するという重要なプロダクト決定に立ち返るものでした。

私たちは400人のベータユーザーを対象にA/Bテストを実施し、これらのカスタムプロンプトを標準の5段階の気分スケール(最高、良い、普通、低い、つらい)および既存の絵文字カテゴリにどのようにマッピングできるかを検証しました。

* グループA(コントロール): ユーザーはGenmojiを記録し、私たちはそれを生の画像として保存しました。パターンマッピングは行いません。
* グループB(テスト): ユーザーはGenmojiを記録します。私たちはテキストプロンプトを抽出し、軽量な非識別化分類スクリプトに通して、主要な価にマッピングしました(例:「疲れ切ったハト」は「エネルギー低下」にマッピング)。

結果:
グループBは、14日間にわたってログ記録の習慣を38%よく維持しました。なぜでしょうか?週の終わりに、グループBは自分たちを実際に理解している「ミラー」レポートを受け取ったからです。アプリは「あなたが『疲労』に関連するカスタム絵文字を記録した日に、エネルギーが低い傾向があることに気づきました」と伝えることができました。グループAは、奇妙な画像のギャラリーを受け取っただけでした。

ピクセルではなくプロンプトに焦点を当てることで、アプリを機能させる構造化データを失うことなく、無限のカスタム絵文字気分トラッキングをサポートすることに成功しました。

カスタム絵文字気分トラッキングのためのSupabaseにおける非識別化されたクラウドストレージを示すデータアーキテクチャ図
カスタム絵文字気分トラッキングのためのSupabaseにおける非識別化されたクラウドストレージを示すデータアーキテクチャ図

データアーキテクチャ:Supabaseにおける非識別化されたクラウドストレージ

ジャーナルアプリにAIやプロンプト処理を導入する際は、常にプライバシーについて議論しなければなりません。

現在、ウェルネスアプリの分野では、絶対的なプライバシーについて大げさな主張をする傾向が強くあります。私は完全に透明性を保ちたいと思います。私たちは安全なクラウドストレージを使用し、テキストを非識別化しています。そして、真のプライバシーはデータの最小化から生まれると信じています。

ViviDiaryはSupabase上に構築されたプライバシーファーストのクラウドアーキテクチャに依存しています。データはクラウドに保存されます。

なぜでしょうか?真のプライバシーはクラウドが存在しないふりをすることからではなく、厳格なデータの最小化と非識別化から生まれるからです。

「上司にイライラしている」のようなGenmojiプロンプトを記録したとき、私たちのアーキテクチャでは正確に何が起こるのかを説明します。

  1. プロンプトはエッジでユーザーID(UUID)から分離されます。
  2. 生のテキストは、アプリから送信される前に、ローカルの正規表現フィルターを使用して識別可能な名詞が削除されます。
  3. 非識別化された文字列(`"frustrated with [REDACTED]"`)がSupabaseバックエンドに送信されます。
  4. 私たちのバックエンドが感情を分類します(価:つらい、タグ:フラストレーション)。
  5. 分類されたメタデータと、元の暗号化されたプロンプトのみがクラウドデータベースに保存されます。

私たちがこれをクラウドで処理するのは、スマートフォンのローカルプロセッサで処理するよりもはるかに正確な分類モデルを、バッテリーを消耗させずに実行できるからです。私たちのAI機能は完全にオプトインです。これはデータをローカルに隠しているからではなく、ViviDiaryの核心的な価値が3秒のログ記録にあるからです。AIは、より深い洞察を求める日のためのオプションのヘルパーに過ぎません。私たちはユーザーの明示的な確認なしにAI生成コンテンツを保存したり確定したりすることはありません。

なぜコアログ記録は3秒以内に留める必要があるのか

最終的に、私たちが構築するすべての機能は、時間に対してその存在意義を証明しなければなりません。

内部メトリクスから、毎日のチェックインが30秒を超えるとユーザーの継続率が急激に低下することが分かっています。これが、私たちがプレッシャーを与えるようなストリーク(連続記録)を行わない理由です。完了率も表示しません。「昨日忘れています!」という罪悪感を煽る通知も送りません。

Focusモジュール(デフォルトではオフ)を使用する場合、ルーチンは単に気づきたいことであり、Todoは単にチェックを入れるものです。1日忘れたからといって罰則はありません。

ViviDiaryは、すべての入力モジュール、無制限の気分・絵文字記録、3ヶ月のカレンダーアーカイブ、週次ミラー、最大3個のルーチン / 5個のTodoが完全に無料です。(より深い履歴アーカイブと無制限のFocusアイテムをアンロックする月額$2.99または年額$11.99のプレミアムティアがありますが、コア体験は完全に無料です)。

Genmojiの統合は、このプロセス全体を遅くする可能性がありました。ユーザーは完璧なカスタム絵文字を作ることに5分も費やしてしまう可能性があります。

これに対抗するため、私たちはGenmojiフローをジェスチャーベースの気分記録システムに深く統合しました。主要な気分までスワイプすると、キーボードが最近使用したGenmojiを標準絵文字と一緒に即座に表示し、タップするだけで完了します。

新しいものを作成する時間をかけたい場合はそうすることもできますが、摩擦のないパスは3秒以内に保たれています。

今後の展望

現在、プロンプトから価へのマッピングをTestFlightベータグループに展開しています。最大の課題は、「幸せで涙を流すピエロ」のようなGenmojiを生成したときに、分類エンジンがそれが「良い」日なのか「つらい」日なのかを判断しきれないといったエッジケースの扱いです。

しかし、それこそがプロダクトデザインの楽しいところです。制約を作り、ユーザーがそれを美しい方法で壊し、私たちはそれに追いつくためにシステムを適応させるのです。

iOS 27が一般公開されたら、ユーザーがカスタム絵文字とどのように対話しているかについてのデータを来月共有する予定です。それまでは、ログ記録を素早く行い、ストリークが途切れることを心配しないでください。