Slide 1

Slide 1 text

ϕϧϦϯʹҠॅͯ͠5೥͘Β͍AndroidΤϯ δχΞͱͯ͠ಇ͍ͨ࿩ asken Android ΤϯδχΞ ീ৿ ษ

Slide 2

Slide 2 text

ࣗݾ঺հ (1/2) ৬ྺ: ɹ2009-2017೥, ೔ຊͰಇ͘ ɹ ɾAndroid ΞϓϦ, ϑϩϯτΤϯυ, όοΫΤϯυΛܦݧ ɹ 2017-2022೥, ϕϧϦϯͰಇ͘ ɹ ɾAndroid ΞϓϦ, React Native ΞϓϦΛܦݧ ɹ 2022೥, ϨΠΦϑʹૺ͍೔ຊʹؼࠃɻ asken ʹδϣΠϯ

Slide 3

Slide 3 text

ࣗݾ঺հ (2/2) ֶྺ: ɹେֶɾେֶӃΛଔۀ (ઐ߈͸྆ํͱ΋ίϯϐϡʔλαΠΤϯε) ޠֶೳྗ: ɹIELTS General Ϟδϡʔϧ 6.0 (ӳݕͩͱ४Ұڃʹ૬౰) ɹϑΟϦϐϯӳձ࿩ͷΦϯϥΠϯϨοεϯΛ 2000 ճҎ্डߨ ɹ TOEIC 755 ɹཹֶܦݧͳ͠ ɹυΠπޠ͸࿩ͤͳ͍ (υΠπʹߦ͘લ΋ߦͬͨޙ΋)

Slide 4

Slide 4 text

ւ֎Ͱಇ͖͍ͨͱࢥ͖͔͚ͬͨͬ 2015೥͝ΖʹʮڪාɺγϦίϯόϨʔͷਅ࣮ʂʂʂʯͱ͍͏ωοτهࣄ͕όζͬͨ > γϦίϯόϨʔͰ͸೥ऩ1800ສԁͰ΋ੜ׆͕ΪϦΪϦ > αϯϑϥϯγείͷՈ௞͸Ұ೥Ͱ800ສԁ͘Β͍ > ҩྍඅ͸೔ຊͷ࠷௿10ഒ ὎ େมͦ͏ʹݟ͑Δ͕ɺΠϯϑϨͰ਺ࣈ͕όάͬͯΔײ͕֮໘നͦ͏ʹݟ͑ͨ ὎ ଞʹ΋७ਮʹɺӳޠ؀ڥ΁ͷಌΕ΍ɺγϦίϯόϨʔͷ༗໊ IT اۀͰΤϯδχΞϦϯάΛֶ΂ͨΒ੒௕͠ ͦ͏ ὎ γϦίϯόϨʔͰಇ͍ͯΈ͍ͨͱࢥͬͨ

Slide 5

Slide 5 text

ΞϝϦΧɾΧφμͷاۀʹԠืͨ͠ αϯϑϥϯγεί@ΞϝϦΧ ͷاۀ 30 ࣾʹԠื - ὎ શͯॻྨબߟͰམͪͨ - ὎ ΞϝϦΧ͸Ϗβऔಘ͕ݫͦ͠͏ɻΧφμͷاۀʹԠื͢Δ͜ͱʹͨ͠ όϯΫʔόʔ@Χφμ ͷاۀ 23 ࣾʹԠื - ὎ 1ࣾ Skype ໘઀མͪɺͦͷଞ͸ॻྨબߟམͪ - ὎ ݁Ռ͸ৼΔΘͳ͔͕ͬͨɺ1ࣾʹͯ Skype ໘઀·ͰਐΊͨ͜ͱ͕خ͔ͬͨ͠!

Slide 6

Slide 6 text

υΠπͷاۀʹԠื͢Δ υΠπ, ϕϧϦϯͷITελʔτΞοϓγʔϯ͕Ξπ͍ͱ࿩୊ʹ - ϕϧϦϯ͸ࠃࡍతͳ౎ࢢͰӳޠ͕௨͡Δ - Ո௞͕͍҆ - ༗໊ͳ IT اۀ΋͍͔ͭ͋͘Δ (SoundCloud, N26, Zalando ͳͲ) ϕϧϦϯͰΤϯδχΞΛͨ͠ํ͕ॻ͍ͨϒϩάهࣄ - WET ͳඋ๨࿥ - υΠπͷडୗ։ൃձࣾΛୀ৬͠·ͨ͠ - zakisan’s blog - ϕϧϦϯʹͯస৬͠·ͨ͠ɻ ΧφμͷاۀʹԠื͔ͯ͠ΒҰ೥ޙɺϕϧϦϯͷاۀʹԠื͢Δ͜ͱʹͨ͠

