Slide 1

Slide 1 text

Sansanגࣜձࣾ ෦ॺɹ໊લ Kotlin MultiplatformͰSaaSେن໛ΞϓϦͷ ੜ࢈ੑΛ޲্ͤ͞Δٕज़తҙࢥܾఆͱ ಋೖޮՌΛ࠷େԽ͢ΔͨΊͷऔΓ૊Έ iOSDC Japan 2024 Sansanגࣜձࣾ ٕज़ຊ෦ Mobileઓུάϧʔϓ ௕࡚ೋ࿠

Slide 2

Slide 2 text

௕࡚ ೋ࿠ʢJiro Nagasaki) Sansanגࣜձࣾ ٕज़ຊ෦ Mobile ઓུ άϧʔϓ ϞόΠϧԣஅνʔϜͷiOSΤϯδχΞɻ ͜ͷηογϣϯͷςʔϚͰ͋ΔKMPಋೖͰ͸ ϑϨʔϜϫʔΫͳͲͷج൫ߏஙΛ୲౰͠·ͨ͠ɻ X(a.k.a.Twitter): @zeero

Slide 3

Slide 3 text

3 ͸͡Ίʹ ࠓ೥ɺSansanͰ͸ੜ࢈ੑ޲্ͷͨΊʹ Kotlin Multiplatform (KMP) Λಋೖ͠·ͨ͠ KMPͱ͸ɺKotlinݴޠΛ࢖ͬͯϚϧνϓϥοτϑΥʔϜରԠͷ ΞϓϦέʔγϣϯΛ։ൃ͢ΔͨΊͷٕज़Ͱ͢ ͜ͷηογϣϯͰ͸ɺओʹKMPಋೖʹ͓͚Δ ӡ༻໘ʹ͍ͭͯεϙοτΛ౰͓ͯͯ࿩͠·͢

Slide 4

Slide 4 text

- KMPಋೖܾఆ·Ͱ - KMPಋೖ - KMPಋೖޙ ΞδΣϯμ 4

Slide 5

Slide 5 text

KMPಋೖܾఆ·Ͱ 5

Slide 6

Slide 6 text

KMPಋೖͷഎܠ 2023೥౓OKRʢObjectives and Key Resultsʣ ୯݄ͷ։ൃੜ࢈ྔΛ̎ഒʹ͢Δ ϞόΠϧԣஅάϧʔϓɿٕज़తͳ؍఺͔ΒऔΓ૊ΈํΛݕ౼ KMPಋೖʹΑΔ։ൃޮ཰޲্ͷՄೳੑ 6

Slide 7

Slide 7 text

ΞϓϦ։ൃʹ͓͚Δ৳ͼ୅ ཁ݅ ఆٛ ઃܭ ࣮૷ ςετ ϦϦ ʔε ઃܭ ࣮૷ ςετ ϦϦ ʔε ᶃ࡞ۀͷॏෳ ᶄ࣮૷ͷζϨ 7

Slide 8

Slide 8 text

ιϦϡʔγϣϯͷݕ౼ 8 - ιϦϡʔγϣϯީิ - KMP - ReactNative - Flutter - KMPͷϝϦοτ - ڞ௨Խͷࣗ༝౓͕ߴ͍ - APIΞΫηεͷΈΛڞ௨Խ͢Δ͜ͱ΋ɺUIؚΊ͢΂ͯΛڞ௨ Խ͢Δ͜ͱ΋Ͱ͖Δ - طଘͱڞଘ͠ͳ͕Β෦෼తͳಋೖ΋͠΍͍͢ - KotlinͳͷͰAndroid։ൃͷٕज़ελοΫΛ׆͔ͤΔ https://www.jetbrains.com/ja-jp/kotlin-multiplatform/

Slide 9

Slide 9 text

KMPͰͷڞ௨ԽൣғɺΞʔΩςΫνϟ 9 - UI͸ωΠςΟϒ࣮૷ɺ ϏδωεϩδοΫΛKMPͰ ڞ௨Խ - طଘAndroidͰ࠾༻͍ͯ͠ ͨFluxΛ࠾༻ - ϩʔΧϧϦιʔεʢDBɺ ϩάΠϯ৘ใͳͲʣ΁ͷΞ Ϋηε͸ɺKMPଆʹωΠ ςΟϒ࣮૷ΛDI - ϦϞʔτͷϦιʔε ʢAPIɺϩάͳͲʣ΁ͷΞ Ϋηε͸KMPͷ੹຿

