ChatGPTでflutterアプリを開発したい【1:要件定義】

今流行りのChatGPTでなるべく楽に開発を進め、少人数のチームでサービスを実現したい。
そのため、要件定義、設計、コーディング、テスト設計、デプロイまで効率的に行っていきたい。
今回は、まずは要件から書き出して行く。
途中でここまでは自分で書いた。

## 実装するもの
TwitterのクローンアプリをFlutterで実装する。
データベースはfirebaseを利用する。 このアプリはWebブラウザ、Android、iOSで動作する。
Flutterとdartのバージョンは以下を利用する。
flutter 3.10.0
dart 3.0.0
## 作成する画面と機能
* ログイン画面

メールアドレスとパスワードでログインする
アカウントがない場合、サインイン画面に遷移する
ログイン成功した場合、ホーム画面に遷移する。
* サインイン画面

ユーザ名(英数字)、メールアドレス、パスワードを設定しアカウントを作成する。
アカウント作成したら、ホーム画面へ遷移する。
* ホーム画面(ダッシュボード画面)

フォローしているユーザの投稿と自分の投稿を表示する。
新規投稿(+)ボタンを押すと投稿画面に遷移し、自分の投稿のアイコンと、画面右上部に表示された自分のアイコンを押すと自分のプロフィール画面に遷移する。投稿に表示された他ユーザのアイコンをおすとそのユーザのプロフィール画面に遷移する。

* 投稿画面

新規投稿を作成する。投稿したらホーム画面に遷移する。

* マイページ画面 

自分のプロフィールと自分の投稿を表示する。
戻るボタンで一つ前に表示された画面に戻る。

* プロフィール画面
* プロフィール編集画面

自分の自己紹介テキスト、アイコン画像、ユーザ名を編集する。


もちろんこれでは足りないし、こういうのを補完することこそChatGPTのやることだと思い、補完を指示。
足りない機能を継ぎ足し、以下にまとまる。


実装するもの

TwitterのクローンアプリをFlutterで実装する。データベースはFirebaseを利用する。このアプリはWebブラウザ、Android、iOSで動作する。

作成する画面

  • ログイン画面

  • サインイン画面

  • ホーム画面(ダッシュボード画面)

  • 投稿画面

  • マイページ画面

  • プロフィール編集画面

  • プロフィール画面

  • フォロー/フォロワー一覧画面

  • 検索画面

  • 通知画面

  • メッセージ画面

  • 投稿詳細画面

  • パスワードリセット画面

各画面の遷移

  • ログイン画面

    • ログイン成功: ホーム画面へ遷移

    • アカウントがない場合: サインイン画面へ遷移

    • パスワードを忘れた場合: パスワードリセット画面へ遷移

  • サインイン画面

    • アカウント作成成功: ホーム画面へ遷移

  • ホーム画面(ダッシュボード画面)

    • 新規投稿ボタン: 投稿画面へ遷移

    • 自分のアイコン: マイページ画面へ遷移

    • 他ユーザのアイコン: そのユーザのプロフィール画面へ遷移

    • 投稿クリック: 投稿詳細画面へ遷移

    • ナビゲーションバー: 検索画面、通知画面、メッセージ画面へ遷移

  • 投稿画面

    • 投稿成功: ホーム画面へ遷移

  • マイページ画面

    • 戻るボタン: 前画面へ遷移

    • 編集ボタン: プロフィール編集画面へ遷移

    • フォロー/フォロワーリスト表示: フォロー/フォロワー一覧画面へ遷移

  • プロフィール画面

    • 戻るボタン: 前画面へ遷移

    • フォローボタン: そのユーザをフォロー

    • 自分のプロフィールの場合、編集ボタン: プロフィール編集画面へ遷移

  • プロフィール編集画面

    • 保存ボタン: 変更を保存し、マイページ画面へ遷移

    • キャンセルボタン: 変更を破棄し、マイページ画面へ遷移

  • フォロー/フォロワー一覧画面

    • 戻るボタン: 前画面へ遷移

    • ユーザ名クリック: そのユーザのプロフィール画面へ遷移

  • 検索画面

    • 戻るボタン: 前画面へ遷移

    • ユーザ名/投稿クリック: そのユーザのプロフィール画面/投稿詳細画面へ遷移

  • 通知画面

    • 戻るボタン: 前画面へ遷移

    • ユーザ名/投稿クリック: そのユーザのプロフィール画面/投稿詳細画面へ遷移

  • メッセージ画面

    • 戻るボタン: 前画面へ遷移

    • ユーザ名クリック: メッセージ詳細画面へ遷移

  • 投稿詳細画面

    • 戻るボタン: 前画面へ遷移

    • 他ユーザのアイコン: そのユーザのプロフィール画面へ遷移

    • コメントボタン: コメント入力モードへ遷移(この画面内)

    • いいねボタン: その投稿を「いいね」する

    • リツイートボタン: その投稿をリツイートする

  • パスワードリセット画面

    • リセットリンク送信成功: ログイン画面へ遷移

各画面の機能

  • ログイン画面:

    • メールアドレスとパスワードを入力してログイン

    • アカウントがない場合は、サインイン画面に遷移

    • パスワードを忘れた場合は、パスワードリセット画面へ遷移

  • サインイン画面:

    • ユーザ名(英数字)、メールアドレス、パスワードを設定し、アカウントを作成

  • ホーム画面(ダッシュボード画面):

    • フォローしているユーザの投稿と自分の投稿を表示

    • 新規投稿ボタンを押すと投稿画面に遷移

    • 自分の投稿のアイコンと、画面右上部に表示された自分のアイコンを押すと自分のプロフィール画面に遷移

    • 投稿に表示された他ユーザのアイコンを押すとそのユーザのプロフィール画面に遷移

  • 投稿画面:

    • 新規投稿を作成

  • マイページ画面:

    • 自分のプロフィールと自分の投稿を表示

    • プロフィール編集画面へのリンク

    • フォロー/フォロワーリスト表示

  • プロフィール編集画面:

    • 自己紹介テキスト、アイコン画像、ユーザ名を編集

  • プロフィール画面:

    • 他のユーザのプロフィールと彼らの投稿を表示

    • フォローボタンでそのユーザをフォロー

    • 自分自身のプロフィール画面の場合、プロフィール編集画面へのリンクが表示

  • フォロー/フォロワー一覧画面:

    • 自分がフォローしているユーザ、または自分をフォローしているユーザの一覧を表示

  • 検索画面:

    • ユーザー名またはキーワードを入力して検索を行う。結果はユーザーと投稿の両方で表示

  • 通知画面:

    • フォローされた、投稿がいいねされた、リツイートされた等の通知を表示

  • メッセージ画面:

    • フォローしているユーザーとの間でプライベートメッセージを送受信

  • 投稿詳細画面:

    • 投稿の詳細情報を表示

    • 投稿に対する「いいね」やリツイートの数を表示

    • 投稿に対するコメントを表示と新規コメントの作成

    • 他のユーザのアイコンをクリックするとそのユーザのプロフィール画面に遷移

  • パスワードリセット画面:

    • メールアドレスを入力し、パスワードリセットリンクを送信

    • パスワードリセットリンクをメールで受け取り、指示に従って新しいパスワードを設定

という感じで、シンプルなTwitterのクローンアプリの機能を書き出すことができた。UIをどうするかは正直悩むが、これらをどうにかして動く形で出力してもらうことにする。

次回に続く!

この記事が気に入ったらサポートをしてみませんか?