Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Android Day1
Search
Recruit
PRO
September 09, 2022
Technology
1
2.6k
Android Day1
2022年度リクルート エンジニアコース新人研修の講義資料です
Recruit
PRO
September 09, 2022
Tweet
Share
More Decks by Recruit
See All by Recruit
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
76
VPC Traffic Mirroring とOSS を利⽤した ネットワークフォレンジック基盤の構築・運⽤
recruitengineers
PRO
1
44
スタサプ ForSCHOOLアプリのシンプルな設計
recruitengineers
PRO
3
1k
リクルート流データ基盤塾~鶴谷と学ぶ~
recruitengineers
PRO
5
240
『SUUMO』 スマホサイト デザインリニューアルへの挑戦
recruitengineers
PRO
5
340
『リクルートダイレクトスカウト』 のリニューアルから振り返る: ビジョンドリブンの可能性
recruitengineers
PRO
3
310
負債あるモノリスのオブザーバビリティに組織で向き合う
recruitengineers
PRO
9
400
あなたの知らないiOS開発の世界
recruitengineers
PRO
4
330
大規模プロダクトにおける組織作りと技術ポートフォリオマネジメント
recruitengineers
PRO
4
490
Other Decks in Technology
See All in Technology
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
3
190
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
170
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
510
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
580
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.1k
Engineer Career Talk
lycorp_recruit_jp
0
120
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
160
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
580
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
300
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
290
Terraform Stacks入門 #HashiTalks
msato
0
350
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
GraphQLとの向き合い方2022年版
quramy
43
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
YesSQL, Process and Tooling at Scale
rocio
169
14k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Music & Morning Musume
bryan
46
6.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Into the Great Unknown - MozCon
thekraken
32
1.5k
It's Worth the Effort
3n
183
27k
Transcript
BootCamp2022 Android講習 Recruit BootCamp 2022 Android. 1
二日間の目的とゴール 目的 Androidチーム配属のときに摩擦なく開発を始められる前提知識を身につける。 詳細 現場で使う:「アプリを作れるようになる」ではなく、「アプリチームで働く一助にな る」こと。 摩擦なく:必要になった時にこの講義に立ち返ると学びの一歩目が得られる。 前提知識:Androidアプリがどうやって動いているか、どこに気をつけて開発する必要が あるかの肝を知る。 Recruit
BootCamp 2022 Android. 2
講師紹介 名前:河内友佑(2020年入社) 所属:HRプロダクト開発2G 担当:タウンワークAndroid Recruit BootCamp 2022 Android. 3
講師紹介 名前:石井潤(2018年入社) 所属:HRプロダクト開発2G 担当:タウンワークiOS/Android Recruit BootCamp 2022 Android. 4
現場での仕事の解像度を上げる タウンワークって? 引用元 タウンワーク90万原稿の掲載を支えるレガシーバッチチューニング Recruit BootCamp 2022 Android. 5
アプリが価値を生む 例① エンハンス開発 価値が生まれるまでの時間を短く 生まれる価値を上げ (スコープ外) 障害を出さないよう にリリースすること 引用元 事業価値とエンジニアリン
グ 61期リクルート新人研修 Recruit BootCamp 2022 Android. 6
アプリが価値損失を防ぐ 例② 安定稼働タスク 検知からリリースまでを最速 見つける 原因の切り分け 解決策 修正→リリース 引用元 事業価値とエンジニアリン
グ 61期リクルート新人研修 Recruit BootCamp 2022 Android. 7
"エンハンス開発"の価値を最大化するのに必要なこと Recruit BootCamp 2022 Android. 8
"安定稼働タスク"を実施するのに必要なこと Recruit BootCamp 2022 Android. 9
二日間の目的とゴール(再掲) 目的 Androidチーム配属のときに摩擦なく開発を始められる前提知識を身につける。 詳細 現場で使う:「アプリを作れるようになる」ではなく、「アプリチームで働く一助にな る」こと。 摩擦なく:必要になった時にこの講義に立ち返ると学びの一歩目が得られる。 前提知識:Androidアプリがどうやって動いているか、どこに気をつけて開発する必要が あるかの肝を知る。 Recruit
BootCamp 2022 Android. 10
現場で使うとは いろいろと気を遣う部分があります。 Android開発ができるという一般的なスキル以外にも 1. 開発フローの話:チーム開発・案件の策定からリリースまでのフロー 2. 既存コードの理解:技術的負債(ソースコードの負債・古いライブラリ) 3. プロダクトの理解・仕様理解 4.
障害対応 5. OS/IDEの最新版追随対応:非推奨対応 6. 肥大するコードへの対応:ビルド時間問題・潜在的なリスク などへのケアが必要です。 Recruit BootCamp 2022 Android. 11
摩擦なく Android開発において必要な知識や用語を満遍なく知ることによって、必要になった際に、 「何を学べばいいか」がわかっている状態になることが目標です。そのために、アプリ開発 や言語の知識だけでなく、ところどころで実際にあった事象を例に小噺を差し込み、「そん なことがあるんだ」という導入の部分だけでも知っておいてもらうことを意識しています。 Recruit BootCamp 2022 Android. 12
前提知識 Android開発ができるようになる上で、知っておくべきことは多岐にわたります。 1. 言語知識:Kotlin/Java (そのほかにも環境によってはGroovyなど) 2. IDE知識:Android Studioの使い方を知る必要があります。 3. アプリ開発基礎知識:UI、ロジックの実装方法、データストアの方法など
4. Androidの動き方:スレッドがどう動くのか、どこで非同期処理を操るかなど こういった部分の始まりの部分を2日間に詰め込み、「やったことあるな」という状態にし ておくことを意識しています。 Recruit BootCamp 2022 Android. 13
コンテンツ 初日: 導入 Kotlinの基礎(2時間ぐらい) [座学+実際に触る] Android開発の基礎(2時間ぐらい) [座学+実際に触る] エンハンス体験 [実際に触る] 二日目:
エンハンス体験 [実際に触る] ところどころ小噺 クロージング Recruit BootCamp 2022 Android. 14
講習中のお願い・注意事項 3. チャットはSlackに統一します。発言自由にするので、質問や進捗報告、わかったアピー ル、わからないアピールなど何にでも使ってください。 4. 座学中・演習中問わず、常に口頭での質問で遮ってください。歓迎です。 5. 受講者の間で意見を交換するのも、会話をするのも自由です。 6. グループ分けはしません。
Recruit BootCamp 2022 Android. 15
コンテンツ詳細 Kotlinの学習 目的 後続のコンテンツ(エンハンス体験)をする際に「知らない・読めない」を極力なく する程度の必要最低限レベルを習得すること ゴール スムーズに書けなくても、例題やリファレンスに立ち返ればわかる、どこを質問す ればいいかわかるぐらいになる Recruit BootCamp
2022 Android. 16
Androidアプリ開発の基礎 目標 エンハンス体験をする際に、何か目的をもって変更しようとして、ソースコード以 外の部分で困ることがないこと ゴール どこにファイルを追加したらいいかがわかる、また、どこにソースコードを書けば いいかがわかること Recruit BootCamp 2022
Android. 17
Android OSの話 目標 価値の最大化・損失の最小化をするための第一歩。 ゴール 「Androidってそういうことがあるのか」と何となく頭の中に残ることです。 ところどころでAndroid OSに関する小ネタを挟みます。 昨今のライブラリを上手に活用すると意識しなくてすむ部分が多いのですが、歴史の長いプ ロダクトであればあるほど古い基盤に依存しているものが多いです。
ある程度OSがどういう処理をしているのかを知っていないと、実装上思わぬ危険性を埋め込 むことになったり、実行時エラーが発生してクラッシュしたりすることがあります。途中か らエンハンス体験中心になりますが、定期的に小ネタを挟みながら、実際にアプリケーショ ンを作る際に気にするべきところを学んでいきましょう。 Recruit BootCamp 2022 Android. 18
エンハンス体験(メインコンテンツ) 目標 「実際の案件っぽい」テーマのエンハンスをしてみることによって、Android開発 の基礎がわかり、満遍なく一度調べたこと・触ったことがあるという状態になるこ と ゴール いずれAndroid開発に関与することになったときに、既存実装を追いやすくなるこ と、簡単な案件であれば摩擦なく実施できること Recruit BootCamp
2022 Android. 19
コンテンツ(再掲) 初日: 導入 → Kotlinの基礎(2時間ぐらい) [座学+実際に触る] Android開発の基礎(2時間ぐらい) [座学+実際に触る] エンハンス体験 [実際に触る]
二日目: エンハンス体験 [実際に触る] ところどころ小噺 クロージング Recruit BootCamp 2022 Android. 20
環境構築の確認 Recruit BootCamp 2022 Android. 21
はじめる前に 環境確認 必要なもの Android Studio (2021.1.1以上) Android Emulator GitLabの権限 動作確認
Android Emulator AVDを使ってEmulatorを追加してみる Recruit BootCamp 2022 Android. 22
Kotlinの基礎 Recruit BootCamp 2022 Android. 23
Why Kotlin? Kotlinとは JetBrain社が開発したオープンソースの静的型付け言語。 Java仮想マシン上で動作するので、Javaと同程度に早くコンパイルされ動作される。 Javaとの互換性を残しつつ、Java内の互換性維持のためJavaでは実現できない機能を追加し たり、将来的にJavaで実現したいことを先読みして採用したり、Scalaから関数型言語の良さ の一部を採用したりしている。(糖衣構文など) 2019年にGoogleがKotlinをAndroid開発の推奨言語に指定した。 (※
ここまでwikipedia) Recruit BootCamp 2022 Android. 24
Why Kotlin? 公式ページに行ってみよう Kotlin https://kotlinlang.org/#why-kotlin Develop Android with Kotlin https://developer.android.com/kotlin?hl=ja
Recruit BootCamp 2022 Android. 25
Kotlin研修の進め方 GitLabとKotlin Playgroundで進めます 1. GitLab の lesson/kotlin を開いて下さい。 2. テーマごとのディレクトリに
README.md が含まれています。 3. 各章について、本当に簡単に説明します。 4. その後各自で各章の内容を読み、練習問題に取り組んでください。 5. 練習問題の回答をSlackのチャットで共有してください。 6. 追加の説明事項があれば補足した上で、次の章に進みます。 7. 2-6を繰り返します。 Recruit BootCamp 2022 Android. 26
Kotlin Playgroundについて 開き方 練習問題 https://pl.kotl.in/dzgYxklC4?theme=darcula Open in Playground → を選択する。
Recruit BootCamp 2022 Android. 27
Kotlin Playgroundについて 実行方法 の ▶︎ を選択 Recruit BootCamp 2022 Android.
28
Kotlin Playgroundについて 共有方法 <> を選択すると、右のようなダイア ログが出現するので、 Medium を選択してその下のURLをコ ピーする。 Recruit
BootCamp 2022 Android. 29
ハンズオン開始 GitLabに移ります。 ここからは『通話 + ハンズオン』 Recruit BootCamp 2022 Android. 30
コンテンツ(再掲) 初日: 導入 Kotlinの基礎(2時間ぐらい) [座学+実際に触る] → Android開発の基礎(2時間ぐらい) [座学+実際に触る] エンハンス体験 [実際に触る]
二日目: エンハンス体験 [実際に触る] ところどころ小噺 クロージング Recruit BootCamp 2022 Android. 31
Android開発の基礎 GitLabに移ります。 ここからは『通話 + ハンズオン』 Recruit BootCamp 2022 Android. 32
コンテンツ(再掲) 初日: 導入 Kotlinの基礎(2時間ぐらい) [座学+実際に触る] Android開発の基礎(2時間ぐらい) [座学+実際に触る] → エンハンス体験 [実際に触る]
二日目: エンハンス体験 [実際に触る] ところどころ小噺 クロージング Recruit BootCamp 2022 Android. 33
Androidエンハンス体験 実際にソースコードを触ってみよう ここでは、サンプルアプリを使って実際にAndriodアプリの機能追加をしていきます。 1. まずアプリの中身を覗いてみる 2. 実際にちょっと触ってみる 3. Issueベースでどんどん進めていく という流れで進めていきましょう。
Recruit BootCamp 2022 Android. 34
MyGithubApp 今回のお題について 今回お題として準備したのは、GitHubAPIを利用した簡単な検索アプリです。 講師陣が普段触っているタウンワークもそうですが、リクルートが提供しているクライアン ト向けアプリは、 「検索」→「一覧表示」→「詳細表示」→「アクション」 という動きをするものが多いです。(リクルートに限りませんが) なので、今回はその動きを模したアプリを使って、実際に現場で発生しそうなテーマを実装 しながら、Android開発について学んでいきましょう。 Recruit
BootCamp 2022 Android. 35
環境構築 GitLabから引っ張ってくる リポジトリをフォークしてください。 立ち上げます $ cd 任意の場所 $ git clone
hogehoge $ cd MyGithubApp $ studio . で立ち上がります。 ( studio コマンドを使うために) ※ AndroidStudio側で、 Tools→Create Command-line Launcher をクリック→OKを選択く ださい。 Recruit BootCamp 2022 Android. 36
実際に動かしてみる ▷をクリックして起動する。 Recruit BootCamp 2022 Android. 37
ここからはたくさん書いて触れ合ってみましょう 開発体験 進め方 1. GitLabのIssueが課題になります。順番に進めていってください。 2. いつでも質問対応するので、メンションをください。 おすすめ問題 (これをやればまんべんなくいろいろ見れる) *
Issue1 * Issue4 * Issue7 * Issue10 * Issue12 ※ 当日はGitLabで実施しました。公開用にGitHubに移行しているのでこちらをご覧くださ い。 Recruit BootCamp 2022 Android. 38
ルール 1. issueそれぞれに対して、 enhance/issue{number} を切って main ブランチへのPRを 作成してください。 2. PRが作れたら、メンションしてください。
3. 講師が確認し、共有できそうなところや補足があれば共有します。 4. みんなの間での会話、何か調べ物をする行為などは自由です。 5. お昼休みは明示的に取ります。それ以外の細かい休憩は各自で取得して下さい。 Recruit BootCamp 2022 Android. 39
Issueの見方 問題 今の状態での困りごと 要件 やってほしいこと ヒント 参考になるスライドページなど 学び この案件で学べること 実際の業務では
実際にあった似たような案件 Recruit BootCamp 2022 Android. 40