「仕事ができる」タスク管理アプリ - あらゆる人生のプロジェクトを、家族と一緒に、AIの力で前に進める
シゴデキ! は、「人生の大きなプロジェクト」を家族で協力しながら進めるためのタスク管理アプリです。
普通のToDoアプリは「個人の生産性」に最適化されています。しかし、人生の本当に大切なプロジェクト——引越し、実家の整理、終活、子育て、起業——は、一人では完結しないのです。
- 🏠 実家の片付け: 親は「捨てられない」、子は「帰省できる日が限られる」
✈️ 海外移住準備: やることは100以上、期限は刻一刻と迫る- 👨👩👧👦 家族プロジェクト: 誰が何をやるのか、進捗が見えない
シゴデキ!は、こうした「人生のプロジェクト」を、AIの提案と家族の協力で前に進めます。
このアプリは、開発者(Dela)自身が2026年3月のスペイン移住前に直面している、実家の整理と両親の終活支援という実際のニーズから生まれました。
状況:
- Delaは2026年3月にスペインへ移住予定
- 実家(金沢)には物を捨てられない父親と、健康上の理由で動けない母親
- 限られた帰省日数で、実家を整理し、両親が安心して暮らせる環境を作る必要がある
課題:
- 👴 父親は物を捨てられない: 防衛的で、「片付け」という言葉に身構える
- 📦 物が多すぎる: 何から手をつければいいか分からない
- ⏰ 時間がない: 移住まで数ヶ月、帰省できる日は限られる
- 🌍 物理的距離: トロント→金沢の往復、スペイン移住後は更に遠くなる
❌ 悪い: 「実家を片付けよう」
✅ 良い: 「僕が開発しているアプリ『シゴデキ!』のモニターになってほしい。
シニア世代でも使えるか、実証実験に協力してくれない?」
- 親は「片付けられない人」ではなく「開発パートナー」に
- 抵抗感が協力意欲に変わる
迷い箱(保留ボックス)システム:
// シゴデキ!のタスク
Task(title: "レシート・ポイントカード整理")
├─ Subtask: "財布から全部出す"
├─ Subtask: "期限切れ → 迷い箱へ" // ← 捨てる判断不要
└─ Subtask: "よく使う3枚だけ残す"- 「捨てる」という苦痛を「移動する」という動作に変換
- 判断を先送りすることで、行動のハードルを劇的に下げる
不用品を発見 → メルカリ/買取業者へ → 売却益でご馳走
→ 「片付け = 楽しい」という記憶に書き換え
Day 1の例:
- 財布整理(5分)→ ポイントカード10枚発見
- JALカード再発行(探さない!新規申し込み)
- 古い電化製品を買取査定
- その日のうちに: 査定額で回転寿司へ 🍣
親世代は「何から始めればいいか分からない」状態に陥りがち。
📸 実家のリビングを撮影
↓
🤖 AIが分析: 「まず財布から始めましょう。座ったままできます」
↓
📋 具体的なタスクリストを自動生成
↓
✅ 一つずつ完了していく達成感
Family: "Dela家の終活プロジェクト"
Members: お父さん(金沢)、お母さん(金沢)、Dela(トロント→スペイン)
Project: "リビング整理"
├─ Phase: "財布・小物" [担当: お父さん] ✅ 完了
├─ Phase: "テレビ周り" [担当: Dela] 🔄 進行中
└─ Phase: "押入れ" [担当: お母さん] ⏳ 予定
- リアルタイム同期で進捗が見える
- 離れていても「一緒にやっている」感覚
- 完了するたびに家族に通知が届く
フェーズ1: Day 1 キックオフ(2025年12月帰省時)
- プロジェクト説明会: 「アプリのモニター協力」として導入
- ウォームアップ: 財布整理(5分、座ったまま)
- JALカード儀式: 「探さないルール」適用
- テレビIT化: Chromecast設置、スペインとのビデオ通話テスト
- 報酬: 初日の実験協力費で美味しい食事 🍣
フェーズ2: 継続的な整理(2025年12月〜2026年2月)
- 週1回のリモートチェックイン(ビデオ通話)
- AIが次週のタスクを提案
- メルカリ出品サポート(Delaが代理出品)
- 進捗に応じて「ご褒美ポイント」付与
フェーズ3: 最終仕上げ(2026年2月帰省時)
- 残りの大物整理
- 粗大ゴミ・不用品回収の手配
- 「完成祝い」として家族旅行
期待される成果:
- 📦 物理的成果: 実家のスペース50%増、動線改善
- 😊 心理的成果: 両親が「やればできる」という自信を獲得
- 📱 プロダクト検証: シニア世代でもUIが使えるかの実証データ
- 💝 家族の絆: 離れていても協力できる体験
- 招待コードシステム: 簡単に家族をプロジェクトに追加
- リアルタイム同期: 誰かがタスクを完了すると全員に通知
- 役割分担: タスクごとに担当者を割り当て
3つのAIモード:
- 🤖 Claude: 深い理解と文脈に基づく提案
- 🧠 Gemini: 視覚情報(写真)からタスク抽出
- ⚡ OpenAI: 高速で実践的なタスク生成
使用例:
入力: "実家のリビングを片付けたい"(+ 写真添付)
AI出力:
Phase 1: 財布・小物整理(所要時間: 30分、難易度: ★☆☆)
├─ レシート・ポイントカード整理
├─ 使わないカード → 迷い箱
└─ 財布を拭く
Phase 2: テレビ周り(所要時間: 1時間、難易度: ★★☆)
├─ 配線整理
├─ 古いリモコン処分
└─ Chromecast設置
...
大きなプロジェクトを「消化可能なフェーズ」に分割:
Project: "スペイン移住準備"
├─ Phase 1: ビザ申請 [完了: 8/10タスク]
├─ Phase 2: 住居探し [進行中: 3/12タスク]
├─ Phase 3: 荷物整理 [未着手]
└─ Phase 4: 送別会 [未着手]
よくあるプロジェクトは、すぐに始められる:
- 🏠 引越しテンプレート: 住所変更、インフラ契約、荷造り...
- 👶 出産準備テンプレート: 病院選び、ベビー用品、行政手続き...
- 💼 起業テンプレート: 法人設立、開業届、営業準備...
- 🧓 終活テンプレート: 財産整理、エンディングノート、葬儀準備...
捨てるか迷ったものを「判断保留」にできる:
Task: "古いTシャツ10着"
Status: .pending // 「迷い箱」ステータス
ReviewDate: Date() + 30.days // 30日後に再評価
Note: "一度も着なかったら処分"プロジェクト全体の健康状態を可視化:
- 📊 完了率(全体 / フェーズ別)
- ⏱️ 作業時間の見積もりと実績
- 👥 メンバー別の貢献度
- 🎯 マイルストーン達成状況
- Swift 5.9 / SwiftUI: モダンな宣言的UI
- iOS 15.0+: 幅広い端末サポート
- Firebase
- Authentication: Sign in with Apple(+ Email/Password)
- Firestore: リアルタイムデータベース
- Cloud Storage: 画像・添付ファイル
- Security Rules: 堅牢なアクセス制御
- Claude API (Anthropic)
- Gemini API (Google)
- OpenAI API
- MVVM: ViewModel駆動のリアクティブUI
- Repository Pattern: データ層の抽象化
- Dependency Injection: テスト容易性と疎結合
- SwiftLint: コード品質管理
- Firebase Emulator: ローカル開発環境
- GitHub Actions: CI/CD
- Danger: PR自動レビュー
shigodeki/
├── iOS/
│ ├── shigodeki/ # メインアプリコード
│ │ ├── AI/ # AIクライアント(Claude, Gemini, OpenAI)
│ │ ├── Components/ # 再利用可能なUIコンポーネント (74ファイル)
│ │ ├── DI/ # 依存性注入コンテナ
│ │ ├── Extensions/ # Swift標準ライブラリ拡張
│ │ ├── Managers/ # ビジネスロジック層 (29ファイル)
│ │ ├── Models/ # データモデル (19ファイル)
│ │ ├── Repository/ # データアクセス層
│ │ ├── Services/ # ドメインサービス (118ファイル)
│ │ ├── Utilities/ # ヘルパー関数・ユーティリティ
│ │ ├── ViewModels/ # UIとビジネスロジックの橋渡し
│ │ └── Views/ # SwiftUI画面 (64ファイル)
│ ├── shigodekiTests/ # ユニットテスト
│ ├── Firebase/ # Firebase設定
│ │ ├── Config/
│ │ │ ├── GoogleService-Info-Dev.plist
│ │ │ └── GoogleService-Info-Prod.plist
│ │ └── firestore.rules # セキュリティルール
│ └── scripts/ # ビルド・デプロイスクリプト
├── TidyPlanKit/ # 写真→タスク変換 Swiftパッケージ
│ └── Sources/TidyPlanKit/
│ ├── TidyPlanner.swift # メインAPI
│ ├── OpenAIService.swift # Vision API統合
│ └── TidySchema.swift # JSONスキーマ定義
├── docs/ # 設計ドキュメント
│ ├── shigodeki-overview.puml # システム全体図
│ ├── shigodeki-ui-flow.puml # UI遷移図
│ └── ...
├── AGENTS.md # AI開発エージェント向けガイド
├── CLAUDE.md # 開発規約・原則
└── README.md # このファイル
主要な数値:
- 📄 Swiftファイル: 約295個
- 📊 コード行数: 約60,000行(推定)
- 🧩 コンポーネント: 74個
- 🔧 サービス: 118個
- 🎨 View: 64個
- Xcode 15.0+
- macOS 14.0+ (Sonoma以降)
- Node.js 18+ (Firebase Tools用)
- Firebase CLI
# 1. リポジトリをクローン
git clone https://github.com/DELAxGithub/shigodeki.git
cd shigodeki/iOS
# 2. Firebase CLIインストール
npm install -g firebase-tools
firebase login
# 3. Firebaseプロジェクト選択(開発環境)
firebase use shigodeki-dev
# 4. Xcodeでプロジェクトを開く
open shigodeki.xcodeproj
# 5. TidyPlanKitを依存関係として追加
# Xcode → File → Add Package Dependencies → Add Local...
# → TidyPlanKitフォルダを選択
# 6. ビルド実行
# Xcode → Product → Run (⌘R)APIキーは環境変数またはKeychainで管理(コミット禁止):
// Keychainから取得
let apiKey = KeychainManager.shared.get(key: "OPENAI_API_KEY")
// または開発時は Info.plist に設定(.gitignoreで除外)cd iOS
firebase emulators:start- Firestore: http://localhost:8080
- Auth: http://localhost:9099
| 項目 | 完成度 | 詳細 |
|---|---|---|
| コアアーキテクチャ | 🟢 90% | Firebase統合、DI、MVVM完成 |
| 機能実装 | 🟡 70% | 主要機能は動作、細部調整中 |
| テスト | 🟡 60% | ユニットテスト環境構築済み |
| ドキュメント | 🔴 25% | API/コードドキュメント不足 |
| リリース準備 | 🔴 30% | TestFlight未配信 |
✅ 完成済み機能:
- 認証(Sign in with Apple)
- 家族管理(招待、メンバー管理)
- プロジェクト・フェーズ・タスク管理
- AI統合(Claude, Gemini, OpenAI)
- テンプレート機能
- リアルタイム同期
- KPIダッシュボード
- 課金システム(In-App Purchase)
- アクセシビリティ対応
- 多言語対応(日本語/英語)
🔧 未完成・改善中:
- 51個のオープンIssue
- TestFlight配信
- App Store申請準備
- パフォーマンスチューニング
- エラーハンドリングの統一
2025年12月 - PoC開始:
- Dela家での実証実験開始
- 実際のユーザーフィードバック収集
- UI/UXの問題点洗い出し
2026年1月 - ベータ版:
- TestFlight招待リンク生成
- 友人・知人へのベータテスト依頼
- クリティカルバグの修正
2026年2月 - 正式リリース:
- App Store申請
- プレスリリース準備
- ランディングページ公開
開発に参加する前に、以下を熟読してください:
- 1ファイル = 1つの明確な責任
- ファイルは300行以内を目標(上限)
- 超えた場合は即座にリファクタリング
No Test, No Merge: テストのないコードはマージしない。
// ❌ Bad: テストなしでマージ
func calculateTotal(items: [Item]) -> Double {
items.reduce(0) { $0 + $1.price }
}
// ✅ Good: テストを先に書く
func testCalculateTotal() {
let items = [Item(price: 100), Item(price: 200)]
XCTAssertEqual(calculateTotal(items: items), 300)
}- 再現: 不具合を100%再現させる
- 失敗テスト: 不具合を検出するテストを書く
- 修正: テストがパスするようにコードを修正
- 回帰: 他のテストが壊れていないか確認
- 説明: コミットメッセージに原因と対策を記述
- 1 PR = 1責務
- 差分は最大1,000行、10ファイル以内
- rename/moveとロジック変更を混在させない
main # 本番環境(リリース済み)
└─ develop # 開発統合ブランチ
└─ feature/95-section-picker # 機能ブランチ(Issue番号-機能名)
└─ bugfix/103-crash-on-save # バグ修正ブランチ鮮度チェック:
# mainから10コミット以上遅れていないか確認
./scripts/safe-branch.sh check
# 新しいブランチを作成
./scripts/safe-branch.sh create 95 section-picker目標: Dela家の実証実験で基本機能を検証
- 基本的なプロジェクト管理
- 家族招待・共有
- AI提案(写真→タスク)
- 実証実験フィードバック収集
- 迷い箱機能の実装
目標: 限定ベータテスターへの展開
- TestFlight配信
- オンボーディングフロー改善
- プッシュ通知
- パフォーマンス最適化
- クラッシュレポート対応
目標: App Store公開
- App Store審査通過
- ローカライゼーション(日英)完成
- プライバシーポリシー/利用規約
- サポートサイト構築
- マーケティング開始
- Watch版アプリ
- ウィジェット対応
- Siri Shortcuts統合
- Webダッシュボード
- Android版(検討中)
現在はプライベート開発中のため、外部コントリビューションは受け付けていません。
開発チーム:
- Dela (@DELAxGithub): プロダクトオーナー、iOSエンジニア
- Claude (AI): ペアプログラミングパートナー
Private - All Rights Reserved
- 開発者: Dela
- GitHub: @DELAxGithub
このプロジェクトは、以下の方々・技術のおかげで実現しています:
- 両親(実証実験パートナー)
- Firebase(バックエンドインフラ)
- Anthropic Claude(AI統合)
- OpenAI / Google Gemini(AI統合)
- Swift/SwiftUIコミュニティ
作成日: 2025年12月7日
最終更新: 2025年12月7日
バージョン: 0.1.0-beta