Skip to content

architecture

Leo edited this page Jan 3, 2023 · 5 revisions

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

実装メモ

  • API KEYなどの秘匿情報は、 local.propertiesで管理する運用にしています。

  • ui layer

    • Android View(Xml)のPreviewを行いやすくするためにtools属性を活用しています。
    • シンプルなロジックであればViewModelで直接Repositoryを呼び出します。
    • エラーハンドリング(try catch)はViewModelで行います。
    • Threading
  • domain layer

    • Android Platform API(packageがandroid.xxで始まるもの)に依存しない運用にする。
    • Threading
    • Usecaseは、Dispatchersに(Default Thread)を使う運用にします。
    • Domain Model(必要であればSerialize)はこのレイヤで持つ。
    • ViewModelで同じロジックを作成したり、複数のRepositoryを呼び出してViewModelの処理が肥大化する場合はXXXUseCaseクラスを作成し処理を切り分ける運用にする。
  • data layer

    • 小規模アプリでは、domain entitymapperは不要かもしれない。data entityを直接UIレイヤーで使う。
    • 異常系は、シールドクラスで作成したカスタムExceptionをthrowさせる。シールドにしておくとUIレイヤー側でチェック漏れを防げる。
    • Threading
    • Repository or DataSourceには、Dispatchersに(IO Thread)を使う運用にします。
  • Proguard / R8

Clone this wiki locally