Android開発をやるときに決めること

Android初心者なので、間違ってることとかあったら教えてください

言語を決める

AndroidJavaもしくはKotlinを使って開発する必要がある。 今だったら基本、Kotlinを選ぶ。だけどJavaで書きたいとか Kotlinを全然覚えられる気がしないとか、初心者ですとかだったら Javaを選んでもいいのかなーって思ってる。

※正しくはAndroidは他の言語でも書くことは可能だけど、公式でサポートしているという意味ではJavaとKotlinのみ

Rxを使うかどうか決める

RxAndroidを使うかどうか。 結局、スマホアプリは状態を非常に多く持ちやすいので、Observerパターンのようなものの 実装に落ち着きやすいと思っている。 その上で、Rxを使うことでそういった処理が書きやすくなるのかなって思ってる。

GitHub - ReactiveX/RxAndroid: RxJava bindings for Android

DIに何を使うか決める

Dagger2というものが一番多く使われているらしい。 他のもあるみたいだけど、ちょっと調べきれてない。

Android Architecture Componentsを使うかどうか決める

堅牢でテスト性とメンテナンス性に優れたアプリを設計するためのライブラリのコレクションだそうだが、 見た感じ、良さそうな感じする。Androidライフサイクルの管理が楽になりそう。 学習コストは高いみたいだけど、自分がやるんだったら選択すると思う。 学習コスト払いたくないなら使わず書くのもいいと思う。

developer.android.com

DBライブラリを選ぶ

基本的にはRealmかOrmaを選択すると思う。 Android Architecture Componentsを使ってるんだったらRoomを選択してもいいような気がする。 よほどパフォーマンスを求めたいのなら、Realm一択かと思われ。

Realm: Create reactive mobile apps in a fraction of the time

https://github.com/maskarade/Android-Orma

最初に何を選択するかによってアプリの実装しやすさがかなり変わってくるので、 ちゃんと選んでおくことをオススメします。