Slide 1

Slide 1 text

Androiderを育成する「高速道路」 と 実戦を経て辿り着いた現在地 id:yutailang0119 / @yutailang0119 id:jj1uzh / @jj1uzh 2026/09/02 DroidKaigi2026 1

Slide 2

Slide 2 text

yutailang0119 ● 株式会社はてな ○ @京都オフィス ○ アプリケーションエン ジニア ● モバイルアプリ歴10年 ● Apple、Swiftが好き 2

Slide 3

Slide 3 text

jj1uzh ● 株式会社はてな ○ @京都オフィス ○ アプリケーション エンジニア ● Androidアプリ 開発歴1年 ● iOS始めました 3

Slide 4

Slide 4 text

最初に... 採用は順調ですか? 4

Slide 5

Slide 5 text

採用は順調ですか? ● ソフトウェアエンジニア ● モバイルアプリエンジニア ● Androidアプリエンジニア 5

Slide 6

Slide 6 text

当時の社内状況 ● Androidアプリエンジニアの需要がある ● 他職種に比べて、採用難易度が高かった ● 採用も続けつつ、育成に取り組めないか 6

Slide 7

Slide 7 text

「リスキリング」 7

Slide 8

Slide 8 text

「リスキリング」 「リスキリング(Reskilling)」とは、新しいスキルや知識を習得して、 別の職務や業務に対応できるようになることを指します。 社会環境の変化により、働く方の学び・学び直し(リスキリング・リカ レント学習)の需要が高まっています。 https://www.mhlw.go.jp/roudou-navi/company/05.html 8

Slide 9

Slide 9 text

はてなリスキリング プログラム 9

Slide 10

Slide 10 text

はてなリスキリングプログラム サービス開発のなかでも、出版社向けマンガビューワ 「GigaViewer for Apps」をはじめとしたモバイルアプリの成長 が拡大している一方で、成長スピードに合わせたエンジニア人材 の確保に大きな課題がありました。 そこで、従来のOJTだけにとどまらない人材流動性の向上、キャ リア転換の支援を目的に「はてなリスキリングプログラム」を企 画し、実施に至りました。 https://hatena.co.jp/press/release/entry/2025/03/03/180000 10

Slide 11

Slide 11 text

はてなリスキリングプログラム ● 第一弾がモバイルアプリ開発スキル(Android) ● 対象はWebアプリケーションエンジニア ● 社内のモバイルアプリエンジニアが講師・メンター ● 3か月間 ○ 座学のカリキュラムからフルスクラッチのアプリ開発などの実践 ● 参加者のキャリア成長とスキル習得を支援 https://hatena.co.jp/press/release/entry/2025/03/03/180000 11

Slide 12

Slide 12 text

プロジェクト座組 12

Slide 13

Slide 13 text

講師・メンター ● yutailang0119自身は “Androidエキスパート” ではない ○ iOSアプリ開発が専門、Swiftに詳しい ● Androidアプリ開発経験はある ○ Android View時代 ○ Jetpack Composeの現代知識に更新できていない ● メンタリング経験は少ないが、開発リード経験がある ● Jetpack Composeをインプットしながら併走 13

Slide 14

Slide 14 text

プログラム実施チーム ● サービス基盤開発チーム ○ 自社サービス、アカウント基盤の開発運用 ○ 期間中の受講者はチームに所属 ● チームメンバー ○ 講師 yutailang0119 ○ モバイルアプリ開発に詳しいテックリード ○ Webアプリケーションエンジニア、SRE ○ ディレクター、デザイナー 14

Slide 15

Slide 15 text

カリキュラム 15

Slide 16

Slide 16 text

カリキュラム ● bootstrap(2 week) ○ モダンスタックに絞った学習カリキュラム ● scratch(2 week) ○ 2週間でアプリを完成させる ● devops(8 week) ○ 実プロジェクトへ合流 16

Slide 17

Slide 17 text

bootstrap(2 week) ● Android codelabs ○ https://developer.android.com/get-started/codelabs ● Material 3 ● Hilt、KSP ● Version Catalogs ● … 17

Slide 18

