Androidアプリ開発を学び直してる話

前提情報

  • 2012年から9年ほどAndroidアプリの開発をしていた
  • 2021年4月までJava&Kotlinを使ったAndroidアプリ開発をしていた
  • ここ最近はFlutterでアプリの開発をしている
  • つまり2年間ほどKotlinを使ったAndroidアプリ開発をしていない

2年間でAndroidアプリ開発は何が変わったか

  • Jetpack Composeが本格的に使われるようになった
  • Jetpack Navigationやmulti-moduleの採用事例が増えた

変化を追う上でDroidKaigiアプリはとても参考になる。

github.com

github.com

なぜ学び直すのか

Flutterでアプリ作れるスキルがあるなら、アプリ次第ではFlutterで作った方がiOSAndroid両方で動くものが作れるので便利です。仕事でアプリを作る場合はFlutterが第一候補です。

ではなぜKotlinを使ったAndroidアプリ開発を学び直すのか?って話ですが、多くの企業ではFlutter登場前からアプリを作って運用してきた資産が山程あります。それらをメンテナンスし続ける需要はあります。例えば副業をやりたいなーって思った時もFlutterよりKotlinを使ったアプリ開発の方がまだ多いと思います。

市場としてまだ需要がある技術なら、学び直す価値は全然あるなーと思ったわけです。転職サイトで来るオファーでも「Androidアプリ開発お願いしたいぞ!」ってやつは多く来ます。

どう学び直してるか

仕事では全くやる機会がないため、個人でAndroidアプリ作成しながら学び直してる。とにかく早くアプリを作りたいという意味ではFlutterの方が断然楽なのだが、学び直し=学習が目的なのでKotlinを使ったAndroidアプリ開発にしている。

とはいえ作りたいものがない状態では学習も進まないので、Rebuildに特化したPodcastアプリを作ることにした。

rebuild.fm

最近のデファクトスタンダードなものを使って開発している。Jetpack ComposeもMaterial 3を使って実装している。

Jetpack ComposeやNavigation 何もわからん状態からのスタートなので、Composeを使ったテンプレートプロジェクトから始めた。そこから作りたいUIを実現するために必要なものをとにかくググりながら実装するみたいな感じ。ググるとMaterial 2の情報多く、Material 3とインタフェースが違い部分が多くてコピペしてもエラー出るしわからん!!ってことが頻発して厳しかった...(今もまだある)

どんなpackageやファイル構成でどこにどれを書くのがベストプラクティスなのかもわからないので、そこは気にせずとにかく実装してまずは動くものを作ることに集中している。ある程度慣れてきたらOSSなども参考にしつつ適切にファイル分割したりしている。

いきなり難しいことをせず、ひどいコードでもいいから書きながら学ぶスタイルでやってます。

9年もAndroidアプリ開発やってきてひどいコードとかウソでしょ?と思う方向けに作っているものをパブリックに公開しました。設計や読みやすいコードを学習したいわけじゃないのでまあいいかなーって気持ちでやってます。

github.com

おわりに

学び直すって楽しいよね🌸

現場からは以上です。