Skip to content

Commit

Permalink
ドキュメントの更新 (2023/08/13) (#33)
Browse files Browse the repository at this point in the history
  • Loading branch information
CH3COOH authored Aug 14, 2023
1 parent 18b8d7c commit 7963fe8
Show file tree
Hide file tree
Showing 13 changed files with 132 additions and 56 deletions.
20 changes: 20 additions & 0 deletions Documents/BL/BL-A01.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# BL-A01 アプリ起動時

## 入力

* 無し

## 出力

* 新規起動
* 通常起動
* アップデート後の初回起動

## 処理

1. 編集中 (ステータスが `editing`) のレコードをすべて削除する
2. ユーザのログイン状態を確認する
* ログインしていない場合、「新規起動」を返す
3. ステータスが `ready` のレコードをバックエンドへアップロードする
4.[BL-Z04 アプリバージョンのチェック](./BL-Z04.md)」を実行して、アプリバージョンを確認する
* 「通常起動」または「アップデート後の初回起動」を返す
4 changes: 2 additions & 2 deletions document/BL/BL-B02.md → Documents/BL/BL-B02.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

## 出力

* 成功
* 失敗
* 成功 (success)
* 失敗 (failed)

## 処理

Expand Down
23 changes: 23 additions & 0 deletions Documents/BL/BL-S02.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# BL-S02 ログアウト

## 入力

* なし

## 出力

* 成功 (success)
* 失敗 (failed)

## 処理

1. ステータスが `ready` のレコードをバックエンドへアップロードする
*[BL-Z01 TODOアイテムのアップロード](./BL-Z01.md)」を実行する
* アップロードが成功した場合: サインアウトする
* アップロードが失敗した場合: エラーを返して終了する
2. サインアウトする
* サインアウトが失敗した場合: エラーを返して終了する
3. すべての未送信の通知リクエストと配信済みの通知を削除する。
4. ローカルデータを全て削除する。
* 削除に成功した場合: 成功を返して終了する。
* 削除に失敗した場合: エラーをログに出力し、成功を返して終了する。
25 changes: 25 additions & 0 deletions Documents/BL/BL-Z01.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# BL-Z01 TODOアイテムのアップロード

## 入力

* なし

## 出力

* 成功 (success)
* 失敗 (failed)

## 処理

1. ステータスが "ready" のTODOアイテムをローカルから取得する。
2. アイテムがなければ成功を返して終了する。
3. ネットワーク接続が利用可能かを確認する。
* 接続可能な場合は、次のステップに進む。
* 接続不可能な場合は、成功を返して終了する。
4. 各TODOアイテムについて以下の処理を行う:
* アイテムが完了している場合は、Firestoreから該当するアイテムを削除する。
* アイテムが未完了の場合は、Firestoreにアイテムを追加または更新する。
5. Firestoreとの同期後、ローカルデータのステータスを `complete` に更新する。
6. 各TODOアイテムについて以下の処理を行う:
* アイテムが完了している場合は、ローカルから該当するアイテムを削除する。
* アイテムが未完了の場合は、そのアイテムのステータスを更新する。
4 changes: 3 additions & 1 deletion document/BL/BL-Z02.md → Documents/BL/BL-Z03.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

## 入力

* なし

## 出力

* 接続中 connected
Expand All @@ -12,4 +14,4 @@
1. デバイスのネットワーク接続状態を確認する
* 未接続なら処理を終了する
2. 自分のサイトへアクセスして、正しい文言が得られるか調べる
* `https://ch3cooh.net/success.html` にアクセスして `Success`が得られるかどうか確認する
* `https://ch3cooh.net/success.html` にアクセスして `Success`が得られるかどうか確認する
19 changes: 19 additions & 0 deletions Documents/BL/BL-Z04.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# BL-Z04 アプリバージョンのチェック

## 入力

* なし

## 出力

* 初回起動・またはアップデートしていない (notUpdate)
* アップデート後の初回起動である (showVersionInformation)

## 処理

1. 現在のアプリバージョンを取得する
2. 以前の起動時のアプリバージョンを UserDefaults から取得する
3. 現在のアプリバージョンと以前のアプリバージョンを比較する
* 両者が同じ場合、何も表示せずに終了
* 現在のバージョンが以前のものより低い場合 何も表示せずに終了
* 現在のバージョンが以前のものより新しい場合、現在のバージョンをUserDefaultsに保存する
File renamed without changes.
59 changes: 30 additions & 29 deletions document/README.md → Documents/README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,38 @@
# Documents

以下は、TodoNote の開発資料である
これは「TodoNote」アプリの開発資料である。

## コンセプト

* オフラインでも利用可能な TODO 管理アプリ
* ユーザーにネットワーク状態を意識させない
* オフライン状態でも操作できるTODO管理アプリ
* ユーザーがネットワークの状態を気にすることなく利用できる設計

## 現時点での制約

* 現時点では、TODOアイテムの登録・編集時にアプリを kill された場合、次回のアプリ起動時に編集中のアイテムがあるかどうか調べて、途中から復帰できない
* v1.0.0 では、TODO登録画面で(タスクの登録・編集中に) アプリが終了した場合、次回起動時に編集を再開することができない

## 画面遷移図
## 画面

### 画面遷移図

<img width="749" alt="screen-transition" src="https://github.com/CH3COOH/todonote-ios/assets/137952/dbdc0ac1-96f2-4873-ade5-7f9c9cbc7da1">

### 画面一覧

| ID | 画面名 | 備考 |
|:-----|:-----|:-----|
| A-01 | スプラッシュ | |
| A-02 | ログイン | Firebaseへのログイン |
| A-03 | 通知許諾 | |
| B-01 | ホーム | タスクのリストを表示する |
| C-01 | TODO登録 | タスクの登録/編集をおこなう |
| S-01 | 設定 | |
| S-02 | ライセンス | LicensePlistViewController で表示 |
| S-03 | 問い合わせ | Googleフォームを SFSafariViewController で表示 |

## TODOアイテムについて

TODOアイテムは、ローカル(アプリ内データベース) と バックエンド (Firestore) にて管理する
TODOアイテムは、ローカル(アプリ内データベース) と バックエンド (Firestore) の両方で管理する

### TODOアイテムのステータスについて

Expand All @@ -28,39 +43,25 @@ TODOアイテムは、ローカル(アプリ内データベース) と バック

### TODOアイテムの登録/編集処理

登録時・編集時の処理の詳細は[データベースの仕様](./Database.md) にて記す。以下は簡単なデータフローの説明である
以下は、登録時・編集時のデータフローの簡易的な説明である。詳細については[データベースの仕様](./Database.md)を参照すること

* ステータスが `ready` のアイテムは、TODOアイテムの保存時・アプリ起動時に バックエンドへ同期する
* オフラインでもエラーを表示しない
* ステータスが `editing` のアイテムは、TODO登録画面以外では存在させない
* 登録画面上でアプリを終了させた場合、`editing`のレコードが残るため、スプラッシュ画面で削除する
* スプラッシュ画面から登録画面への導線を引きたいが、これは将来的に考える

## 画面

| ID | 画面名 | 備考 |
|:-----|:-----|:-----|
| A-01 | スプラッシュ | |
| A-02 | ログイン | Firebaseへのログイン |
| A-03 | 通知許諾 | |
| B-01 | ホーム | TODO一覧 |
| C-01 | TODO登録 | |
| S-01 | 設定 | |
| S-02 | ライセンス | LicensePlistViewController で表示 |
| S-03 | 問い合わせ | Googleフォームを SFSafariViewController で表示 |
* `ready` ステータスのTODOアイテムは、保存時やアプリ起動時にバックエンドにアップロードされる
* オフライン時の保存でもエラーメッセージは表示しない
* `editing` ステータスのアイテムは、TODO登録画面でのみ扱われ、それ以外の場面での存在は許容しない
* TODO登録画面の表示中にプロセスを終了した場合、`editing` ステータスのレコードが残る可能性があるため、スプラッシュ画面でそれらのレコードを削除する

## ユースケース
## ユースケース一覧

| ID | ユースケース名 | 備考 |
|:-----|:-----|:-----|
| [BL-A01](./BL/BL-A01.md) | アプリ起動時 | |
| BL-B01 | TODOリストの取得 | sort option |
| BL-B02 | TODOアイテムの削除 | |
| BL-C01 | TODOアイテムの登録・編集開始 | editing のレコードを作成する |
| BL-C02 | TODOアイテムの登録・編集完了 | Firestoreへの同期 |
| BL-C02 | TODOアイテムの登録・編集完了 | |
| BL-C03 | TODOアイテムの編集キャンセル | editing のレコードを削除する |
| [BL-S02](./BL/BL-S02.md) | ログアウト | |
| [BL-Z01](./BL/BL-Z01.md) | TODOアイテムのアップロード | Firestore へ ready のレコードをアップロード |
| BL-Z02 | TODOアイテムのダウンロード | Firestore からデータをダウンロード |
| [BL-Z03](./BL/BL-Z02.md) | ネットワーク接続状態のチェック | |
| BL-Z04 | アプリバージョンのチェック | |
| [BL-Z03](./BL/BL-Z03.md) | ネットワーク接続状態のチェック | |
| [BL-Z04](./BL/BL-Z04.md) | アプリバージョンのチェック | |
File renamed without changes
15 changes: 10 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
[![Build Status](https://app.bitrise.io/app/80fabd50-5db4-48ac-8357-21cbc43d7cb9/status.svg?token=-E0kWr3snOcU4eLFaYi9Vw&branch=master)](https://app.bitrise.io/app/80fabd50-5db4-48ac-8357-21cbc43d7cb9)

# TodoNote for iOS

TodoNote は、iOS用TODO管理アプリである。
TodoNote は、iOS向けTODO管理アプリです。

![fk-PAUI8193_TP_V](https://github.com/CH3COOH/todonote-ios/assets/137952/d06483a2-846e-44ae-9713-88cf6aa2ddc2)

## ビルド方法

Expand All @@ -10,11 +14,11 @@ bundle install
bundle exec pod install
```

* `GoogleService-Info.plist` はプロジェクトには含まれていないため、ビルド前に追加すること。
* `GoogleService-Info.plist` はプロジェクトには含まれていない。ビルド前に追加すること。

## 開発
## Development

開発向けのドキュメントは [document](./document/README.md)ディレクトリに置いている。
開発向けのドキュメントは [Documents](./Documents/README.md)ディレクトリに置いている。

### 開発環境

Expand All @@ -26,4 +30,5 @@ bundle exec pod install
* UIの実装: SwiftUI (View) + UIKit (Navigation)
* アーキテクチャ: Clean Architecture
* パッケージマネージャ: CocoaPods
* バックエンド: Firestore
* バックエンド: Cloud Firestore
* CI: Bitrise
2 changes: 0 additions & 2 deletions document/BL/BL-A01.md

This file was deleted.

7 changes: 0 additions & 7 deletions document/BL/BL-S02.md

This file was deleted.

10 changes: 0 additions & 10 deletions document/BL/BL-Z01.md

This file was deleted.

0 comments on commit 7963fe8

Please sign in to comment.