Slide 18 text

Compose を用いた Android アプリ開発の基礎 ● 現代開発の基礎を網羅した内容 ○ UI、リスト表示、ナビゲーション、アーキテクチャ ○ Retrofit、Coil、Room ○ WorkManager ● ユニット 1 ~ 8 ○ 推奨時間だと100時間超え https://developer.android.com/courses/android-basics-compose/course 18

Slide 19

Slide 19 text

bootstrap(副教材) ● Android アプリ アーキテクチャ ○ https://developer.android.com/courses/pathways/android-architecture ● android/nowinandroid ○ https://github.com/android/nowinandroid ● android/compose-samples ○ https://github.com/android/compose-samples ● 社内リポジトリ 19

Slide 20

Slide 20 text

scratch(2 week) ● 題材自由に「一人でアプリを作ってみる」 ● UI ○ リスト ○ 詳細表示 ○ State管理 ○ … ● ネットワーク通信、アカウント管理、データベース 20

Slide 21

Slide 21 text

scratch(2 week) ● 採用した技術の一例 ○ 複雑な設計のRoom ○ Cloud Firestore ○ Firebase Authentication -> はてなOIDC ● Firebase App Distributionで社内配布 21

Slide 22

Slide 22 text

devops(8 week) ● 開発・運用経験を積む ○ ディレクターが機能開発、方針を定め ○ スプリントで開発 ● はてなブログアプリのリニューアル 22

Slide 23

Slide 23 text

はてなブログ Androidアプリ 23

Slide 24

Slide 24 text

はてなブログ ● 歴史あるサービス ○ 2011年ベータ公開、2013年正式リリース ○ 「はてなダイアリー」も含めると20年以上 ● iOSアプリは2012年末リリース 24

Slide 25

Slide 25 text

はてなブログ Androidアプリ ● 由緒あるアプリ ○ Androidアプリは2014/10/28にリリース ● 往年の技術で実装 ○ Java、Android View ○ RxJava/RxAndroid ○ Gson、Picasso、... 25

Slide 26

Slide 26 text

はてなブログアプリのリニューアル ● リスキリングプログラム立ち上げに合わせ て、リニューアルプロジェクトも始動 ● はてなブログ本体とは、別組織として開発 ○ 技術選定、機能設計は一任された ● 仕様、API設計は、はてなブログチームと連携 26

Slide 27

Slide 27 text

はてなブログアプリのリニューアル ● フルスクラッチ ● Android 12+ ● Kotlin、Jetpack Compose ● Material 3、アダプティブレイアウト ● ウィジェット 27

Slide 28

Slide 28 text

タイムライン 28

Slide 29

Slide 29 text

タイムライン 時期 出来事 / 内容 2025年初頭 はてなブログ Androidアプリ 開発開始 2025年2月 プログラム第1期 開始 2025年5月 2025年8月 2025年11月 プログラム第1期 終了 → 1期生 アプリ開発チームに配属 プログラム第1.5期 開始 はてなブログ Androidアプリ リリース → 1.5期生 ブログアプリ継続開発 29

Slide 30

Slide 30 text

v3.0.0 https://staff.hatenablog.com/entry/androidappv3 30

Slide 31

Slide 31 text

v3.2.0 https://staff.hatenablog.com/entry/2025/12/08/113851 31

Slide 32

Slide 32 text

リスキリングプログラム 第1期 32

Slide 33

Slide 33 text

第1期 方針 ● 社内からメンバーを選出 ● 修了後、協業サービスチームへの配属を想定 33

Slide 34

Slide 34 text

第1期 メンバー選出 ● モバイルアプリ開発に興味がある Webアプリケーションエンジニア ○ 社内のエンジニア向け定期アンケート ○ 1on1 ● はてなでの開発経験を有している 34

Slide 35

Slide 35 text

1期生決定 & チーム異動! 35

Slide 36

Slide 36 text

第1期生 バックグラウンド ● Webエンジニアとして~5年の経験 ○ フロントエンドはReact ○ バックエンドはGoやPerl ● モバイル・Kotlin経験はほぼ無し 36

Slide 37