Slide 7

Slide 7 text

υΠπͷاۀʹԠืͨ݁͠Ռ - ϕϧϦϯͷاۀ 27 ࣾʹԠืͨ͠ - ϕϧϦϯߦ͖ͷߤۭ݊ͱϗςϧΛલ΋ͬͯ༧໿ͯ͠ɺԠื͢Δ࣌ʹϕϧϦϯͰͷ଺ࡏ༧ఆΛ఻ ͑ͨ - 1͔ࣾΒΦϑΝʔΛ໯ͬͨ! - 6 ͕ࣾ Skype ໘઀ͯ͘͠Εͨ! - 2 ͕ࣾΦϑΟεͰͷ࠷ऴ໘઀ʹট଴ͯ͘͠Εͨ! 1. Aࣾ (όεձࣾ, Android ΤϯδχΞϙδγϣϯ ) 2. Bࣾ (ཱྀߦ୅ཧళ, Android ΤϯδχΞϙδγϣϯ )

Slide 8

Slide 8 text

Aࣾͷ࠷ऴ໘઀ (ਓࣄ໘઀) εΫϥϜͬͯ஌ͬͯΔ? ேى͖ͯɺҰ೔Λݩؾʹελʔ τͤ͞ΔͨΊʹ͍ͯ͠Δ͜ͱͬ ͯ͋Δ? Ben ͬͯຊ໊? ࣗݾ঺հ͍ͯͩ͘͠͞ ͳΜͰϕϧϦϯͰಇ͖ͨ ͍ͱࢥͬͨͷ?

Slide 9

Slide 9 text

Aࣾͷ࠷ऴ໘઀ (ٕज़໘઀) RetrofitΛͲΜͳ෩ʹ࢖ͬͯΔ? ଞʹͲΜͳϥΠϒϥϦ͕͋Δ? ͦͷதͰ Retrofit Λ࢖͏ཧ༝ ͸? AsyncTask Λ࢖͏ͷ͸Α͘ ͳ͍ͱݴΘΕͯΔ͚Ͳͦͷ ཧ༝͸? Set ͱ List ͷҧ͍͸Կ? SQLite, SharedPreferences, ֎෦ετϨʔδ͸ͦΕͧΕ Ͳ͏࢖͍෼͚Δ? ݁Ռɺ໘઀͸௨Βͳ͔ͬͨ

Slide 10

Slide 10 text

Bࣾͷ࠷ऴ໘઀ (1/3) ͏ͪͷόοΫΤϯυ͸े਺೥લ͔Β։ൃ͕ଓ͍ͯͯͱ ͯ΋ΧΦεͳΜͩɻ COBOLͰ࣮૷͞Ε͍ͯΔ͠ɺ͋Δ API ͕ϨεϙϯεΛ ฦͨ͢Ίʹɺผͷ API ΛݺΜͰΔΜ͚ͩͲɺͦͷ API ΋ผͷ API ΛݺΜͰͯɺґଘؔ܎͕ෳࡶ͗ͯࣾ͢಺Ͱ ΋׬શʹཧղͰ͖ͯΔਓ͕͍ͳ͍Μͩɻ ͦΜͳΘ͚͔ͩΒɺΞϓϦͷ඼࣭ΛߴΊΔͨΊʹɺ֤ Ϟδϡʔϧʹ୯ମςετΛॻ͍ͯཉ͍͠ɻ΋͠όά͕ ͋ͬͯ΋ɺͦͷόάΛ௚ͯ͠ɺόά͕௚ͬͨ͜ͱΛอূ ͢ΔςετΛॻ͍ͯ΄͍͠ɻ ฐࣾʹ͸ QA ςελʔ͕͍Δ͚Ͳɺखಈςετͩͱݟམ ͱ͕͠ൃੜ͠ಘΔͷͰɺCI/CDͰࣗಈతʹ୯ମςετΛ ࣮ߦ͢ΔΑ͏ʹ࢓૊ΈΛ࡞ͬͯཉ͍͠ɻ ࠓɺ͏ͪͷձࣾͰཱྀߦΛ༧໿ͨ͠ਓʹ͸࡭ࢠΛ͓ͬ͘ ͯΔΜ͚ͩͲɺ΋͠ΞϓϦ͕࡭ࢠΛஔ͖׵͑ΒΕͨΒ ೥ؒ○○€ͷ࡟ݮޮՌ͕Ͳ͏ͨΒ͜͏ͨΒɾɾɾɾ ૣޱ͗ͯ͢ԿΛݴͬ ͯΔͷ͔Α͘Θ͔Β ͳ͍ɾɾɾ

