iOS / Web

矯正ログ / SmileProgress

歯列矯正中の写真を端末内で整列・匿名化して記録する iOS アプリです。希望者だけが匿名で Before / After を共有でき、Web ギャラリーで閲覧できます。

SwiftUICoreMLAVFoundationStoreKit 2AWS LambdaNext.js 16

矯正ログ / SmileProgress

概要

矯正ログ(グローバル名 SmileProgress)は歯列矯正の経過を記録する iOS アプリと、匿名ストーリーを集めた Web ギャラリーです。写真の整列・匿名化はすべてオンデバイスで行い、共有は希望時のみ匿名公開・限定 URL からスコープを選んで投稿できます。2026 年 7 月に App Store で公開しました。

解決したい課題

矯正中の経過写真は本人にとって価値が高い一方、SNS にそのまま載せるのは個人特定や治療内容の誤解のリスクを伴います。同じ悩みを抱える人が「他の人の Before / After」を見たいという需要もあり、安全に記録と共有を両立する仕組みが必要でした。

主な機能

  • 端末内で写真を整列・匿名化し、外部送信なしで記録
  • CoreML の口元検出で Before / After を自動で位置合わせ
  • スライダー / 左右 / 上下 / タイムラプスの 4 形式で比較
  • 匿名公開・限定 URL を投稿前に選択し、「この画像が公開されます」確認で誤公開を防止
  • 公開ストーリーを Web ギャラリーで国・期間・矯正タイプで絞り込み

技術スタック

iOS
SwiftUI, AVFoundation, CoreML, Vision, StoreKit 2
バックエンド
API Gateway, Lambda (Node.js 20), DynamoDB, S3, CloudFront
Web
Next.js 16, React 19, Tailwind CSS, next-intl
IaC / CI
AWS CDK (TypeScript), GitHub Actions (OIDC)

アーキテクチャ

iOS は SwiftUI で構築し、AVFoundation の撮影ガイドと CoreML(face-parsing BiSeNet)+ Vision の口元検出で写真を相似変換で整列します。バックエンドは API Gateway + Lambda(Node.js 20)+ DynamoDB + S3 + CloudFront で、API 契約は OpenAPI 3.1 を正本に型生成しています。Web ギャラリーは Next.js 16 の静的 SSG で、投稿を起点に GitHub Actions の再ビルドで反映します。インフラは AWS CDK の 5 スタック構成です。

AIの役割と担当範囲

AI が担うのは端末内での口元検出だけで、写真の整列と匿名化の補助に限定しています。歯並びの良し悪しや治療の進み具合を判定することはありません。医療に近い領域では機械に判断を委ねないことを、設計上の前提としているためです。検出を外しても記録と比較は手動で続けられます。失われるのは自動整列で減っていた手間だけです。制作プロセス側ではコピーライティング、ガイド記事の下書き、英訳などで AI を使っています。

評価・運用

2026-07-04 に App Store で公開しました。無料・買い切り・Pro の 3 段階で運用し、公開ギャラリーはメタデータルールと画像モデレーションの 2 層 + 通報導線で事後検知に倒しています。App Store のレビューと利用データを起点に、共有スコープの分かりやすさと匿名性が崩れる経路がないかを継続的に検証しています。