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
ベルリンに移住して5年くらいAndroidエンジニアとして働いた話
Search
Ben Hachimori
March 16, 2023
Programming
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ベルリンに移住して5年くらいAndroidエンジニアとして働いた話
https://asken.connpass.com/event/274060/
での発表資料
Ben Hachimori
March 16, 2023
Other Decks in Programming
See All in Programming
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
580
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
690
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
110
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
270
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.4k
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
360
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
190
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
130
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
130
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
140
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.6k
Featured
See All Featured
HDC tutorial
michielstock
2
860
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
440
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
We Are The Robots
honzajavorek
0
350
Fireside Chat
paigeccino
42
4k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Google's AI Overviews - The New Search
badams
0
1.6k
Building the Perfect Custom Keyboard
takai
2
870
Practical Orchestrator
shlominoach
191
12k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
280
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
420
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Transcript
ϕϧϦϯʹҠॅͯ͠5͘Β͍AndroidΤϯ δχΞͱͯ͠ಇ͍ͨ asken Android ΤϯδχΞ ീ ษ
ࣗݾհ (1/2) ৬ྺ: ɹ2009-2017, ຊͰಇ͘ ɹ ɾAndroid ΞϓϦ, ϑϩϯτΤϯυ, όοΫΤϯυΛܦݧ
ɹ 2017-2022, ϕϧϦϯͰಇ͘ ɹ ɾAndroid ΞϓϦ, React Native ΞϓϦΛܦݧ ɹ 2022, ϨΠΦϑʹૺ͍ຊʹؼࠃɻ asken ʹδϣΠϯ
ࣗݾհ (2/2) ֶྺ: ɹେֶɾେֶӃΛଔۀ (ઐ߈྆ํͱίϯϐϡʔλαΠΤϯε) ޠֶೳྗ: ɹIELTS General Ϟδϡʔϧ 6.0
(ӳݕͩͱ४Ұڃʹ૬) ɹϑΟϦϐϯӳձͷΦϯϥΠϯϨοεϯΛ 2000 ճҎ্डߨ ɹ TOEIC 755 ɹཹֶܦݧͳ͠ ɹυΠπޠͤͳ͍ (υΠπʹߦ͘લߦͬͨޙ)
ւ֎Ͱಇ͖͍ͨͱࢥ͖͔͚ͬͨͬ 2015͝ΖʹʮڪාɺγϦίϯόϨʔͷਅ࣮ʂʂʂʯͱ͍͏ωοτهࣄ͕όζͬͨ > γϦίϯόϨʔͰऩ1800ສԁͰੜ׆͕ΪϦΪϦ > αϯϑϥϯγείͷՈҰͰ800ສԁ͘Β͍ > ҩྍඅຊͷ࠷10ഒ େมͦ͏ʹݟ͑Δ͕ɺΠϯϑϨͰࣈ͕όάͬͯΔײ͕֮໘നͦ͏ʹݟ͑ͨ
ଞʹ७ਮʹɺӳޠڥͷಌΕɺγϦίϯόϨʔͷ༗໊ IT اۀͰΤϯδχΞϦϯάΛֶͨΒ͠ ͦ͏ γϦίϯόϨʔͰಇ͍ͯΈ͍ͨͱࢥͬͨ
ΞϝϦΧɾΧφμͷاۀʹԠืͨ͠ αϯϑϥϯγεί@ΞϝϦΧ ͷاۀ 30 ࣾʹԠื - શͯॻྨબߟͰམͪͨ -
ΞϝϦΧϏβऔಘ͕ݫͦ͠͏ɻΧφμͷاۀʹԠื͢Δ͜ͱʹͨ͠ όϯΫʔόʔ@Χφμ ͷاۀ 23 ࣾʹԠื - 1ࣾ Skype ໘མͪɺͦͷଞॻྨબߟམͪ - ݁ՌৼΔΘͳ͔͕ͬͨɺ1ࣾʹͯ Skype ໘·ͰਐΊͨ͜ͱ͕خ͔ͬͨ͠!
υΠπͷاۀʹԠื͢Δ υΠπ, ϕϧϦϯͷITελʔτΞοϓγʔϯ͕Ξπ͍ͱʹ - ϕϧϦϯࠃࡍతͳࢢͰӳޠ͕௨͡Δ - Ո͕͍҆ - ༗໊ͳ IT
اۀ͍͔ͭ͋͘Δ (SoundCloud, N26, Zalando ͳͲ) ϕϧϦϯͰΤϯδχΞΛͨ͠ํ͕ॻ͍ͨϒϩάهࣄ - WET ͳඋ - υΠπͷडୗ։ൃձࣾΛୀ৬͠·ͨ͠ - zakisan’s blog - ϕϧϦϯʹͯస৬͠·ͨ͠ɻ ΧφμͷاۀʹԠื͔ͯ͠ΒҰޙɺϕϧϦϯͷاۀʹԠื͢Δ͜ͱʹͨ͠
υΠπͷاۀʹԠืͨ݁͠Ռ - ϕϧϦϯͷاۀ 27 ࣾʹԠืͨ͠ - ϕϧϦϯߦ͖ͷߤۭ݊ͱϗςϧΛલͬͯ༧ͯ͠ɺԠื͢Δ࣌ʹϕϧϦϯͰͷࡏ༧ఆΛ ͑ͨ - 1͔ࣾΒΦϑΝʔΛͬͨ!
- 6 ͕ࣾ Skype ໘ͯ͘͠Εͨ! - 2 ͕ࣾΦϑΟεͰͷ࠷ऴ໘ʹটͯ͘͠Εͨ! 1. Aࣾ (όεձࣾ, Android ΤϯδχΞϙδγϣϯ ) 2. Bࣾ (ཱྀߦཧళ, Android ΤϯδχΞϙδγϣϯ )
Aࣾͷ࠷ऴ໘ (ਓࣄ໘) εΫϥϜͬͯͬͯΔ? ேى͖ͯɺҰΛݩؾʹελʔ τͤ͞ΔͨΊʹ͍ͯ͠Δ͜ͱͬ ͯ͋Δ? Ben ͬͯຊ໊? ࣗݾհ͍ͯͩ͘͠͞ ͳΜͰϕϧϦϯͰಇ͖ͨ
͍ͱࢥͬͨͷ?
Aࣾͷ࠷ऴ໘ (ٕज़໘) RetrofitΛͲΜͳ෩ʹͬͯΔ? ଞʹͲΜͳϥΠϒϥϦ͕͋Δ? ͦͷதͰ Retrofit Λ͏ཧ༝ ? AsyncTask Λ͏ͷΑ͘
ͳ͍ͱݴΘΕͯΔ͚Ͳͦͷ ཧ༝? Set ͱ List ͷҧ͍Կ? SQLite, SharedPreferences, ֎෦ετϨʔδͦΕͧΕ Ͳ͏͍͚Δ? ݁Ռɺ໘௨Βͳ͔ͬͨ
Bࣾͷ࠷ऴ໘ (1/3) ͏ͪͷόοΫΤϯυेલ͔Β։ൃ͕ଓ͍ͯͯͱ ͯΧΦεͳΜͩɻ COBOLͰ࣮͞Ε͍ͯΔ͠ɺ͋Δ API ͕ϨεϙϯεΛ ฦͨ͢Ίʹɺผͷ API ΛݺΜͰΔΜ͚ͩͲɺͦͷ
API ผͷ API ΛݺΜͰͯɺґଘ͕ؔෳࡶ͗ͯࣾ͢Ͱ શʹཧղͰ͖ͯΔਓ͕͍ͳ͍Μͩɻ ͦΜͳΘ͚͔ͩΒɺΞϓϦͷ࣭ΛߴΊΔͨΊʹɺ֤ Ϟδϡʔϧʹ୯ମςετΛॻ͍ͯཉ͍͠ɻ͠όά͕ ͋ͬͯɺͦͷόάΛͯ͠ɺόά͕ͬͨ͜ͱΛอূ ͢ΔςετΛॻ͍ͯ΄͍͠ɻ ฐࣾʹ QA ςελʔ͕͍Δ͚Ͳɺखಈςετͩͱݟམ ͱ͕͠ൃੜ͠ಘΔͷͰɺCI/CDͰࣗಈతʹ୯ମςετΛ ࣮ߦ͢ΔΑ͏ʹΈΛ࡞ͬͯཉ͍͠ɻ ࠓɺ͏ͪͷձࣾͰཱྀߦΛ༧ͨ͠ਓʹࢠΛ͓ͬ͘ ͯΔΜ͚ͩͲɺ͠ΞϓϦ͕ࢠΛஔ͖͑ΒΕͨΒ ؒ◦◦€ͷݮޮՌ͕Ͳ͏ͨΒ͜͏ͨΒɾɾɾɾ ૣޱ͗ͯ͢ԿΛݴͬ ͯΔͷ͔Α͘Θ͔Β ͳ͍ɾɾɾ
Bࣾͷ࠷ऴ໘ (2/3) νʔϜͷਓͨͪͱன৯Λ৯ʹϋϯόʔΨʔ
Bࣾͷ࠷ऴ໘ (3/3) ΦϑΟεʹͬͯ໘ͷଓ͖Λ͢Δ ΦϑΝʔग़͢Α! ऩ ʓʓ€ Ͱ͍͍? ͍͔ͭΒಇ͚Δ? ·͡?
ീ͕ΦϑΝʔΛ͑ͨཧ༝ (?) - Կ͕ධՁ͞Εͨͷ͔ෆ໌ - BࣾͰ Android ͷࣝΛΘΕͳ͔ͬͨ - ͓͍ͬͯͯྑ͔ͬͨ͜ͱ
- Android ͷࣾ֎ษڧձʹఆظతʹࢀՃ - ϑΟϦϐϯӳձϨοεϯΛఆظతʹडߨ - ఘΊͣʹԠื͠ଓ͚ͨͷ͕ྑ͔ͬͨ - ւ֎Ͱಇ͍ͯΈ͍ͨͱ͍͏ํɺӳޠͷษڧɺઐٕज़ͷೳྗΛߴΊ͓ͯ͘ͳͲɺক དྷʹඋ͑ͯߦಈ͓ͯ͘͠ͱͦΕ͕ʹཱͭͣ
ձࣾͷงғؾ - ଟࠃ੶ͳձࣾͩͬͨ - υΠπਓͷଞɺؖࠃਓɺϩγΞਓɺΫϥΠφਓɺϒϥδ ϧਓɺεϖΠϯਓɺϧʔϚχΞਓɺΦϥϯμਓɺetc. - ٞৗձӳޠͰߦ͏ - ӳձϨοεϯΑΓང͔ʹ͍͠
- ٕज़తͳٞΛӳޠͰߦ͏εΩϧ্͕ͨ͠ - શһ͕ۉͳཱͰٞͰ͖Δ - ৬Ґ, ྸ, ੑผ, ࠃ੶, ͳͲʹΑΒͳ͍ - ϛʔςΟϯάͰશһʹൃݴͷػձ͕͋Δ BࣾͷΦϑΟε νʔϜͷਓͨͪͱ Christmas Marketʹߦ͘
ϕϧϦϯͰܦݧٕͨ͠ज़ελοΫ React Native ϓϩδΣΫτ Android ϓϩδΣΫτ - TypeScript - Redux
- React Navigation - Firebase ΛͬͯϞόΠϧ෦ઐ༻ͷAPI Λ ࣗͨͪͰ༻ҙͨ͠ - Firebase Authenticate - Firebase Functions - Firebase Storage - BitBucket Ͱίʔυཧ - CI/CD - Jenkins - Kotlin - MVVM + CleanArchitecture - ϥΠϒϥϦ - Coroutine, Flow, Jetpack Compose, Navigation Component, Room, Koin, Mockk - GitHub Ͱίʔυཧ - CI/CD - GitHubActions
ۀϑϩʔ ϕϧϦϯͰ 2 ࣾܦݧ͕ͨ͠ɺେମಉ͡ۀϑϩʔͩͬͨ εΫϥϜʹΑΔ։ൃ - νʔϜߏ εΫϥϜϚελʔ, ϓϩμΫτΦʔφʔ, ΤϯδχΞ,
σβΠφʔ, QA - εϓϦϯτͷ͞2िؒ - Daily Standup, Review, Refinement, Retro, Planning ࣭อূମ੍ - ίʔυϨϏϡʔ QA ͕ಈ࡞֬ೝ ϓϩμΫτΦʔφʔ͕֬ೝ Sprint Review Ͱ࣮ԋ ίϛϡχέʔγϣϯπʔϧ - Slack (ීஈͷΓͱΓ), JIRA (ϓϩδΣΫτཧ), Confluence (ใڞ༗)
υΠπͰϨΠΦϑ͞Εͨ (1/2) - ϕϧϦϯͰಇ͖࢝Ίͯ 5 ͕ܦͬͨ͋ΔɺAndroid ΤϯδχΞͱ iOS ΤϯδχΞ ΛूΊͨϛʔςΟϯά͕ઃఆ͞Εͨ
- ീΛؚΊͨ 3 ਓͷ Android / iOS ΤϯδχΞͷղޏΛ௨ࠂ͞Εͨ - ্࢘ᐌ͘ɺձࣾͷํͱͯ͠ɺεϚϗΞϓϦͷ։ൃΛܭը͔Β֎͢͜ͱʹ͔ͨ͠Βɺͱͷ͜ͱ - ʮձࣾͷwebϖʔδʹࡌͤΔ͔ΒʯͱݴΘΕͯ ࡱӨͨ͠νʔϜͷू߹ࣸਅ - ͜ͷࣸਅΛͱͬͨཌʹղޏ௨ࠂ͞Εͨ - ͪͳΈʹɺࠓձࣾͷϖʔδ͔ΒӾཡͰ͖Δ
υΠπͰϨΠΦϑ͞Εͨ (2/2) - ֎ࠃਓ͕υΠπͰղޏ͞ΕͨΒɺ3 ϲ݄Ҏʹ࠶ब৬͢Δඞཁ͕͋Δ - ಇ͍͍ͯΔاۀʹϏβͷεϙϯαʔΛͯ͠ΒͬͯΔͷͰɺղޏ͞ΕͨΒϏβ͕ 3 ϲ݄ͷ༛༧ظؒޙʹແޮʹ ͳͬͯ͠·͍ɺυΠπʹࡏͰ͖ͳ͘ͳΔ
- ௨ࠂ͞Ε͔ͯΒ࣮ࡍʹղޏ͞ΕΔ·Ͱ 3 ϲ݄ + Ϗβͷ༛༧ظؒ 3 ϲ݄Ͱܭ6ϲ݄Ҏʹ࠶ब৬Λ͢Δ ඞཁ͕͋ͬͨ - 64 ࣾʹԠื͕ͨ͠ɺΦϑΝʔʹࢸΒͳ͔ͬͨ - Ϗβͷظݶ͕ഭ͍ͬͯͨͨΊɺؼࠃΛࢹʹೖΕͯϕϧϦϯࡏॅதʹຊͷاۀʹԠื - ϕϧϦϯࡏॅதʹ asken ͔ΒΦϑΝʔΛΒͬͨ
ϕϧϦϯاۀͷస৬׆ಈʹࣦഊͨ͠ল (1/2) - υΠπޠΛਅ໘ʹษڧͯ͠Εྑ͔ͬͨ - ٻਓͷ߲݅ʹʮυΠπޠೳྗʯͱ͋Γɺͦ͜ͰఘΊͨέʔε͕͋ͬͨ - ӳޠೳྗ / Android
ΞϓϦ։ൃೳྗΛ৳͢༨͕͋ͬͨ - ϕϧϦϯͷاۀΛத৺ʹԠื͕ͨ͠ɺͬͱൣғΛ͛Εྑ͔ͬͨ - ϛϡϯϔϯ, ϑϥϯΫϑϧτ, ϋϯϒϧάͳͲ IT اۀ͕ूத͍ͯͦ͠͏ - ւ֎Ͱಇ͘ɺͱ͍͏͜ͱΛॏࢹ͢ΔͳΒυΠπҎ֎ͷࠃݕ౼͖ͩͬͨ͢ - ωοτϫʔΫΛߏஙͯ͠Εྑ͔ͬͨ - ϦϑΝϨϯεͰ࠾༻ʹܨ͕Δέʔε͕Α͋͘Δ
ϕϧϦϯاۀͷస৬׆ಈʹࣦഊͨ͠ল (2/2) υΠπʹࡏ͢Δҝͷଞͷํ๏Λݕ౼͢Εྑ͔͔ͬͨ - Ϗβͷ༛༧ظ͕ؒΕͯɺٻ৬ऀϏβʹΓସ͑Δ͜ͱͰ 6 ϲ݄ؒυΠ πʹࡏ͢Δ͜ͱ͕Ͱ͖Δ - ·ͨɺυΠπͰҰఆظؒ੫ۚΛೲΊ͍ͯΕɺ৬ۀ҆ఆॴʹొ͠
ͯɺલͷऩͷ6ׂΛࣦۀखͱͯ͠ड͚औΔ͜ͱ͕Ͱ͖Δ - ΫϥΠΞϯτ (υΠπձࣾͰ͋Δඞཁ͕ͳ͍) ͕͍ΕɺϑϦʔϥϯεʹ ͳͬͯϑϦʔϥϯεϏβͰυΠπʹࡏ͢Δ͜ͱ͕Ͱ͖Δ
ϕϧϦϯͰಇ͍ͨײ (1/2) ྑ͔ͬͨ͜ͱ - ӳޠڥͰಇ͚ͨ - ৬ͰυΠπޠ͕ͤͳͯ͘ແ͔ͬͨ - ӳޠ͕௨͡ΔࠃͩͬͨΒͲ͜Ͱಇ͚Δͱ͍͏ࣗ৴͕͍ͭͨ -
KotlinConfɺ DroidconBerlin ͳͲɺϤʔϩούݍͰ։࠵͞ ΕΔٕज़ΧϯϑΝϨϯεʹࢀՃ͔ͬͨ͢͠ - ϥΠϑϫʔΫόϥϯε͕ॏࢹ͞Εͯͨ - ۀΛ΄ͱΜͲ͠ͳ͔ͬͨ - ༗څऔΓ͔ͬͨ͢ KotlinConf 2018, Amsterdam Ԇധͯ͠؍ޫָ͠Έ·ͨ͠
ϕϧϦϯͰಇ͍ͨײ (2/2) ྑ͘ͳ͔ͬͨ͜ͱ - ऩ্͕͕͚ͬͨͲɺࢥͬͨΑΓ͓͕ۚஷ·Βͳ͍ - υΠπ੫͕ۚߴ͘ɺॴಘ੫ͱࣾձอোͰऩೖͷ 4 ׂఔࠩ͠Ҿ͔ΕΔ -
Ո͕ʑ্͕͍ͬͯͬͨ - γΣΞϋεʹॅΜͰ ݄585€ -> ݄600€ -> ݄650€ -> ݄750€ - ߫֎ʹҾͬӽͯ͠ ݄550€ -> ݄570€ -> ͦͷޙ, ϩγΞɾΫϥΠφઓ૪ͷӨڹͰߋʹ্ঢ? - ϕϧϦϯશମͰ͜ͷ͕ଓ͍ͯΔ༷ - υΠπޠਏ͍ - ӳޠ௨͡ΔͷͷɺपΓͷใ΄΅υΠπޠͳͷͰɺυΠπޠ͕Θ͔Βͳ͍ͱࠔΔ - υΠπޠΛͤͳ͍ͱɺస৬ઌͷબࢶ͕ݮΔ - 2΄ͲυΠπޠΦϯϥΠϯϨοεϯΛड͚͕ͨ͋·Γ্ୡ͠ͳ͔ͬͨ
·ͱΊ - ָ͍͠ࣄɺਏ͍ࣄ͚͋ͬͨͲɺϕϧϦϯͰͷब࿑Λ௨ͯ͡Ͱ͖ͨ - ւ֎ʹߦ͘લɺߦͬͨޙྗ͠ଓ͚Δ͜ͱ͕େࣄ - ϕϧϦϯͰͷब࿑͓קΊͰ͢ɻڵຯͷ͋Δํੋඇݕ౼ͯ͠Έ͍ͯͩ͘͞
ಇ͘ࠃΛબͿ࣌ʹࢀߟʹͨ͠αΠτ (1/2) NUMBEO - ೋͭͷࢢͷΞύʔτՈ / ৯ྉ / ༻ࡶ՟ ͷߴ
͞Λൺֱͯ͘͠ΕΔαΠτ - ӈͷը૾ɺ౦ژͱόϯ ΫʔόʔͷՁͷߴ͞Λൺ ֱͨ࣌͠ͷը૾
ಇ͘ࠃΛબͿ࣌ʹࢀߟʹͨ͠αΠτ (2/2) Glassdoor - اۀͷޱίϛ/څ༩/໘ใͳ ͲͷߘαΠτ - ࠃผ, ৬छผʹฏۉڅ༩Λௐ Δ͜ͱͰ͖Δ
- ӈόϯΫʔόʔͰͷιϑτ ΣΞΤϯδχΞͷฏۉڅ༩ Λௐͨ࣌ͷը૾
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