Slide 11

Slide 11 text

Bࣾͷ࠷ऴ໘઀ (2/3) νʔϜͷਓͨͪͱன৯Λ৯΂ʹϋϯόʔΨʔ԰΁

Slide 12

Slide 12 text

Bࣾͷ࠷ऴ໘઀ (3/3) ΦϑΟεʹ໭ͬͯ໘઀ͷଓ͖Λ͢Δ ΦϑΝʔग़͢Α! ೥ऩ͸ ʓʓ€ Ͱ͍͍? ͍͔ͭΒಇ͚Δ? ·͡?

Slide 13

Slide 13 text

ീ৿͕ΦϑΝʔΛ໯͑ͨཧ༝ (?) - Կ͕ධՁ͞Εͨͷ͔ෆ໌ - BࣾͰ͸ Android ͷ஌ࣝΛ໰ΘΕͳ͔ͬͨ - ΍͓͍ͬͯͯྑ͔ͬͨ͜ͱ - Android ͷࣾ֎ษڧձʹఆظతʹࢀՃ - ϑΟϦϐϯӳձ࿩ϨοεϯΛఆظతʹडߨ - ఘΊͣʹԠื͠ଓ͚ͨͷ͕ྑ͔ͬͨ - ւ֎Ͱಇ͍ͯΈ͍ͨͱ͍͏ํ͸ɺӳޠͷษڧ΍ɺઐ໳ٕज़ͷೳྗΛߴΊ͓ͯ͘ͳͲɺক དྷʹඋ͑ͯߦಈ͓ͯ͘͠ͱͦΕ͕໾ʹཱͭ͸ͣ

Slide 14

Slide 14 text

ձࣾͷงғؾ - ଟࠃ੶ͳձࣾͩͬͨ - υΠπਓͷଞɺؖࠃਓɺϩγΞਓɺ΢ΫϥΠφਓɺϒϥδ ϧਓɺεϖΠϯਓɺϧʔϚχΞਓɺΦϥϯμਓɺetc. - ٞ࿦΋೔ৗձ࿩΋ӳޠͰߦ͏ - ӳձ࿩ϨοεϯΑΓ΋ང͔ʹ೉͍͠ - ٕज़తͳٞ࿦ΛӳޠͰߦ͏εΩϧ͕޲্ͨ͠ - શһ͕ۉ౳ͳཱ৔Ͱٞ࿦Ͱ͖Δ - ৬Ґ, ೥ྸ, ੑผ, ࠃ੶, ͳͲʹΑΒͳ͍ - ϛʔςΟϯάͰ͸શһʹൃݴͷػձ͕͋Δ BࣾͷΦϑΟε νʔϜͷਓͨͪͱ Christmas Marketʹߦ͘

Slide 15

Slide 15 text

ϕϧϦϯͰܦݧٕͨ͠ज़ελοΫ 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

Slide 16

Slide 16 text

ۀ຿ϑϩʔ ϕϧϦϯͰ͸ 2 ࣾܦݧ͕ͨ͠ɺେମಉ͡ۀ຿ϑϩʔͩͬͨ εΫϥϜʹΑΔ։ൃ - νʔϜߏ੒͸ εΫϥϜϚελʔ, ϓϩμΫτΦʔφʔ, ΤϯδχΞ, σβΠφʔ, QA - εϓϦϯτͷ௕͞͸2िؒ - Daily Standup, Review, Refinement, Retro, Planning ඼࣭อূମ੍ - ίʔυϨϏϡʔ ὎ QA ͕ಈ࡞֬ೝ ὎ ϓϩμΫτΦʔφʔ͕֬ೝ ὎ Sprint Review Ͱ࣮ԋ ίϛϡχέʔγϣϯπʔϧ - Slack (ීஈͷ΍ΓͱΓ), JIRA (ϓϩδΣΫτ؅ཧ), Confluence (৘ใڞ༗)

Slide 17

Slide 17 text

υΠπͰϨΠΦϑ͞Εͨ࿩ (1/2) - ϕϧϦϯͰಇ͖࢝Ίͯ໿ 5 ೥͕ܦͬͨ͋Δ೔ɺAndroid ΤϯδχΞͱ iOS ΤϯδχΞ ΛूΊͨϛʔςΟϯά͕ઃఆ͞Εͨ - ീ৿ΛؚΊͨ 3 ਓͷ Android / iOS ΤϯδχΞͷղޏΛ௨ࠂ͞Εͨ - ্࢘ᐌ͘ɺձࣾͷํ਑ͱͯ͠ɺεϚϗΞϓϦͷ։ൃΛܭը͔Β֎͢͜ͱʹ͔ͨ͠Βɺͱͷ͜ͱ - ʮձࣾͷwebϖʔδʹࡌͤΔ͔ΒʯͱݴΘΕͯ ࡱӨͨ͠νʔϜͷू߹ࣸਅ - ͜ͷࣸਅΛͱͬͨཌ೔ʹղޏ௨ࠂ͞Εͨ - ͪͳΈʹɺࠓ΋ձࣾͷϖʔδ͔ΒӾཡͰ͖Δ

