DINKI·惦记
日本語 ⌄
简体中文English日本語FrançaisDeutschEspañolPortuguês (Brasil)ไทย

DINKI 開発の記録 / 001

大切なことを、少しずつ形に。

ひとつの提案が、どう機能になるのか。小さな不具合を、どう丁寧に直すのか。DINKI が 1.0 から 1.1.1 へ進んだ過程を記録します。

今回の変更を見る ↗
Yaya
1.0 → 1.1.1BUILD 165
01 /

記録をより豊かにする、7つの方向

まず何が変わったかを紹介し、その理由をひもときます。購入と充電まわりの変更は、改善・修正として別にまとめています。

01

これまでの記録を、その先へ

テストに参加した同じアカウントで、大切な記録を引き継ぐ。

この過程を読む +

はじまりの課題

同じユーザーがテスト版から正式版へ移ったのに、以前のデータが表示されないことがありました。

どう取り組んだか

同じアカウントの過去データを確認し、クラウドのプレビュー、差分確認、同意後の統合を用意しました。テスト購入の特典と正式な購入特典は分離します。

現在の使い心地

過去データの同期後、アプリを開き直しても残っていることをユーザーが確認済みです。端末間の復元は一般公開前に追加検証が必要です。すべてのテスト環境のデータを無条件に移行できるわけではありません。

02

写真を見ながらヤヤと話す

複数の写真を一緒に読み解き、何を残すか決める。

この過程を読む +

はじまりの課題

写真にある情報をすべて入力するのは大変です。一方、曖昧な日付を勝手に確定するわけにもいきません。

どう取り組んだか

複数画像の送信、1枚ずつの削除、会話の文脈に沿った聞き返しに対応しました。記録できそうな情報を取り出したあと、小さな出来事か大切な日として残すかを確認します。「月末」などの表現も、日付を確かめます。

現在の使い心地

情報が明確になれば、大切な日をその場で保存できます。文字・音声・画像を同じ会話で扱え、録音中でも停止して送信できます。

03

小さな出来事を、大切な日に

ふと残したひと言が、準備して迎えたい日になる。

この過程を読む +

はじまりの課題

記録したあとでリマインダーが必要だと気づいても、書き写す手間はかけたくありません。変換後に白い画面が残るのも不自然でした。

どう取り組んだか

変換時にタイトル、説明、既存の日付、写真を引き継ぎ、日付がなければ選択します。保存成功後は変換画面と元の記録画面を閉じます。

現在の使い心地

小さな出来事も大切な日も削除でき、削除前には明確な確認を行います。変換の保存と元の画面への復帰は、ユーザーによる確認を終えています。

04

写真で、出来事をもっと豊かに

アルバムから選ぶ。あるいは、その場で撮る。

この過程を読む +

はじまりの課題

ひと言では残しきれないこともあります。写真があれば、細部まで記録できます。

どう取り組んだか

小さな出来事と大切な日に写真を添付できるようにし、追加時にアルバムとカメラを選べるようにしました。@小菠萝 の提案です。

現在の使い心地

写真は記録と一緒に保存され、データ同期とバックアップの流れにも含まれます。複数端末での添付写真の復元は追加検証待ちです。AI整理の完了画面に写真がすぐ表示されない問題は、今後の修正として残しています。

05

猫も犬も、DINKI の仲間に

写っている相手を理解してから、似合う動きを考える。

この過程を読む +

はじまりの課題

ペットに人の立ち姿を当てはめるべきではありません。集合写真で1人だけが動くのも不自然です。

どう取り組んだか

人物、ペット、それらが混在した画像を区別し、姿勢に合わせて3つの動作プロンプトを用意します。認識できない場合はプリセットを使います。内蔵一覧も人物とペットに分けました。@ddcat の提案です。

現在の使い心地

猫や犬に合った姿勢と控えめな動きを使えます。ただし生成結果の確認は必要で、毎回完全に期待どおりになるとはお約束しません。

06

提案が届く場所を

開発者のヤヤが声を聞き、採用した貢献を「謝辞」に残す。

この過程を読む +

はじまりの課題

意見が会話の中に散らばり、その後に採用されたかどうかがユーザーに伝わりませんでした。

どう取り組んだか

「マイページ」の下部にフィードバックと謝辞の専用カードを置き、ほかのレイアウトは維持しました。写真・音声で意見を送れ、謝辞はバージョン別に整理し、最新の項目を展開します。

現在の使い心地

各アカウントは提案1件につき1回支持でき、サーバー側で重複を防ぎます。フィードバックは開発者管理画面に届きます。会員権やサンライトの報酬はルールを検討中の計画であり、自動付与は約束していません。

07

使い慣れた言葉で

DINKI の10言語対応に、ウェブサイトも続きます。

この過程を読む +

はじまりの課題

文言、日付、ボタン、長い文章は、別の言語へ単純に置き換えるだけでは使いやすくなりません。

どう取り組んだか

