Studyplus Engineering Blog

スタディプラスの開発者が発信するブログ

Studyplus AndroidアプリでMAD Scoreを計測してみました

新年あけましておめでとうございます。

モバイルクライアントチームの若宮(id:D_R_1009)です。 お正月にようやくポケモンシールドのチャンピオンを倒しました。 本当に強かった……。

さて、昨年末にMAD Scoreが登場しました。

今回はMAD Scoreの紹介をしつつ、弊社Studyplus Androidアプリの計測結果をお見せしたいと思います。

MAD Scoreとは?

developer.android.com

Modern Android Development から MAD を取っているようです。 Androidも世に出てから10年以上経っているので Modern を強調しているのかなと思います。

Android 11では、ついに AsyncTask を非推奨にすると明言されました。 AndroidX Fragment 1.3.0からは onActivityCreatedstartActivityForResult/onActivityResult が非推奨になっています。 いつの間にかKotlinは1.4系がリリースされ、1.4系の機能を利用したJetpack Composeはalpha版になりました。

Kotlin、Jetpack、Android Studio、Android App Bundle など、最新の Android 開発(MAD)は優れたアプリを構築するための基礎となります。

挙げられている4つの項目も、それぞれ10年前とは様変わりしています。 見比べてみると、確かに Modern なアプリ開発な気がしてきませんか?

  • JavaからKotlin
  • SupportライブラリからJetpack
  • EclipseからAndroid Studio
  • Android application package(apk)からAndroid App Bundle(aab)

次からStudyplus Androidアプリのスコアを見つつ、それぞれの項目がどう評価されるのかを見てみます。

Kotlin

f:id:D_R_1009:20201225084805p:plain

Kotlinは、アプリを構成しているKotlinのパーセントが表示されます。 そのほか、Kotlinのバージョンや利用しているライブラリが掲載されていますね。

tech.studyplus.co.jp

上記ブログのように2019年9月末に86%程度だったKotlin率は、2020年6月頭に99%となり、その後はKotlinのみ増減している状態になります。 1ファイルのみ、Paging 2のutilクラスをJavaで利用しているので、Paging 3のリリースと同時に100%となる見込みです。 リリースが待ち遠しい……!

そのほか、KTXやFlowの利用が表示されています。 FlowはRoomの他、Storeライブラリなどで利用しています。Cold Streamを手軽に扱えるのは、本当に重宝しますね。

tech.studyplus.co.jp

github.com

Jetpack

f:id:D_R_1009:20201225085802p:plain

Jetpackは、利用しているライブラリの数が表示されるようです。 思っていた以上に利用していてびっくりしました。

tech.studyplus.co.jp

Studyplusアプリは開発しているエンジニアの数が(利用ユーザーに対して)少なめなこともあり、Jetpackライブラリを活用した開発を重視しています。 機能性が高い、安定したライブラリが提供されていることは、とても幸運なことだと思っています。 今後も活用できそうなライブラリがあれば、積極的に利用していきたいところです!

Android Studio

f:id:D_R_1009:20201225090753p:plain

ちょっとコメントが難しいのですが、利用しているAndroid Studioのバージョンが表示されます。 現時点ではAndroid StudioとAGPのアップデートが一致してしまっているので、Android Studioを更新しにくい環境もあるかもしれません。

AGP 7.0からはAndroid Studioのバージョンと切り離されることになります。 そうするとこの問題も解決しますね。個人的にはR8のバージョンをいい感じにアップデートできるので嬉しいアップデートです。

android-developers.googleblog.com

なお、Android Studioのスコアを取得できるのは今だけ! (かも)

Android App Bundle

f:id:D_R_1009:20201225090833p:plain

1TB と圧のある数字が出ていますが、aabにすることで100万人がDLしたときに削減される容量のようです。 ただGoogle Play Storeをみてみると、Studyplus Androidは 1,000,000+ のDLとのことなので、数年規模で見ると的外れな数字ではないような気もしてきます。

もともとのアプリサイズ、そしてNDKを利用しているかどうかでこの値は変動する気がするので、大小を一概に良い悪いとは言えない値だと思います。 ですが、日々のアプリサイズを小さくする試みの成果をわかりやすく見ることができるのは、気分も軽くなるのではないでしょうか。

まとめ

f:id:D_R_1009:20201225090848p:plain

トータルの評価は G.O.A.T でした! 日々のAndroidチームの頑張りが評価されたようで、とても嬉しいです。

madscorecard.withgoogle.com

Android Studioにpluginを入れると数分で計測することができます。 ぜひ、計測してみてください!