Slide 10

Slide 10 text

KMPಋೖʹΑΔޮՌͷࢼࢉ 10

Slide 11

Slide 11 text

KMPಋೖܾఆ 11 ૊৫௕ iOS ΞʔΩςΫτ Android ΞʔΩςΫτ iOS/Android ΤϯδχΞ ݕ౼ ҙݟ ٵ্͍͛ ಋೖܾఆ Ծઃܭ ޮՌࢼࢉ ߏங޻਺ͷݟੵ

Slide 12

Slide 12 text

KMPಋೖ 12

Slide 13

Slide 13 text

KMPಋೖʹ͓͚Δΰʔϧ 13 - ΰʔϧɿϓϩμΫτ։ൃʹ͓͍ͯKMPΛ༻͍ͨ։ൃ͕ελϯ μʔυͱͳΔঢ়ଶ - ΞʔΩςΫνϟͳͲͷج൫ߏங͕׬ྃ͠ɺϓϩμΫτʹ૊Έ ࠐΊΔঢ়ଶʹͳΔ͜ͱ - ΤϯδχΞશһ͕KMPΛॻ͖ɾཧղͰ͖Δঢ়ଶʹͳΔ͜ͱ ʢʮKMPઐ໳νʔϜʯ͸ஔ͔ͳ͍ʣ - ཧ༝ɿKMPઐ໳νʔϜ͕ϘτϧωοΫͱͳͬͯ͠·͍։ ൃεϐʔυ͕஗ΕΔͳͲͷϦεΫΛආ͚ΔͨΊɻ ڭҭίετΛ෷ͬͯ΋ɺશһͰKMPʹ޲͖߹͍ͬͯ͘͜ ͱΛϚωδϝϯτϥΠϯؚΊ߹ҙͨ͠ɻ

Slide 14

Slide 14 text

KMPಋೖʹ޲͚ͯͷλεΫ 14 - KMPج൫։ൃ - Fluxߏங - ϩάΠϯ৘ใͷڞ༗Խ - APIΞΫηε - DIߏங - iOS࿈ܞج൫ߏங - υΩϡϝϯτ੔උɹɹͳͲ - ϝϯόʔڭҭ - ΩϟονΞοϓ

Slide 15

Slide 15 text

iOS࿈ܞج൫ 15 - KMPͱiOSͷ࿈ܞʹ͓͍ͯߟྀ͕ඞཁͳϙΠϯτ - KMPϥΠϒϥϦͷऔΓࠐΈํ - KMPͱͷI/FΛͲ͏ѻ͏͔

Slide 16

Slide 16 text

KMPϥΠϒϥϦͷऔΓࠐΈํ 16

Slide 17

Slide 17 text

KMPϥΠϒϥϦͷऔΓࠐΈํ 17

Slide 18

Slide 18 text

KMPͱͷI/FΛͲ͏ѻ͏͔ 18

Slide 19

Slide 19 text

KMPͱͷI/FΛͲ͏ѻ͏͔ 19

Slide 20

Slide 20 text

υΩϡϝϯτ੔උ - iOS΁ͷέΞ 20 - KMPίʔσΟϯάن໿ ίʔσΟϯάن໿ͷྫ

Slide 21

Slide 21 text

υΩϡϝϯτ੔උ - iOS΁ͷέΞ 21 - KMPίʔσΟϯάن໿ ίʔσΟϯάن໿ͷྫ̎

Slide 22

Slide 22 text

υΩϡϝϯτ੔උ - iOS΁ͷέΞ 22 - KMP༻ޠू

Slide 23

Slide 23 text

υΩϡϝϯτ੔උ - iOS΁ͷέΞ 23 - iOSΤϯδχΞ͕KotlinֶशͰ٧·ͬͨͱ͜ΖʢϙΤϜʣ

Slide 24

Slide 24 text

ΩϟονΞοϓPJ 24 - ໨త - KMPΛ࢖ͬͯ࢓ࣄͱͯ͠։ൃ͍ͯ͘͠ࣄʹɺશһ͕ࣗ৴Λ͍࣋ͬͯΔঢ়ଶͱͳΔɻ - ͦͷͨΊʹɺݟੵ΋Γʙςετ·ͰͷҰ࿈ͷྲྀΕΛʮKMPͰॻ͘ʯલఏͰܦݧͨ͠ ঢ়ଶͱͳΔɻ - ໨ඪ - ࣮ࡍͷ։ൃͰߦ͏Ͱ͋Ζ͏ԼهΛ࣮ࢪͨ͠ঢ়ଶͱͳ͍ͬͯΔࣄɻ - ཁ݅֬ೝ&ݟੵ΋Γ - ܭը࡞੒ - ৄࡉઃܭ - ࣮૷ʢςετίʔυؚΉʣ - ίʔυϨϏϡʔ - ςετʢσόοάʣ

