-
Notifications
You must be signed in to change notification settings - Fork 0
mitty1293 edited this page May 6, 2026
·
1 revision
- 目的: 学習や作業の時間を記録・可視化するタイムトラッカーアプリの開発。
- ターゲット: 個人利用、および将来的なストア(Google Play / App Store)での一般公開。
- アーキテクチャ方針: サーバーレス(バックエンド非保持)。ユーザーデータは完全に端末のローカル環境で完結させ、開発者側でのデータ管理責任をゼロにする。
- ベースフレームワーク: React Native
- 開発ツールチェーン: Expo
- 開発言語: TypeScript
-
UI構築: React Hooks (
useState,useEffect等) による状態管理、および必要に応じたUIコンポーネントライブラリ。
-
データベース:
expo-sqlite -
スキーマ設計(初期MVP構成):
-
Activitiesテーブル(計測対象)-
id: 主キー -
name: 計測対象の名前(例: "React Native学習", "読書")
-
-
TimeLogsテーブル(計測記録)-
id: 主キー -
activity_id:Activitiesテーブルへの外部キー -
start_time: 計測開始日時 -
end_time: 計測終了日時 -
duration: 計測時間(秒数など。集計用)
-
-
-
ファイル操作:
expo-file-system- バックアップ用のSQLiteファイルまたはJSONファイルの生成・一時保存。
-
エクスポート:
expo-sharing- 端末内のデータを書き出し、ユーザー自身のGoogle DriveやiCloud、ローカルフォルダ等へ共有(退避)させる。
-
インポート:
expo-document-picker- ユーザーが外部ストレージに退避させたバックアップファイルを選択・読み込み、アプリ内のデータを復元する。
-
Activity(計測対象)管理:
- 計測対象(Activity)の作成、編集、削除機能。名前のみのシンプルな構成とする。
-
タイムトラッカー機能:
- 選択したActivityに対するタイマーの開始・停止。
- 計測完了時に
TimeLogsテーブルへ記録を保存。
-
データ集計・表示機能:
- 日別、およびActivity別の作業時間合計の算出とリスト表示。
-
データバックアップ・復元:
- 上記の仕組みを用いた手動でのデータエクスポートとインポート機能。
-
Todo機能への拡張:
Activitiesテーブルにis_completedフラグ等を追加し、完了した項目を非表示にするタスク管理機能への昇華。 - バックグラウンド処理/通知: アプリがバックグラウンドにある状態でのタイマー継続や、長時間経過時の通知。
- UIの拡張: Activityに対するテーマカラーやアイコンの追加設定。