Skip to content

architecture

Leo edited this page Mar 5, 2023 · 4 revisions

アプリのアーキテクチャは以下のガイドラインを意識しています。
https://developer.android.com/topic/architecture

スクリーンショット 2023-02-15 14 28 44

UI LayerはUI 、 Domain LayerはDomain 、 Data LayerはDataに配置しています

スクリーンショット 2023-02-15 14 39 19

上記のState holdersはViewModelを使う運用にしています。
UI elementsは、ContentPageになります。

実装メモ

  • 各環境への切り替えはまだ未実装です.... issue

  • API KEYなどの秘匿情報の管理は、はまだ未実装です.... issue

  • ui layer

    • シンプルなロジックであればViewModelで直接Repositoryを呼び出します。
    • エラーハンドリング(try catch)はViewModelで行います。
    • Threading
    • ViewModelはStateHolderに該当します。
    • ほとんどのView Logicは「Xaml & DataBinding」で制御します
    • NavigationはShellを使います
  • domain layer

    • Mauiフレームワークに依存しない、Pure C#のコードで実装する
    • Threading
    • Model(record)はこのレイヤで持つ.
    • ViewModelで同じロジックを作成したり、複数のRepositoryを呼び出してViewModelの処理が肥大化する場合はXXXUseCaseクラスを作成し処理を切り分ける運用にする。
  • data layer

    • 小規模アプリでは、domain entitymapperは不要かもしれない。data entityを直接UIレイヤーで使う。
    • 異常系は、カスタムExceptionをthrowさせる。
    • Threading

利用パッケージ

パッケージの利用は最小限にしたい
https://github.com/CommunityToolkit/Maui

Clone this wiki locally