-
Notifications
You must be signed in to change notification settings - Fork 0
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 entity
とmapper
は不要かもしれない。data entity
を直接UIレイヤーで使う。 - 異常系は、シールドクラスで作成したカスタムExceptionをthrowさせる。シールドにしておくとUIレイヤー側でチェック漏れを防げる。
- Threading
- Repository or DataSourceには、Dispatchersに(IO Thread)を使う運用にします。
- 小規模アプリでは、
-
Proguard / R8
- Stableのライブラリを使わないと、本番リリース時に思わぬトラブルを招くので、alpha版のライブラリは極力使わない。
- 以前、Navigationライブラリのalpha版利用時に痛い思いをした。https://github.com/LeoAndo/AndroidAppTemplate/issues/40#issue-925121453