Upgrade to Pro — share decks privately, control downloads, hide ads and more …

モバイルアプリ開発未経験者が プロダクト開発に携わるまでに取り組んだこと/nikkei-tec...

モバイルアプリ開発未経験者が プロダクト開発に携わるまでに取り組んだこと/nikkei-tech-talk-27-3

2024/11/21開催 NIKKEI Tech Talk #27 「日経電子版モバイルアプリ特集 iOS・Android 技術で報道を進化させる開発の現場」
日本経済新聞社 澤田さんの発表スライドです。
「モバイルアプリ開発未経験者がプロダクト開発に携わるまでに取り組んだこと」というタイトルで発表しました

More Decks by 日本経済新聞社 エンジニア採用事務局

Other Decks in Technology

Transcript

  1. Androidエンジニアになるまで ~学生時代~ 2022年3月 情報工学科 卒業 2024年3月 情報工学専修 修了 研究内容:IoT (Internet

    of Things) システムアーキテクチャの設計 スマホ遍歴 iPhone 5s -> iPhone 7 -> iPhone SE 第2世代 -> iPhone 14 すなわち... Androidスマホを使ってこなかった人なんです 3
  2. この発表で伝えたい内容 • プロダクト開発にあたり習得すべき内容を順序付けして 計画的に学習を進める方法 → Android開発初学者 / Android開発してみたい iOSエンジニアが  

    何に取り組むべきなのかの指針になったら嬉しい → 新人を教えるエンジニアの方が   研修方針を立てる際の一助になったら嬉しい 半年間オンボーディングを進めてきた 4
  3. Androidアプリを開発するには... • プログラミング言語:Kotlin, Java • UI構築:Jetpack Compose, Android View •

    ネットワーク処理:Retrofit, Coil, Kotlin Coroutine • DB・ストレージ:Room, DataStore • テスト:JUnit, AndroidTest • アプリアーキテクチャ:関心の分離、単方向データフロー 7 これらが理解できれば簡単なアプリを作れそう!
  4. Codelab の網羅性を見てみよう 11 • プログラミング言語:Kotlin, Java • UI構築:Jetpack Compose, Android

    View • ネットワーク処理:Retrofit, Coil, Kotlin Coroutine • DB・ストレージ:Room, DataStore • テスト:JUnit, AndroidTest • アプリアーキテクチャ
  5. Codelab の網羅性を見てみよう 12 • プログラミング言語:Kotlin, Java • UI構築:Jetpack Compose, Android

    View • ネットワーク処理:Retrofit, Coil, Kotlin Coroutine • DB・ストレージ:Room, DataStore • テスト:JUnit, AndroidTest • アプリアーキテクチャ 基礎的な知識を学べることに加えて、 アプリをビルドできる喜びを味わえる
  6. その前に、 インプット • 「Compose を用いた Android アプリ開発の基礎コース」 で網羅的に学ぶ • その他上に含まれないが用意されているCodelab

    • プロダクトの開発方針・コードリーディング 研修期間中はインプットとアウトプットを並行して実施 14 アウトプット • Compose Codelabで提供される課題 • 自作アプリ(じゃんけんアプリ) • プロダクトオンボーディング
  7. インプット 1. Dagger Hilt (DIライブラリ) • Compose CodelabコースはDIを扱ってないため、個別の Codelab を実施

    • アウトプットできる環境が少ないため、Codelab の課題で積極的に使ってみる 2. Android View • Composeが推奨になるまで主流であったUIライブラリ • プロダクトで使われていない場合は優先度低め 「Compose を用いた Android アプリ開発の基礎コース」に含まれない内容 15 Codelabを一通り進める → 公式Docを見てより細かい内容を理解
  8. • カンファレンスに参加 ◦ Kotlin Fest, DroidKaigi (公式AppにContribute) • 技術書を読む •

    ドキュメント作成 ◦ コードリーディングで理解した内容を頭で整理 • 理解できた内容を整理した上でチームに週次共有 自主的にこれまでやってきたこと 21 → アウトプットの言語化, 理解できていない内容の明確化 「結果的に先輩エンジニアの学びにもなる」、という声も
  9. まとめ • Androidエンジニアになるには覚えることがとても多い • まずは Codelab に着手して Android アプリの全体像を知る •

    プロダクトに使われている技術を理解した上で学習する • 技術力が足りないからこそ 自分の理解度を正確に伝えて的確なアドバイスをもらう 22
  10. Codelab 一覧 25 Compose Codelab URL: https://developer.android.com/courses/android-basics-compose/course Hilt Codelab URL:

    https://developer.android.com/codelabs/android-hilt?hl=ja Android View Codelab URL: https://developer.android.com/courses/pathways/android-development- with-kotlin-4?hl=ja https://developer.android.com/courses/pathways/android-development- with-kotlin-5?hl=ja
  11. 半年間の業務を振り返る 26 • Scrollableなリスト表示ができる • アプリレイアウトを構築 5 ~ 6月 7月

    8月 9 ~ 10月 • 主要ライブラリに触れる • 自作アプリの機能要件を満たす • Android View に触れる • Android View でもレイアウトを作成 • コードリーディング • プロダクトissueを進める 8/13 プロダクトに初commit
  12. プロダクトでどのような技術が求められているか • 優:Googleが推奨するが、プロダクトで使われていないモダンな技術 ◦ マルチモジュール設計 • 良:Googleが推奨し、プロダクトで使われているモダンな技術 ◦ Compose, Coroutine,

    Room, AAC ViewModel • 可:より良い技術が登場しているが、非推奨になってない技術 ◦ Android View • 不可:サポート終了ライブラリ、内部的に@Deprecatedをつけたクラス ◦ Java, ListView, MVP設計 我々のチームでは、リファクタリングの優先度が決められている 27