アプリは簡体字中国語、英語、日本語、韓国語、フランス語、ドイツ語、スペイン語、ブラジルポルトガル語、ロシア語、タイ語に対応。ウェブサイトにも同じ10言語の内容を用意します。

現在の使い心地

ブランドと操作の意味を保ちながら、文字欠け、代替言語への戻り、長文レイアウトを確認します。翻訳済みであることは、すべての言語を母語話者が確認済みという意味ではありません。

形象選択画面の例 · ビルド156の人物・ペット分類 ↗
形象選択画面の例 · ビルド156の人物・ペット分類
02 /

繰り返し磨いた、小さなところ

新機能以外にも、「自然に使えるはず」の部分に多くの時間をかけました。以下は問題ごとにまとめたもので、複数のコミットを別々の新機能として数えてはいません。

01購入と残高反映+

起動時に商品価格を先読みし、画面を開くたびに取得済み価格を消さないようにしました。一部商品の読み込み失敗が、他の商品を妨げないようにしています。購入中はボタンに「処理中」と表示し、検証成功後に会員情報とサンライトを更新。古い応答で新しい残高が上書きされるのを防ぎます。

02正式購入とテスト購入+

正式アカウントと生活の記録は引き続き使え、Appleの模擬購入は独立したテスト特典として扱います。旧テスト定期購入の所有者の互換性を修正し、購入済みなのに確認待ちが続く問題に対応しました。実際のApp Storeでの会員権とサンライト購入は、反映と再起動後の確認を実施済みです。更新・返金の全ライフサイクルは追加検証待ちです。

03ログインと起動+

ログインセッションを復元し、しばらくして開いた際に不要な再ログインを求めないようにします。本機データの準備前に空のホームを表示せず、前回見ていた人物を記憶して、そのキャラクターに戻ります。

04写真とキャラクター+

内蔵キャラクターのサムネイルが空になる問題、アバターのトリミング後に反応しない問題、写真からの生成を状態判定が妨げる問題を修正しました。一覧の動的プレビューは軽量な透明フレームアトラスに変え、見えている全カードを再生対象にしました。

05同期とバックアップ+

統合したデータを本機に確実に保存して画面を更新します。初回ログイン時はクラウドとの差分に応じて案内し、プレビューを繰り返し開きません。データ変更や手動操作など必要な時機に同期し、過去のバックアップファイルの復元経路も整えました。

06チャットとフィードバック+

3行を超える入力はスクロールでき、ユーザーの画像は右寄せに表示します。開発者のヤヤでは送信後すぐにメッセージ一覧へ移し、失敗時は再試行できます。太字構文のアスタリスクがそのまま見える問題、フィードバックの読み込みエラー、音声入力入口の欠落も修正しました。

07ダイアログと画面復帰+

タイトル・説明・ボタンを備えた中央ダイアログに統一し、ライム色の配色を調整しました。不要な振り返り促進カードを削除し、小さな出来事を大切な日に変換したあとに残る白画面や「記録は削除されました」の画面も修正しました。

08充電と予定+

充電中の付き添い表示は、設定と利用条件を満たし、充電中かつ横向きのときだけ開始します。縦向きに戻せば終了できます。完了した予定の当日の表示、削除ボタンの位置、削除確認も改善しました。

09プライバシーの説明+

165は文言のみの修正です。存在しない画面入口の約束を削除し、初回AI同意、拒否しても本機の記録が残ること、連絡窓口から同意撤回を申し出られる旨は維持しています。

03 /

実装のしくみを、わかる言葉で

開発中に実際に出会った問題を紹介します。アカウント、取引、秘密鍵、内部インターフェースは公開せず、実装の考え方を中心に説明します。

FIELD NOTES / 01

背景を抜いたのに、なぜ白い四角が残る?

白いピクセルと透明なピクセルは、別ものです。

この過程を読む ↗

背景を白く塗ったり、PNGで保存したりするだけでは透明にはなりません。透明度には、各ピクセルをどれだけ表示するかを記録するアルファチャンネルが必要です。

DINKIの静止画は、被写体の分割とマスク処理を使います。元の色を保ったまま被写体の透明マスクを推定し、処理後は暗色・ライム色・紙色の背景に重ねて透明度と輪郭を確認します。白い服や目のハイライトなどの細部を傷つけないためです。

動画素材は別の透明処理経路を通ります。通常の動画に色の映像と透明マスクをまとめ、プレーヤーが決められた方式で分離・合成します。普通の動画コントロールで直接再生すると色の領域やマスクが見えることがあり、背景色の変更では直せません。

下の切り替えは、既存の透明素材を別の背景色に重ねるだけです。ブラウザーで写真をアップロードしたり、再処理したりはしません。

FIELD NOTES / 02

最初の2枚は動くのに、その先はなぜ動かない?

一覧プレビューとフルサイズ動画では、役割が異なります。

この過程を読む ↗

初期の方式では、メモリ使用量を抑えるため同時再生する動画数を制限していました。負荷は減りましたが、後ろの見えているカードが動かなくなりました。

