Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
新卒AndroidエンジニアがOJTで学んだこと
Search
atomic
July 24, 2024
Programming
190
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
新卒AndroidエンジニアがOJTで学んだこと
2024/07/25(木) pixiv App Nightで発表した「新卒AndroidエンジニアがOJTで学んだこと」の資料です
atomic
July 24, 2024
More Decks by atomic
See All by atomic
pixivコミックのLiquid Glass対応
atomic928
0
49
pixivコミックでのXcode16対応
atomic928
0
190
Other Decks in Programming
See All in Programming
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
180
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
290
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
310
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
150
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
370
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
310
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
4.9k
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
3
630
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
170
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
450
Groovy as a human and AI friendly programming language
paulk
0
140
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
200
Featured
See All Featured
Speed Design
sergeychernyshev
33
2.2k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
880
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
440
Discover your Explorer Soul
emna__ayadi
2
1.3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.5k
Building an army of robots
kneath
307
47k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
290
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
590
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
2
970
Transcript
atomic ৽ଔAndroidΤϯδχΞ͕OJTͰֶΜͩ͜ͱ
ࣗݾհ
atomic • 2024৽ଔೖࣾ • ॴଐ • OJTɿpixivΞϓϦ Android • ݱࡏɿpixivίϛοΫΞϓϦ
iOS • झຯɿϙʔΧʔɺϦΞϧग़ήʔϜ
ΞδΣϯμ
ΞδΣϯμ • ϐΫγϒͷ৽ଔݚम • OJTͰऔΓΜͩλεΫ • ݟસͬͯΒͬͨλεΫ • ઓͤͯ͞ΒͬͨλεΫ •
OJTશମΛ௨ͯ͠ಘֶͨͼ
ϐΫγϒͰ৽ଔೖࣾ͢Δͱʁ
ೖࣾޙͷϑϩʔ ৽ଔݚम 4݄ 5݄ 6݄ 7݄ OJT ຊଐ 4/1 ~
4/15 ~ 7/1 ~
ಛ • ৽ଔݚमʢOFF-JTʣ • ओʹϓϩμΫτ৬छʹֶ͍ͭͯͿ • 2िؒͰ70ߨ࠲ͷϘϦϡʔϜ • OJT •
࣮ࡍͷνʔϜʹଐ͞ΕɺۀܦݧΛੵΉ • ৽ଔ1ਓ1ਓʹϝϯλʔ͕ͭ͘ • OJTʹదͨ͠λεΫΛݟસͬͯΒͬͯΒ͏ • Γ͍ͨ͜ͱʹઓͤͯ͞Βͬͨ
OJTதʹऔΓΜͩ͜ͱ
ओʹऔΓΜͩλεΫ • ݟસͬͯΒͬͨλεΫ • Ϟδϡʔϧׂ • MVVMԽ • ઓͤͯ͞ΒͬͨλεΫ •
CIվળ w νʔϜͰϚχϡΞϧԽ͞Ε͍ͯΔ w ܦݧ͕ͳͯ͘ணख͍͢͠ w ͲͷνʔϜऔΓΜͰ͍Δ w ຊଐͰͲͷνʔϜʹߦͬͯ׆͖Δ
Ϟδϡʔϧׂ
Ϟδϡʔϧׂ • pixivΞϓϦͷϞδϡʔϧߏ • app, feature, data, domain, coreͰߏ
ϞδϡʔϧׂͷਐΊํ • pixivΞϓϦͰϚχϡΞϧԽ͕ਐΜͰ͍Δ • domain, data, featureͷॱ൪Ͱߦ͏ • ॥ࢀর͕ى͖ͳ͍ॱ൪ •
࣮ʹखΛՃ͑ͳ͍ • ϑΝΠϧҠಈ͚ͩͰ͕ࠩଟ͍ • ࣮ʹखΛՃ͑ΔͳΒMRΛ͚Δ
ֶͼ • ϑΝΠϧҠಈͷΈͰMRΛ͚Δ • ͻͱͭͷϞδϡʔϧׂ͚ͩͰɺϑΝΠϧ͕ଟ͍ • ͕ࠩଟͦ͏ͳ߹ɺResourceϑΝΠϧͷҠಈ͚ͩͰMRΛ࡞Δ
MVVMԽ
• എܠ • ಛఆͷΞʔΩςΫνϟΛ࣠ʹ࣮ͨ͠ʹͳ͍ͬͯͳ͍ • Ұ෦FluxΛ͍ͬͯΔ͕ɺActionͱEventͰಉ͡ͷΛఆ͍ٛͯ͠Δ • pixivΞϓϦͰMVVMʹԊͬͨ։ൃΛ͍ͯ͠Δ MVVMԽ
MVVMͷΓ͔ͨ • pixivΞϓϦͰϚχϡΞϧԽ͕ਐΜͰ͍Δ • UiStateʹViewͰ༻͢Δ͚ͩ࣋ͨͤΔ ✅ ❌ JDPO ໊લ JDPO
໊લ JDPO ໊લ
ֶͼ • ը໘ͷߏཁૉ͝ͱʹҠߦ͍ͯ͘͠ • ࠷ݶಈ࡞ʹ͕ͳ͘ɺίετ͕ܰ͘Өڹ͕গͳ͍ͷΛબͿ • ComposeԽ͢ΔλΠϛϯάͰมߋͨ͠ํ͕͍͍ͷ͋Δ • RecyclerViewपΓͷσʔλͳͲ ❌
✅
CIվળ
എܠ • CIվળʹΞαΠϯ͞Εͨഎܠ • ࣗಈԽ͕͖͔ͩΒɺCIؔ࿈ͷλεΫ͋ΕΓ͍ͨ • ͍͍Αʂ
pixivΞϓϦͷCI • Bitrise • GitLabͷMRΛτϦΨʔͱͯ͠ىಈ • LintνΣοΫɾϢχοτςετΛߦ͏ • DangerΛͬͯMRʹίϝϯτ͢Δ
՝ • طఆͷDocker imageͰϏϧυ͢ΔͱɺDangerͰΤϥʔ͕ൃੜ͢Δ • طఆ͡Όͳ͍ʢpre cashed͞Εͯͳ͍ʣimageΛ༻͢ΔͱɺϏϧυͷ ͨͼʹimageΛpull͢Δ͕࣌ؒൃੜ͢Δ
ௐࠪํ๏ • ϩʔΧϧͰBitriseϏϧυΛ࣮ߦ͠ɺݪҼΛௐࠪ͢Δ • CI͕ࢭ·ΔͱνʔϜશମͷ։ൃ͕ࢭ·ΔͷͰɺϩʔΧϧͰௐࠪ • ༻πʔϧ • Bitrise CLI
• Docker Desktop
ϩʔΧϧͰ࣮ߦ͢Δͱ͖ͷ٧·ΓϙΠϯτ • —env CI = falseΛઃఆ͢Δ • Git CloneͳͲϩʔΧϧͰඞཁͳ͍ͷεΩοϓ͢Δඞཁ͕͋Δ •
-env CI=falseΛઃఆ͢ΔͱɺDangerεΩοϓ͞ΕΔ • ղܾࡦ • CI=falseʹ͠ɺDangerCIʹؔͳ࣮͘ߦ͞ΕΔΑ͏ʹ͢Δ • Danger ʹඞཁͳมΛՃ͢Δ
͍͟ຊ • طఆͷDocker imageͰϏϧυ͢ΔͱɺDangerͰΤϥʔ͕ൃੜ͢Δ
ղܾҊ • Rubyؔ࿈ͷΤϥʔͷΑ͏ͳͷͰɺͱΓ͋͑ͣRuby, bundlerΛΞοϓ σʔτͯ͠ΈΔ
ղܾʂʂ🎉 • RubyΛ3.2.3→3.3ʹ͢Δͱ௨ͬͨ 🎉 • ϫʔΫϑϩʔͷ࠷ॳͷεςοϓͰRubyόʔδϣϯΛࢦఆ
ຊ൪ͷBitriseͰRubyόʔδϣϯΛ্͛Δ • ํ๏̍ɿϫʔΫϑϩʔͷ࠷ॳͷεςοϓͰRubyόʔδϣϯΛࢦఆ • ํ๏̎ɿStackΛUbuntu22ʹΞοϓσʔτ • σϑΥϧτͷRubyόʔδϣϯ্͕͕Δ https://stacks.bitrise.io/stack_reports/linux-docker-android-20.04/ https://stacks.bitrise.io/stack_reports/linux-docker-android-22.04/ Ubuntu20
Ubuntu22
ຊ൪ͷBitriseͰRubyόʔδϣϯΛ্͛Δ • ํ๏̍ɿϫʔΫϑϩʔͷ࠷ॳͷεςοϓͰRubyόʔδϣϯΛࢦఆ • ϝϦοτɿ؆୯Ͱ࣮֬ʹόά͕मਖ਼͞ΕΔɻ • ݒ೦ɿಉ༷ͷ͕ൃੜͨ͠߹ɺखಈͰόʔδϣϯΛมߋ͢Δඞ ཁ͕͋Δ
ຊ൪ͷBitriseͰRubyόʔδϣϯΛ্͛Δ • ํ๏̎ɿStackΛUbuntu22ʹΞοϓσʔτ • ϝϦοτ • σϑΥϧτͷόʔδϣϯ্͕͕Δ • ͱͷStack͕ඇਪʹͳΔͷͰɺૣΊʹରԠͰ͖Δ •
ݒ೦ɿRubyҎ֎ʹมߋ͞ΕΔͷͰɺผͷ͕ൃੜ͠͏Δ https://stacks.bitrise.io/stack_reports/linux-docker-android-20.04/
ຊ൪ͷBitriseͰRubyόʔδϣϯΛ্͛Δ • StackΛUbuntu 22ʹΞοϓσʔτ • ͍ͣΕUbuntu22ʹ͢Δඞཁ͕͋Δ • ͕ൃੜ͢ΔͳΒɺํ๏̍ͰఆରԠ͢ΕΑ͍
ຊ൪Ͱղܾʂʂ🎉 • ແࣄΤϥʔΛղܾ͠ɺCI࣌ؒΛॖޭʂʂ🎉 After Before
CIվળ·ͱΊ • ϩʔΧϧͰ࣮ߦ͢Δ࣌CI=falseʹ͢Δ • StackͷόʔδϣϯΛ֬ೝ͢Δ • ݹ͍όʔδϣϯͰಈ࡞͢ΔͷͰɺ์ஔ͍ͯ͠Δ͜ͱଟ͍ • ͨ·ʹݟͯ͠ΈΔͱྑ͍͔
શମΛ௨ͯ͠ͷֶͼ
OJTΛ௨ͯ͠ͷֶͼ • ϨϏϡʔΛ͍͢͠Α͏ʹMRΛग़͢ • ̍MR̍ίϯςΩετ • MRͷdescriptionʹഎܠΛॻ͘ • ʮ̋̋Λͨ͠ʯ͚ͩͰͳ͘ɺʮͳͥʯΛॻ͘ •
Γ͍ͨ͜ͱΛఏҊ͢Δͱ͖ɺʮͨͩΓ͍ͨʯͰμϝ • ਓ݄ݶΒΕ͍ͯΔ • ۩ମతʹͲ͏͍ͬͨ՝͕͋ͬͯɺԿΛղܾ͍ͨ͠ͷ͔Λ໌֬ʹ͢Δ