Slide 37 text

リスキリングプログラム 2025年2月〜5月 37

Slide 38

Slide 38 text

第1期 受講者の現在地 プログラム参加の対象となったWebアプリケーションエンジニア は、カリキュラムを通じて短期間でモバイルアプリ開発のスキル を習得した結果、モバイルアプリエンジニアへのスキル転換に成 功しました。 https://hatena.co.jp/press/release/entry/2025/11/18/153000 38

Slide 39

Slide 39 text

第1期 受講者の現在地 ● 協業サービスのチームに所属 ● 自立したAndroidアプリエンジニアとして活躍 ○ 開発リードの役割も ● iOSアプリ開発も開始 39

Slide 40

Slide 40 text

リスキリングプログラム 第1.5期 40

Slide 41

Slide 41 text

第1.5期 背景 ● 第1期終了後 ○ 1期生はアプリ開発チームに配属済み ● はてなブログリニューアルは リリースに向けて開発中だった 41

Slide 42

Slide 42 text

第1.5期 方針 ● 第1期のエッセンスを受け継ぐ ○ カリキュラムを絞って加速 ● はてなブログアプリの開発を引き継ぐ ○ リリースに向けた開発・リリース後の開発運用 42

Slide 43

Slide 43 text

第1.5期 カリキュラム ● はてなブログアプリの実際のコードで学ぶ前提 ● Composeを用いたAndroidアプリ開発の基礎 ○ リスト作成やナビゲーションなどを残す ○ 永続化やインターネット使用は省く ● スクラッチからのアプリ作成を省略 43

Slide 44

Slide 44 text

第1.5期 カリキュラム ● bootstrap(1〜2 week) ○ Composeを用いたAndroidアプリ開発の基礎 ● devops ○ はてなブログアプリへ合流 ○ 開発・運用を継続 44

Slide 45

Slide 45 text

第1.5期 メンバー ● サービス基盤開発チーム所属の Webアプリケーションエンジニア ○ リスキリングプログラム運営チーム ○ jj1uzhを含めて二人 45

Slide 46

Slide 46 text

第1.5期生 バックグラウンド ● 新卒入社組 ● Web(フロントエンド・バックエンド)の経験 ● モバイル・Kotlinは経験なし 46

Slide 47

Slide 47 text

リスキリングプログラム 2025年8月 ~ 47

Slide 48

Slide 48 text

2025年11月 はてなブログアプリ リニューアルリリース 🎉 48

Slide 49

Slide 49 text

第1.5期生 現在地 ● はてなブログ Androidアプリの 継続開発・メンテナンスを担当 ○ 元々のサービス基盤チームとしての仕事と並行 49

Slide 50

Slide 50 text

リスキリングプログラム を 振り返る 50

Slide 51

Slide 51 text

プログラムを実施できた背 景 51

Slide 52

Slide 52 text

モバイルアプリ開発への興味を醸成 ● 社内でのモバイルアプリエンジニアの存在感 ● エンジニア全体の勉強会 ○ Web・モバイル・SREなど 職種を跨いだトピック共有 ● エンジニア向けの社内アンケート 52

Slide 53

Slide 53 text

受講者のバックグラウンド ● はてなでの開発経験 ○ フルリモート下でのコミュニケーション ● モダンなWeb開発の経験 ○ 宣言的UI, DI, ORM, … 53

Slide 54

Slide 54 text

宣言的UIの経験 ● 受講者全員がReactを経験 54

Slide 55

Slide 55 text

宣言的UIの経験 ● 関数でUIを作る世界観は共通 ○ ただしライフサイクルが違う 55

Slide 56

Slide 56 text

プログラムのよかった点 56

Slide 57

Slide 57 text

プログラムに集中できる環境 ● 期間中はモバイルアプリに専念 ○ 他の仕事と並行しない ● 短期間に集中することで、効率よく身につく ● 高速道路は途中で降りない 57

Slide 58

Slide 58 text

いつでも訊ける相手 ● 専任の講師 ● モバイルアプリ開発に詳しいテックリード ● Androidエキスパート社員(チーム外) ○ Jetpack Composeに詳しい ○ SlackやGitHubでメンションして質問 58