Slide 18

Slide 18 text

υΠπͰϨΠΦϑ͞Εͨ࿩ (2/2) - ֎ࠃਓ͕υΠπͰղޏ͞ΕͨΒɺ3 ϲ݄Ҏ಺ʹ࠶ब৬͢Δඞཁ͕͋Δ - ಇ͍͍ͯΔاۀʹϏβͷεϙϯαʔΛͯ͠΋ΒͬͯΔͷͰɺղޏ͞ΕͨΒϏβ͕ 3 ϲ݄ͷ༛༧ظؒޙʹແޮʹ ͳͬͯ͠·͍ɺυΠπʹ଺ࡏͰ͖ͳ͘ͳΔ - ௨ࠂ͞Ε͔ͯΒ࣮ࡍʹղޏ͞ΕΔ·Ͱ 3 ϲ݄ + Ϗβͷ༛༧ظؒ 3 ϲ݄Ͱܭ6ϲ݄Ҏ಺ʹ࠶ब৬Λ͢Δ ඞཁ͕͋ͬͨ - 64 ࣾʹԠื͕ͨ͠ɺΦϑΝʔʹ͸ࢸΒͳ͔ͬͨ - Ϗβͷظݶ͕ഭ͍ͬͯͨͨΊɺؼࠃΛࢹ໺ʹೖΕͯϕϧϦϯࡏॅதʹ೔ຊͷاۀʹԠื - ϕϧϦϯࡏॅதʹ asken ͔ΒΦϑΝʔΛ΋Βͬͨ

Slide 19

Slide 19 text

ϕϧϦϯاۀ΁ͷస৬׆ಈʹࣦഊͨ͠൓ল఺ (1/2) - υΠπޠΛਅ໘໨ʹษڧͯ͠Ε͹ྑ͔ͬͨ - ٻਓͷ৚߲݅໨ʹʮυΠπޠೳྗʯͱ͋Γɺͦ͜ͰఘΊͨέʔε͕͋ͬͨ - ӳޠೳྗ / Android ΞϓϦ։ൃೳྗΛ৳͹͢༨஍͕͋ͬͨ - ϕϧϦϯ಺ͷاۀΛத৺ʹԠื͕ͨ͠ɺ΋ͬͱൣғΛ޿͛Ε͹ྑ͔ͬͨ - ϛϡϯϔϯ, ϑϥϯΫϑϧτ, ϋϯϒϧάͳͲ IT اۀ͕ूத͍ͯͦ͠͏ - ւ֎Ͱಇ͘ɺͱ͍͏͜ͱΛॏࢹ͢ΔͳΒυΠπҎ֎ͷࠃ΋ݕ౼͢΂͖ͩͬͨ - ωοτϫʔΫΛߏஙͯ͠Ε͹ྑ͔ͬͨ - ϦϑΝϨϯεͰ࠾༻ʹܨ͕Δέʔε͕Α͋͘Δ

Slide 20

Slide 20 text

ϕϧϦϯاۀ΁ͷస৬׆ಈʹࣦഊͨ͠൓ল఺ (2/2) υΠπʹ଺ࡏ͢Δҝͷଞͷํ๏Λݕ౼͢Ε͹ྑ͔͔ͬͨ΋ - Ϗβͷ༛༧ظ͕ؒ੾Εͯ΋ɺٻ৬ऀϏβʹ੾Γସ͑Δ͜ͱͰ 6 ϲ݄ؒυΠ πʹ଺ࡏ͢Δ͜ͱ͕Ͱ͖Δ - ·ͨɺυΠπͰҰఆظؒ੫ۚΛೲΊ͍ͯΕ͹ɺ৬ۀ҆ఆॴʹొ࿥͠ ͯɺલ೥౓ͷ೥ऩͷ6ׂΛࣦۀख౰ͱͯ͠ड͚औΔ͜ͱ͕Ͱ͖Δ - ΫϥΠΞϯτ (υΠπձࣾͰ͋Δඞཁ͕ͳ͍) ͕͍Ε͹ɺϑϦʔϥϯεʹ ͳͬͯϑϦʔϥϯεϏβͰυΠπʹ଺ࡏ͢Δ͜ͱ͕Ͱ͖Δ

