minneのAndroid開発者になるために知っておくと良さそうなこと(リンク集)
この記事はGMOペパボエンジニア Advent Calendar 2022の22日目の記事になります!
自分は今年の3月からiOSエンジニアから転身してGMOペパボでAndroidエンジニアとしてminneを開発させてもらってます。 minneのAndroidエンジニアとして活躍するべく、まだまだ勉強することは山積しているのですが、自分と同じように新たにAndroidエンジニアをやってみたい、それもminneを開発したいって方を対象に 知っていると良さそう、かつ個人的にお世話になったものをリンク集にしてまとめてみました。
はじめに
まず2022年現在のminneのandoridの開発環境がまとまっているので、こちらを一読ください! こちらを見ればminneのAndroidエンジニアになるためにはどんな技術を学べば良いかサクッとわかるかと思います!
Android関連の情報リソース
Andridエンジニアになるには当然、Androidに関して知る必要がありますよね? Andridエンジニア目指したことがある人にとっては知ってて当然のものではあるとおもいますが、 以下から有益情報を得ることができるので参考にどうぞ。
- DroidKaigi
DroidKaigiはAndroidのカンファレンスで、毎年開催されており、オンラインやオフラインでAndroidエンジニア同士のコミュニケーションの場になっています。 Andorid開発のその時ホットな技術トピックなど知ることができます。
- Now in Android
KotlinとJetpack Composeで完全に構築されたAndroidアプリ。Androidの設計と開発をベストプラクティスに従っており、開発者にとって役立つリファレンスとなることを目的としている。とのこと。 有志により開発されているアプリで、Github上からリポジトリが見れるので、開発に貢献してみたい、モダンなアーキテクチャのアプリを見てみたい方は一度確認してみると良いと思います。 また最近Google Play Storeからダウンロードできるようになったので、ぜひ触ってみてください
Android開発を学べるコンテンツ
Andoidを学ぶのに有益なコンテンツをまとめてみました。 実際に手を動かして学べるものも多いので、ぜひ見てください。
- Android Developersのトレーニングコース
Android Developersにハンズオン形式のトレーニングコースがあります。 レベル毎にプログラミング初心者から経験者まで学べる形になっており、内容もかなり充実しています。
- Codelab
小規模なアプリを作成するプロセスや、既存のアプリに新しい機能を追加するプロセスなどが学べます
codelabs.developers.google.com
- PhilippLacknerさんのYouTube
Androidの開発の技術トピック(DataBinding、ConstraintLayout、Kotlin、AAC (Android Architecture Components)、Jetpack、Kotlin Coroutineなど)からTipsまで幅広く学べるチャンネルです。 英語にはなりますが、字幕などを使えばわからないとこともないので、ぜひ視聴してみてください。
- モケラボ株式会社のYouTubeチャンネル
Android開発のYouTube動画は英語のコンテンツが多いですが、こちらは日本語でAndroid開発の基礎が学べます。 初心者でCodelab触ったけど、よくわからなかったって方におすすめです。
- Kodeco
モバイル開発を学ぶのに特化した学習コンテンツのプラットフォームです。 サブスクリプション形式で少し値段が高めではありますが、書籍や動画など優良なコンテンツが豊富なので、ぜひ一度見てみてください。
minneで使われているフレームワーク・ライブラリを知る
minneで使われているフレームワーク・ライブラリの一部を共有します。
Kotlin Coroutine
minneではKotlin 内での非同期処理には Coroutines を用いており、マストで知るべき技術トピックになります。
Android での Kotlin コルーチン | Android デベロッパー | Android Developers
Kotlin の Coroutine を概観する - Qiita
Dagger Hilt
minneではDI(Dependency Injection)用のライブラリとしてDagger Hiltを利用しています。 DIはプログラミング初心者の方だと概念から理解するのに少しとっつきにくいかもしれないですが、 単体テストが容易になるなど、何かと便利なので、これもマストで知るべき技術トピックになります。
Android アプリでの Hilt の使用 | Android デベロッパー | Android Developers
Dagger Hilt (DevFest 2020 資料) - Qiita
Jetpack Compose
新規の画面はJetpack Composeで実装することを、開発方針として掲げており、 既存画面もJetpack Composeに書き換えていく予定なので、こちらもマストで知るべき技術トピックです
Android Compose のチュートリアル | Android デベロッパー | Android Developers
HTTP リクエスト
minne では REST API では Retrofit2 を利用していますが、今後 Web APIは GraphQL で実装することを開発方針としており、 こちらも理解しておくべき技術トピックになります。
柔軟、堅牢なアプローチを提供するGraphQL minne AndroidがFacebook製クエリ言語を採用した理由 - ログミーTech
Epoxy
minneではRecyclerViewを使ってはいますが、Adapter などに独自で処理を実装する必要があり、実装する上で面倒な処理も多いためそれを解消してくれる Epoxyというライブラリも使っています。 新たな画面はJetpack Composeを用いることが望ましいとしていますが、Epoxyで実装されている画面もまだまだ多く理解しておくとベターです。
複雑な画面をRecyclerViewで作るEpoxy - Android - まっせぎ blog
minneで採用されているアーキテクチャを知る
minneでは、基本的にMVVMを採用しており、minneのアーキテクチャに関する記事があるので、 ぜひそちらをご確認ください。
Android アーキテクチャ コンポーネント | Android デベロッパー | Android Developers
Android Meetup イベントレポート - Pepabo Tech Portal
デザインに関して
Material Design
マテリアルデザインとは、Googleが推奨する明確なガイドラインが定められたデザインであり、 「見やすく、直感的に操作できるWebページ・サービス」を作ることを目的としており、新規画面はマテリアルデザインを踏襲した画面になるので、 エンジニアも知るべき物になります。
マテリアルデザインとは?歴史とトレンドから考える今後のUIデザイン - WEB改善事例集(GMOソリューションパートナー株式会社)
Figma
minneではデザインツールとしてFigmaを使用しており、 デザイナーさんとのコミュニケーションツールになるのでエンジニアも使い方を知っておくのがベターです。
CI / CD
※追記予定
最後に
どうだったでしょうか? こうしてみると結構知っておくべきことが多いなぁって思います。 リンクを並べただけですが、minneのAndoridエンジニアとして9ヶ月ほどやってきて役に立った記事や情報などを共有させていただきました。 これからAndroidアプリ開発を始めたい方、特にminneのAndroid開発をしたいって方の参考になれば幸いです。 また、minneの開発にもし興味がありましたらこちらの採用ページもご覧ください。