Slide 59

Slide 59 text

いつでも訊ける相手 ● 受講者は作業ログを詳細に残す ● 講師や他の受講者が反応 59

Slide 60

Slide 60 text

いつでも訊ける相手 ● フルリモート ○ 講師・受講者で居住地もバラバラ ● 常に通話をつないだ状態にする ○ すぐ会話・画面共有できる ■ ※普段はミュート・カメラオフ 会話の中で過去の経緯や歴史を学べたのがよかった 60

Slide 61

Slide 61 text

基礎からの勉強 ● Compose を用いた Android アプリ開発の基礎 ○ 説明→演習→テスト 無料とは思えないほど充実していた、 典型的なアプリを作るならこれで十分 61

Slide 62

Slide 62 text

基礎からの勉強 ● 受講者おすすめ書籍 ○ Androidを支える技術 I・II ■ 古びない低レイヤの知識 ○ 詳解 Jetpack Compose ■ 基礎コースを進めていて分からなかったこと が書いてあった 62

Slide 63

Slide 63 text

自社アプリの開発 ● はてなブログAndroidアプリリニューアル への合流 ○ (ほぼ)純粋なCompose製 スクラッチから作るより、 既存のコードを触るほうが捗った 63

Slide 64

Slide 64 text

自社アプリの開発 ● 正式サービスゆえの制約 ○ 個人制作では考えないこと ○ メンテナンスコストを下げる ○ 既存のはてなブログAndroidアプリやiOSアプリ との機能差 ○ 機能の取捨選択、UIデザイン、アナリティクス、…… 64

Slide 65

Slide 65 text

自社アプリの開発 ● 設計の議論・相談がしやすかった ○ サービスへの理解がある ○ 社内サービスチームにすぐ相談できる 65

Slide 66

Slide 66 text

AI時代を迎えて 66

Slide 67

Slide 67 text

AI時代を迎えて ● プログラム当時(2025年中期)よりAIが進化 ● Android CLIの登場 ○ 公式ドキュメントで推奨Skillを指定 ● AI単独でアプリを作れるようになってきた 67

Slide 68

Slide 68 text

AI時代を迎えて ● AIを使う中でもリスキリングの基礎が活きた 知識がないとAIに書かせられないし、 出てきたものを理解できないし、 なにかあった時に修正できない 68

Slide 69

Slide 69 text

AI時代でも(まだ)変わらないこと ● キャリアの選択肢が広がる ● 自信をもって「ネイティブアプリを作る」 選択ができる 69

Slide 70

Slide 70 text

今リスキリングを始めるなら? ● AIを使わず、手を動かす時間を作る ○ はてなインターンの座学パートでは、 コーディングエージェントを使わない方針 ● AIを相談役として使う 学んだことを使ってみないと定着しない! 70

Slide 71

Slide 71 text

まとめ 71

Slide 72

Slide 72 text

まとめ ● 「はてなリスキリングプログラム」で、 Androidアプリエンジニアの育成した ○ 複数のAndroidアプリエンジニアが各チームで活躍中 ○ 第1期、1.5期を経て、エッセンスを社内に貯められた ● はてなブログ Androidアプリのリニューアル を達成 72

Slide 73

Slide 73 text

まとめ リスキリングプログラムの何がよかった? ● 講師が併走する環境 ● 短期間に集中して基礎を学べた ● 自社サービスアプリに取り組めた ○ サービスへの理解がある ○ 要件、課題がはっきりしている 73

Slide 74

Slide 74 text

まとめ リスキリングプログラムをなぜ実施できた? ● 社内に資産が揃っていた ○ サービス、ドメイン知識 ○ 技術投資 ○ エキスパート人材 ● モバイルアプリ開発への興味を醸成 ○ 社内外でのモバイルアプリ開発メンバーの存在感 74

Slide 75

Slide 75 text

はてなブログ Android https://play.google.com/store/apps/details?id=jp.ne.hatena.blog 75

Slide 76

Slide 76 text

hatena.co.jp/recruit 76 76