Slide 21

Slide 21 text

ϕϧϦϯͰಇ͍ͨײ૝ (1/2) ྑ͔ͬͨ͜ͱ - ӳޠ؀ڥͰಇ͚ͨ - ৬৔ͰυΠπޠ͕࿩ͤͳͯ͘΋໰୊ແ͔ͬͨ - ӳޠ͕௨͡ΔࠃͩͬͨΒͲ͜Ͱ΋ಇ͚Δͱ͍͏ࣗ৴͕͍ͭͨ - KotlinConfɺ DroidconBerlin ͳͲɺϤʔϩούݍͰ։࠵͞ ΕΔٕज़ΧϯϑΝϨϯεʹࢀՃ͠΍͔ͬͨ͢ - ϥΠϑϫʔΫόϥϯε͕ॏࢹ͞Εͯͨ - ࢒ۀΛ΄ͱΜͲ͠ͳ͔ͬͨ - ༗څ΋औΓ΍͔ͬͨ͢ KotlinConf 2018, Amsterdam Ԇധͯ͠؍ޫ΋ָ͠Έ·ͨ͠

Slide 22

Slide 22 text

ϕϧϦϯͰಇ͍ͨײ૝ (2/2) ྑ͘ͳ͔ͬͨ͜ͱ - ೥ऩ্͕͕͚ͬͨͲɺࢥͬͨΑΓ͓͕ۚஷ·Βͳ͍ - υΠπ͸੫͕ۚߴ͘ɺॴಘ੫ͱࣾձอোͰऩೖͷ 4 ׂఔ౓ࠩ͠Ҿ͔ΕΔ - Ո௞͕೥ʑ্͕͍ͬͯͬͨ - γΣΞϋ΢εʹॅΜͰ ݄585€ -> ݄600€ -> ݄650€ -> ݄750€ - ߫֎ʹҾͬӽͯ͠ ݄550€ -> ݄570€ -> ͦͷޙ, ϩγΞɾ΢ΫϥΠφઓ૪ͷӨڹͰߋʹ্ঢ? - ϕϧϦϯશମͰ͜ͷ܏޲͕ଓ͍ͯΔ໛༷ - υΠπޠਏ͍ - ӳޠ͸௨͡Δ΋ͷͷɺपΓͷ৘ใ͸΄΅υΠπޠͳͷͰɺυΠπޠ͕Θ͔Βͳ͍ͱࠔΔ - υΠπޠΛ࿩ͤͳ͍ͱɺస৬ઌͷબ୒ࢶ͕ݮΔ - 2೥΄ͲυΠπޠΦϯϥΠϯϨοεϯΛड͚͕ͨ͋·Γ্ୡ͠ͳ͔ͬͨ

Slide 23

Slide 23 text

·ͱΊ - ָ͍͠ࣄɺਏ͍ࣄ΋͚͋ͬͨͲɺϕϧϦϯͰͷब࿑Λ௨ͯ͡੒௕Ͱ͖ͨ - ւ֎ʹߦ͘લɺߦͬͨޙ΋౒ྗ͠ଓ͚Δ͜ͱ͕େࣄ - ϕϧϦϯͰͷब࿑͸͓קΊͰ͢ɻڵຯͷ͋Δํ͸ੋඇݕ౼ͯ͠Έ͍ͯͩ͘͞

Slide 24

Slide 24 text

ಇ͘ࠃΛબͿ࣌ʹࢀߟʹͨ͠αΠτ (1/2) NUMBEO - ೋͭͷ౎ࢢͷΞύʔτՈ௞ / ৯ྉ඼ / ೔༻ࡶ՟඼ ͷߴ ͞Λൺֱͯ͘͠ΕΔαΠτ - ӈͷը૾͸ɺ౦ژͱόϯ Ϋʔόʔͷ෺Ձͷߴ͞Λൺ ֱͨ࣌͠ͷը૾

Slide 25

Slide 25 text

ಇ͘ࠃΛબͿ࣌ʹࢀߟʹͨ͠αΠτ (2/2) Glassdoor - اۀͷޱίϛ/څ༩/໘઀৘ใͳ Ͳͷ౤ߘαΠτ - ࠃผ, ৬छผʹฏۉڅ༩Λௐ΂ Δ͜ͱ΋Ͱ͖Δ - ӈ͸όϯΫʔόʔͰͷιϑτ ΢ΣΞΤϯδχΞͷฏۉڅ༩ Λௐ΂ͨ࣌ͷը૾

Slide 26

Slide 26 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