一覧は動作動画から作った透明フレームアトラスに変更しました。各プレビューは18フレーム、キャッシュ予算は32MiBです。見えている全カードを再生し、スクロール中は一時停止、画面外では停止します。GIFのように見えますが、実体は透明度を持つフレームアトラスです。

個々のキャラクターを開いたり、動作を完全に再生したりするときは、引き続き動画を使います。一覧の各カードが動画デコーダーを常駐させる必要はなく、制作元の動画を低解像度プレビューに置き換えることもありません。

システムの「視差効果を減らす」設定も尊重する必要があります。滑らかさは実機と同じ負荷で測るもので、実装方式だけを根拠に改善率をうたうことはできません。

FIELD NOTES / 03

小さな出来事を日付に変えると、なぜ白画面になった?

データは変わったのに、画面は古い記録を待っていました。

この過程を読む ↗

変換では大切な日を作成し、元の小さな出来事を削除します。詳細画面と編集シートが両方とも元の記録に依存していると、削除された時点で下の画面に表示する内容がなくなります。

修正では編集画面に安定した下書きのスナップショットを持たせました。先に保存を完了し、親画面が完了を受け取り、閉じるコールバックに沿って変換画面と詳細画面を終了します。キャンセルや保存失敗では入力を保ちます。

どこからでも閉じる処理を2回呼ぶより確実です。各画面が自分の表示状態を扱い、成功後は有効な画面へ戻ります。

中央の確認ダイアログはアプリ共通の部品を使い、タイトル、説明、明確な操作を保ちます。画面ごとに別の案内を作ることはしません。

FIELD NOTES / 04

Appleは購入成功と言うのに、なぜ残高が増えない?

決済の通知、検証、付与、画面更新までがひとつの流れです。

この過程を読む ↗

Appleのコールバックは取引に結果が出たことを示します。それでもサーバーは注文と所有者を検証し、同じ注文の二重付与を防ぐ必要があります。画面の数字だけを変えると、本当の台帳と残高が食い違います。

今回は確認後のウォレットと会員情報の更新をクライアントにつなぎ直し、先に送った照会結果が新しい付与結果を上書きしないようにしました。進行状況は購入ボタンの中にまとめ、通常はユーザーが「購入の同期」を理解する必要がない形にしています。

模擬注文と実際の注文は分けて記録します。バックアップを復元しても購入残高は変えられません。通信障害では未処理取引を保持して再試行し、反映させるために何度も買い直すよう促しません。

正式なApp Storeでの月額会員とサンライト購入は、反映、会員状態、開き直した後の確認を行いました。実際の返金と更新の全経路は、公開前の検証項目として残しています。

透明は白ではありません。背景を変えてみましょう

白いピクセルと透明なピクセルは、別ものです。

透明は白ではありません。背景を変えてみましょう
DINKIの既存透明キャラクター素材
04 /

このバージョンが育つまで

  1. 144–147

    10言語、過去データ、起動時の読み込み

    1.0以降のデータ引き継ぎ、価格の先読み、基本操作を整備。

  2. 148–152

    記録と会話を使いやすく

    残高更新、写真と撮影、複数画像の理解、大切な日の直接保存、一覧の動的プレビューを改善。

  3. 153–156

    提案を製品の中へ

    謝辞と支持、ペットと複数人物の動作、開発者のヤヤを追加し、更新プレビューを整理。

  4. 157–160

    正式サービスでの確認へ

    リリース項目を確認し、変換後の復帰、フィードバック、ログイン、サンライト照会を修正。過去データの引き継ぎを検証。

  5. 161–164

    購入経路を最後までつなぐ

    正式データを使いながら模擬特典を分離。旧定期購入の所有者、残高更新、横向き充電を修正。

  6. 165

    説明と実際の動作をそろえる

    プライバシー文言のみを修正。確認済み機能を維持し、TestFlightで確認後にAppleへ審査提出。

映像に残したDINKI ↗

05 /

製品を作り、その姿も残す

宣伝画像、ブランド映像、絵コンテの出典と段階を残します。初期の画面を最終版の操作映像として扱うことはしません。

ビルド156時点の予告画像です。件数と状態は当時の記録を残し、最終状態は本ページの165の記録を参照してください。

30秒のブランドストーリー · 初期コンセプトと画面イメージ。既存公式サイトの映像を使用
キャラクターの動作例 · 既存の内蔵素材であり、毎回の生成結果を表すものではありません

既存映像の一部には中国語が含まれます。原版を保持しており、10言語の動画を制作済みという意味ではありません。

1.1.1の90秒宣伝映像は現在、絵コンテのみで完成版はありません。見せかけの再生ボタンは置いていません。

過程も、未完成のことも残す

一般公開前に、実際の更新・返金と端末間同期の検証を補う必要があります。システム通知の到達テストはユーザーの判断で次版へ延期しました。AI整理完了画面での写真の即時表示も、今後の課題として記録しています。

先頭に戻る ↑