iOS Case Study

苦悩を越えて仕上げた、 リズムシェア

「バイブコーディングで速く作る」から始まり、通知信頼性・共有設計・運用コストまで向き合って、 カップルの毎日を支える実用アプリへ育てたプロジェクトです。2026年2月20日にv1.8をリリースしました。

  • 0 統合ワークフロー
  • 0 言語対応 (JA / EN)
  • 0 招待コード有効時間 (h)

つくる速さより、使える確かさへ

最初の版は「とにかく形にする」ことを優先しすぎて、起動直後に通知がうまく入らない、 共有中のデータ境界が直感的でない、という実使用で痛い問題が出ました。 そこで速度重視から方針を変え、使う人の不安を減らす改善を軸に作り直しました。

実装が速くても、信頼を失う体験を残せば意味がない。失敗を認めて原因を分解し、 「次に同じことを起こさない設計」に置き換えることが、リズムシェア開発で得た最大の学びでした。

失敗から学び、次に活かしたこと

認証導線で詰まった

失敗

ログイン状態の更新とユーザードキュメント確認の順番が噛み合わず、まれに状態不整合が発生。

学び

認証は「成功条件」と「失敗時の巻き戻し」を最初に設計すべき。

活用

Sign in with Apple + Firebase Auth の状態遷移を整理し、失敗時は即座に状態をクリアする実装へ統一。

通知が信じられなかった

失敗

起動直後のタイミングで通知権限判定が追いつかず、通知が消えて再登録されないケースがあった。

学び

通知機能は「権限確認」と「再スケジュール」を分離して守る必要がある。

活用

スケジュール直前の再評価と、既存通知削除前のガードを入れて取りこぼしを抑制。

共有体験が曖昧だった

失敗

「共有中にどこまで編集できるか」が画面ごとに揺れて、ユーザーが混乱する箇所があった。

学び

共有機能はUXより先に、権限制御のルールを一枚の仕様に落とすべき。

活用

招待コード・解除・閲覧専用の境界を明示し、共有/非共有で操作可能範囲を統一。

運用を後回しにしていた

失敗

シフト一括登録でデータ量が増えると、Firestore書き込み上限に近づく設計だった。

学び

小規模リリースでも、増えたときの挙動を先に仕込まないと後で痛む。

活用

WriteBatch上限対策を入れ、処理分割を前提にしたサービス実装へ変更。

実装した中核機能

カレンダー共有

自分/パートナーの表示切替で、周期・予定・シフトを一画面で把握。

チャット連携

日常会話とコンディション共有を同じ導線に置き、行動までつなげる設計。

ToDo / 記念日

体調配慮タスクや大切な日を管理し、サポート行動を習慣化。

シフト管理

単発登録と期間展開を両立。夜勤またぎも含めて可視化。

通知チューニング

自分向け/パートナー向けの通知タイミングを個別設定可能。

広告非表示プラン

StoreKit 2 で月額プランを実装し、UXと収益化を両立。

技術構成

  • SwiftUI
  • Firebase Auth
  • Cloud Firestore
  • Firebase Cloud Functions
  • StoreKit 2
  • UNUserNotificationCenter
  • AdMob
  • Localization (ja/en)

UIはナチュラルテーマを中心に設計。機能追加より先に、データ整合性・通知品質・共有時の権限制御を優先して改善しました。

本番で公開中です

実際の体験は本番アプリで確認できます。App Store公開版で、開発した改善内容をそのまま体感できます。