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
Azure Functions HTTPトリガーにおけるタイムアウトでハマったこと
recruitengineers
PRO
2
150
実務につなげる数理最適化
recruitengineers
PRO
6
690
うちにも入れたいDatadog
recruitengineers
PRO
2
380
リクルートのデータ基盤 Crois 年3倍成長!1日40,000コンテナの実行を支える AWS 活用とプラットフォームエンジニアリング
recruitengineers
PRO
2
330
Splunk Enterpriseで S3のデータを直接検索してみた!
recruitengineers
PRO
2
150
Looker APIを使い倒す ユーザーフィードバックを基にした継続的改善サイクル
recruitengineers
PRO
3
57
Kaggleふりかえり会〜LLM 20 Questions & ISIC 2024
recruitengineers
PRO
2
230
Balancing Revenue Goals and Off-Policy Evaluation Performance in Coupon Allocation
recruitengineers
PRO
2
51
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
390
Other Decks in Technology
See All in Technology
Wantedly での Datadog 活用事例
bgpat
1
430
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
12
3.5k
新機能VPCリソースエンドポイント機能検証から得られた考察
duelist2020jp
0
210
アップデート紹介:AWS Data Transfer Terminal
stknohg
PRO
0
180
コンテナセキュリティのためのLandlock入門
nullpo_head
2
320
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
680
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
150
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
160
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
120
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
180
Snowflake女子会#3 Snowpipeの良さを5分で語るよ
lana2548
0
220
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
440
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
94
13k
Speed Design
sergeychernyshev
25
670
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Adopting Sorbet at Scale
ufuk
73
9.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Why Our Code Smells
bkeepers
PRO
335
57k
Building Adaptive Systems
keathley
38
2.3k
Music & Morning Musume
bryan
46
6.2k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
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