Slide 25

Slide 25 text

ΩϟονΞοϓPJ 25

Slide 26

Slide 26 text

։ൃԋश - ֓ཁ 26 - ظؒ - 2೔ؒʢશһΦϑϥΠϯʣ - ୊ࡐ - ԋश༻PBIΛ࣮૷ - ੍໿ - Լهͷ޻ఔΛߦ͏͜ͱ - ཁ݅֬ೝˍݟੵ - ܭը࡞੒ - ৄࡉઃܭ - ࣮૷ɺςετ - ίʔυϨϏϡʔΛؚΉ

Slide 27

Slide 27 text

։ൃԋश - ౰೔ͷ༷ࢠ 27

Slide 28

Slide 28 text

KMPಋೖޙ 28

Slide 29

Slide 29 text

KMPಋೖޙʹ૊৫ମ੍มߋ 29

Slide 30

Slide 30 text

- ٕज़తҙࢥܾఆ - ෳ਺ιϦϡʔγϣϯͷϝϦοτσϝϦοτΛݴޠԽ͠ൺֱ͢ Δ͜ͱͰɺ࣌ؒ͸͔͔Δ͕ΑΓଥ౰ੑͷߴ͍൑அ͕Ͱ͖ΔΑ ͏ʹͳΔ - ޮՌΛ࠷େԽ͢ΔऔΓ૊Έ - iOSΤϯδχΞ΋े෼ΩϟονΞοϓͰ͖ΔΑ͏υΩϡϝϯ τΛ੔උ͠ɺΩϟονΞοϓPJͰશһ͕KMPʹ޲͖߹͍ɺ ͦΕʹ͋Θͤͨ૊৫ͷܗʹม͑ΔࣄͰɺKMPಋೖͷ੒ՌΛ࠷ େԽͰ͖ΔΑ͏ʹͳΔ ·ͱΊ 30

Slide 31

Slide 31 text

- ࣗ༝౓ͷߴ͞͸ັྗͰɺࢥ͍ඳ͍ͨΞʔΩςΫνϟΛߏங͢Δ͜ͱ͕ Ͱ͖ͨ - iOSΤϯδχΞʹͱͬͯͷϋʔυϧ͸Ұఆ͋Δ - Kotlin֮͑Δඞཁ͕͋ΔͷͰɺυΩϡϝϯτ΍ڭҭମ੍੔͑Δͳ Ͳɺ૊৫ϨϕϧͰͷαϙʔτ͕େࣄ - Objective-Cʹม׵͞ΕΔ͜ͱͷͭΒΈ - Swift ௚઀ม׵͕ KMPͷϩʔυϚοϓ ʹ৐͍ͬͯΔͷͰظ଴ - શһ͕KMPΛॻ͚ΔΑ͏ʹͳΔ͜ͱͷϝϦοτ͸େ͖͔ͬͨ - શһͰ࢓༷΍ઃܭΛٞ࿦͢Δૉ஍͕Ͱ͖ͨ - iOS/AndroidͷϓϥοτϑΥʔϜΛ·͙ͨӽڥ͕͠΍͘͢ͳͬͨ KMPʹର͢Δॴײ 31

Slide 32

Slide 32 text

ग़ձ͍͔Β ΠϊϕʔγϣϯΛੜΈग़͢ © Sansan, Inc.

Slide 33

Slide 33 text

© Sansan, Inc. ಇ͖ํΛม͑ΔDXαʔϏε ఏڙαʔϏε ੥ٻ ਓ΍اۀͱͷग़ձ͍ΛϏδωενϟϯεʹͭͳ͛Δʮಇ͖ํΛม͑ΔDXαʔϏεʯΛఏڙ
 Ϗδωεϑϩʔʹ͓͚Δ͞·͟·ͳ෼໺ͰαʔϏεΛల։ Ӧۀ ӦۀDX ܖ໿ ܖ໿DX ܦཧDX ๏ਓ޲͚%9 ඞཁͳ৘ใΛ ͙͢ʹݟ͚ͭΒΕΔ ৘ใͷ؅ཧ͕͠΍͘͢ ͙͢ʹڞ༗Ͱ͖Δ ৘ใΛ෼ੳɾ׆༻͠΍͘͢ σʔλʹج͍ͮͨ൑அ͕Ͱ͖Δ SansanͷDXαʔϏεͷ׆༻ͰมΘΔಇ͖ํ ໊ࢗ؅ཧ ໊ࢗDX ݸਓ޲͚%9

