gikyu's memo

気が向いたら書いていきます?

minneのAndroid開発者になるために知っておくと良さそうなこと(リンク集)

この記事はGMOペパボエンジニア Advent Calendar 2022の22日目の記事になります!

自分は今年の3月からiOSエンジニアから転身してGMOペパボAndroidエンジニアとしてminneを開発させてもらってます。 minneのAndroidエンジニアとして活躍するべく、まだまだ勉強することは山積しているのですが、自分と同じように新たにAndroidエンジニアをやってみたい、それもminneを開発したいって方を対象に 知っていると良さそう、かつ個人的にお世話になったものをリンク集にしてまとめてみました。

はじめに

まず2022年現在のminneのandoridの開発環境がまとまっているので、こちらを一読ください! こちらを見ればminneのAndroidエンジニアになるためにはどんな技術を学べば良いかサクッとわかるかと思います!

tech.pepabo.com

Android関連の情報リソース

Andridエンジニアになるには当然、Androidに関して知る必要がありますよね? Andridエンジニア目指したことがある人にとっては知ってて当然のものではあるとおもいますが、 以下から有益情報を得ることができるので参考にどうぞ。

developer.android.com

  • AndroidDagashi
    Android関連のニュースを得ることができます。 RSS リーダーなどを使って常に最新情報を取得できるようにしておくのをオススメします。

androiddagashi.github.io

  • DroidKaigi
    DroidKaigiはAndroidのカンファレンスで、毎年開催されており、オンラインやオフラインでAndroidエンジニア同士のコミュニケーションの場になっています。 Andorid開発のその時ホットな技術トピックなど知ることができます。

droidkaigi.jp

  • Now in Android
    KotlinJetpack Composeで完全に構築されたAndroidアプリ。Androidの設計と開発をベストプラクティスに従っており、開発者にとって役立つリファレンスとなることを目的としている。とのこと。 有志により開発されているアプリで、Github上からリポジトリが見れるので、開発に貢献してみたい、モダンなアーキテクチャのアプリを見てみたい方は一度確認してみると良いと思います。 また最近Google Play Storeからダウンロードできるようになったので、ぜひ触ってみてください

github.com

Android開発を学べるコンテンツ

Andoidを学ぶのに有益なコンテンツをまとめてみました。 実際に手を動かして学べるものも多いので、ぜひ見てください。

  • Android Developersのトレーニングコース
    Android Developersにハンズオン形式のトレーニングコースがあります。 レベル毎にプログラミング初心者から経験者まで学べる形になっており、内容もかなり充実しています。

developer.android.com

  • Codelab
    小規模なアプリを作成するプロセスや、既存のアプリに新しい機能を追加するプロセスなどが学べます

codelabs.developers.google.com

  • Android DevelopersのYouTube
    Android DevelopersのYouTubeチャンネルです。新たな機能がでた際に、動画を通して学べるので登録しておくと便利です。

www.youtube.com

  • PhilippLacknerさんのYouTube
    Androidの開発の技術トピック(DataBinding、ConstraintLayout、Kotlin、AAC (Android Architecture Components)、Jetpack、Kotlin Coroutineなど)からTipsまで幅広く学べるチャンネルです。 英語にはなりますが、字幕などを使えばわからないとこともないので、ぜひ視聴してみてください。

www.youtube.com

  • モケラボ株式会社のYouTubeチャンネル
    Android開発のYouTube動画は英語のコンテンツが多いですが、こちらは日本語でAndroid開発の基礎が学べます。 初心者でCodelab触ったけど、よくわからなかったって方におすすめです。

www.youtube.com

  • Kodeco
    モバイル開発を学ぶのに特化した学習コンテンツのプラットフォームです。 サブスクリプション形式で少し値段が高めではありますが、書籍や動画など優良なコンテンツが豊富なので、ぜひ一度見てみてください。

www.kodeco.com

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を使用しており、 デザイナーさんとのコミュニケーションツールになるのでエンジニアも使い方を知っておくのがベターです。

エンジニアのための Figma 知識

CI / CD

※追記予定

最後に

どうだったでしょうか? こうしてみると結構知っておくべきことが多いなぁって思います。 リンクを並べただけですが、minneのAndoridエンジニアとして9ヶ月ほどやってきて役に立った記事や情報などを共有させていただきました。 これからAndroidアプリ開発を始めたい方、特にminneのAndroid開発をしたいって方の参考になれば幸いです。 また、minneの開発にもし興味がありましたらこちらの採用ページもご覧ください。