このリポジトリはMVVM のアーキテクチャで作られたFlutter製のサンプルアプリのリポジトリです。
MVVM の説明等は近日公開の記事をご確認ください。
このアプリは掲示板のように、簡単な一言を投稿できるアプリです。 以下の機能を持っています。
- GitHub ログイン機能
- 投稿表示機能
- GitHubのアイコン
- GitHubの表示名
- 投稿時刻
- 投稿内容
- 投稿機能
またUnitテストの実装も行っています。
このアプリは以下の環境で実行できることを確認しています。
- Android
- iOS
このアプリで使用しているBaaSやパッケージは以下です。
- Flutter 3.13.4 stable
- Firebase (Authentication, Cloud Firestore )
- Provider
ここで、設計パターンとはアーキテクチャのことを指しています。 このアプリはMVVM の設計パターンで作成されています。 MVVM の説明、メリット等については後日公開予定の記事をご確認ください。
このアプリは、MVVM のModel, View, ViewModel がそれぞれどのようなコードで記述されるか理解しやすいように、どのクラスグループ(レイヤー)に属するのかフォルダ名にて示しています。 このアプリの上位層はUIフォルダとModelフォルダにまず分かれます。 UI層にはView とViewModel のコードが機能ごとに保管されています。Model層には Model のコードが保管されています。
このアプリはMVVM の設計パターンで作成されたFlutterアプリのサンプルとして作成されました。 MVVM を知らない初学者の方に向けて、 どのようなフォルダ構成で、どのような状態管理を使うと実現できるのかの参考資料となるよう作成しています。 また、テストの実装の参考となるよう、Unitテストも実装しています。
このアプリはあくまで一例であり、MVVM でコードを書く際にはこうあるべきだ、と主張するものでないことをご理解ください。
このアプリがあなたの設計パターンの知識の役に立つことを願っています。