Slide 34

Slide 34 text

© Sansan, Inc. ໊ࢗ؅ཧ͔ΒɺऩӹΛ࠷େԽ͢Δ ӦۀDXαʔϏεʮSansanʯ αʔϏε ʛ Sansan Sansan͸ɺ໊ࢗ΍اۀ৘ใɺӦۀཤྺΛ Ұݩ؅ཧͯ͠શࣾͰڞ༗Ͱ͖ΔΑ͏ʹ͢Δ͜ͱͰɺ ച্֦େͱίετ࡟ݮΛಉ࣌ʹ࣮ݱ͢Δ ӦۀDXαʔϏεͰ͢ɻ

Slide 35

Slide 35 text

© Sansan, Inc. ໊ࢗΞϓϦʮEightʯ λονͰަ׵ɻεϚʔτʹ؅ཧɻ Eight͸Ձ஋͋Δग़ձ͍ΛλονͰͭͳ͙ɺ ϏδωεͷͨΊͷ໊ࢗΞϓϦͰ͢ɻ ͭͳ͕ͬͨ૬खͷঢਐɾҟಈɾస৬ͳͲͷ৘ใ͕ ࣗಈͰߋ৽͞ΕΔͨΊɺ पғͷۙگΛεϚʔτʹ೺ѲͰ͖·͢ɻ αʔϏεʛEight

Slide 36

Slide 36 text

© Sansan, Inc. Sansanͷࣾ಺੍౓ ࣾ಺੍౓ ίϛϡχέʔγϣϯͷଅਐ ্௕ɺ໾һͱͷަྲྀ ɾΧλναϩϯ ɾΧλνό ෦໳Λӽ͑ͨަྲྀ ɾKnow Me ɹɹɾγϟοϑϧKnow Me ɹɹɾΧλνKnow Me ɹɹɾ΢νKnow Me ɹɹɾKnow Me Area ɾϤϦΞΠ ɾͳͳ͸ͪ ۀ຿ޮ཰޲্ ೛৷தɾҭࣇதͷϝϯόʔ ɾOYACO ɾH2O ɾM2Oʢ৽ଔϝϯόʔ޲͚ʣ ௨ۈʹΑΔෛ୲Λܰݮ ɾνϟʔδٳՋ ɾͲʹʙͪΐ ɾGeek Seek Tools ɾGeek Seek Tools for Power Apps ɾGeek Seek Skills ɾGeek Seek Workshops ɾOCEAN ɾࣾձਓത࢜՝ఔࢧԉ੍౓ εΩϧΞοϓ ڧΈʢࢿ࣭ʣ ݸਓ ɾJump!ɹɹɹɹ ɾڧϚον ɾίʔνϟ ɾίʔνϟ for Ϛωδϝϯτ ૊৫ ɾίʔνϟνʔϜ ɾݟͭΧον ɾSansanϑΝϛϦʔσʔ ͦͷଞ ɾϑΟοτ ɾϚΠϛϟΫ ࣾ಺෦׆ಈ ɾΑ͍͜

Slide 37

Slide 37 text

© Sansan, Inc. εΩϧΞοϓ ਓࣄࢪࡦ ɾGeek Seek Skills ΤϯδχΞɾΫϦΤΠλʔ޲͚ʹɺٕज़ॻͷߪೖඅ΍ࢿ֨औಘɺ ษڧձ΁ͷࢀՃͳͲɺ஌ࣝͷशಘʹؔΘΔඅ༻Λิॿ͢Δ੍౓ ɾGeek Seek Workshops ΤϯδχΞɾΫϦΤΠλʔ޲͚ʹɺࣾ಺ͰษڧձΛ։࠵͢Δࡍͷ ࠙਌ձඅΛิॿ͢Δ੍౓ ɾOCEAN ɹӳޠֶशͷඅ༻Λิॿ͢Δ੍౓

Slide 38

Slide 38 text

Sansanגࣜձࣾ iOSΤϯδχΞ࠾༻৘ใ https://media.sansan-engineering.com/ios-engineer 39

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

No content