Slide 1

Slide 1 text

©2021 Wantedly, Inc. ,..ͷಋೖͱಘΒΕΔ΋ͷ ,..ͱ͸ʁಋೖͷಓͷΓɺԿ͕ಘΒΕΔͷ͔ ,..ษڧձ8BOUFEMZºνʔϜϥϘ 2021/04/06 - Masatoshi Kubode

Slide 2

Slide 2 text

©2021 Wantedly, Inc. XXXXBOUFEMZDPNJELVCPEF

Slide 3

Slide 3 text

©2021 Wantedly, Inc. ࠓ೔ͷൃදͷ໨త

Slide 4

Slide 4 text

ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2021 Wantedly, Inc. ,..ͷັྗΛ఻͑ͯ ಋೖͷྐʹͯ͠΋Β͏

Slide 5

Slide 5 text

©2021 Wantedly, Inc. "HFOEB

Slide 6

Slide 6 text

©2021 Wantedly, Inc. ,..ͱ͸ͳʹ͔ʁ ,..ͷಛ௃ ಋೖ·ͰͷಓͷΓ ಋೖͯ͠ײͨ͡1SPT$POT "HFOEB

Slide 7

Slide 7 text

©2021 Wantedly, Inc. ,..ͱ͸ͳʹ͔ʁ

Slide 8

Slide 8 text

©2021 Wantedly, Inc. w ,PUMJO.VMUJQMBUGPSN.PCJMF ,.. w J04ͱ"OESPJEͷϏδωεϩδοΫΛ୯ҰͷίʔυϕʔεͰڞ௨Խ͢ΔϞόΠϧ4%, w 6*͸ڞ௨Խͤͣɺ֤ϓϥοτϑΥʔϜͰ࣮૷ ,..ͱ͸ʁ https://kotlinlang.org/lp/mobile/

Slide 9

Slide 9 text

©2021 Wantedly, Inc. w ୯ҰίʔυϕʔεͰෳ਺ͷϓϥοτϑΥʔ ϜΛαϙʔτ͢Δ࢓૊Έ w $PNNPOʹهड़ͨ͠ίʔυ͸͢΂ͯͷϓ ϥοτϑΥʔϜͰಈ࡞͢Δ w J04"OESPJEʹಛԽͨ͠෦෼͕,.. ,PUMJO.VMUJQMBUGPSN Android iOS ☝Kotlin Multiplatform Mobile (KMM) Kotlin Multiplatform https://kotlinlang.org/docs/multiplatform.html

Slide 10

Slide 10 text

©2021 Wantedly, Inc. ,..ʹࢸΔྺ࢙ 1996೥ Java 1.0 2016೥ Kotlin 1.0 Kotlin/JVM 2016೥ Kotlin 1.1 Kotlin/JS 2017೥ Kotlin 1.2 Kotlin Multiplatform Experimental 2018೥ Kotlin 1.3 Kotlin/Native 2020೥8݄ Kotlin 1.4 Kotlin Multiplatform Alpha Kotlin Multiplatform Mobile (KMM)

Slide 11

Slide 11 text

©2021 Wantedly, Inc. w ೥ʹϦϦʔε w 8SJUFPODF SVOBOZXIFSF͕εϩʔΨϯ w +7.͕ͳ͍ͱಈ͔ͳ͍ w ͭ·ΓJ04ͳͲͰ͸ಈ͔ͳ͍ +BWB

Slide 12

Slide 12 text

©2021 Wantedly, Inc. w +7.ͱ"OESPJEͷϓϩάϥϛϯάݴޠ w +BWBDPNQBUJCJMJUZ ,PUMJO

Slide 13

Slide 13 text

©2021 Wantedly, Inc. w +BWB4DSJQU4VQQPSU w ·ͩίʔυڞ௨Խͷ࢓૊Έ͸ͳ͍ w ޙʹ"OESPJEͷୈҰڃݴޠʹ ,PUMJO

Slide 14

Slide 14 text

©2021 Wantedly, Inc. w ,PUMJO.VMUJQMBUGPSN &YQFSJNFOUBM w $PNNPOͱ͍͏֓೦͕Ͱ͖Δ ,PUMJO

Slide 15

Slide 15 text

©2021 Wantedly, Inc. w ,PUMJO/BUJWF w J04 w 8JOEPXT w -JOVY w FUD w 8SJUFPODF SVOBOZXIFSF ,PUMJO

Slide 16

Slide 16 text

©2021 Wantedly, Inc. w ,PUMJO.VMUJQMBUGPSN"MQIB w ,PUMJO.VMUJQMBUGPSN.PCJMF ,.. ,PUMJO Android iOS ☝Kotlin Multiplatform Mobile (KMM)

Slide 17

Slide 17 text

©2021 Wantedly, Inc. ,..ͷಛ௃

Slide 18

Slide 18 text

©2021 Wantedly, Inc. w 6*͸ڞ௨Խ͠ͳ͍ w ϓϥοτϑΥʔϜʹ࠷దͳܗ w ϓϥοτϑΥʔϜݻ༗ͷ"1*΋࢖͑Δ ,..ͷಛ௃

Slide 19

Slide 19 text

ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2021 Wantedly, Inc. 6*͸ڞ௨Խ͠ͳ͍

Slide 20

Slide 20 text

©2021 Wantedly, Inc. ,..͸ϏδωεϩδοΫΛڞ௨Խ͢Δ ,..͸࠷దͳ69͸ϓϥοτϑΥʔϜʹωΠςΟϒͳ ΋ͷͰ͋Δ΂͖ͱߟ͍͑ͯΔɻ ͳͷͰ,..Ͱͷڞ௨Խ͸ਪ঑͠ͳ͍ɻ 6*͸ڞ௨Խ͠ͳ͍

Slide 21

Slide 21 text

©2021 Wantedly, Inc. 6*͸ڞ௨Խ͠ͳ͍ طଘϓϩμΫτ΁ͷಋೖͰ͸ղ͘΂͖՝୊͕ݮΔ

Slide 22

Slide 22 text

©2021 Wantedly, Inc. 6*͸ڞ௨Խ͠ͳ͍ ,..ΞʔΩςΫνϟΨΠυϥΠϯ Layer Recommendation on sharing Business logic Yes Platform access Yes/no. ϓϥοτϑΥʔϜݻ༗ͷAPI͸࢖͑Δ͕ ڍಈ͸ڞ௨ԽͰ͖Δ Frontend behavior Yes/no. MVP, MVIͳͲͳΜͰ΋ User interface No. ϓϥοτϑΥʔϜݻ༗Ͱ͋Δ΂͖ https://kotlinlang.org/docs/mobile/architect-kmm-app.html

Slide 23

Slide 23 text

ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2021 Wantedly, Inc. ϓϥοτϑΥʔϜʹ࠷దͳܗ

Slide 24

Slide 24 text

©2021 Wantedly, Inc. ΤίγεςϜʹແཧͳ͘౷߹ w J04 w GSBNFXPSL w $PDPB1PET w "OESPJE w BBS w KBS w (SBEMFTVCNPEVMF ϓϥοτϑΥʔϜʹ࠷దͳܗ ґଘੑ

Slide 25

Slide 25 text

©2021 Wantedly, Inc. ϓϥοτϑΥʔϜʹ࠷దԽ͞ΕͨόΠφϦ ϓϥοτϑΥʔϜʹ࠷దͳܗ Φʔόʔϔουͷগͳ͞

Slide 26

Slide 26 text

ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2021 Wantedly, Inc. ϓϥοτϑΥʔϜݻ༗ͷ"1*΋࢖͑Δ

Slide 27

Slide 27 text

©2021 Wantedly, Inc. ,..಺Ͱ௚઀ϓϥοτϑΥʔϜݻ༗"1*Λ࢖͑Δ ϓϥοτϑΥʔϜݻ༗ͷ"1*΋࢖͑Δ FYQFDUBDUVBM https://kotlinlang.org/docs/mobile/connect-to-platform-specific-apis.html

Slide 28

Slide 28 text

©2021 Wantedly, Inc. ಋೖ·ͰͷಓͷΓ

Slide 29

Slide 29 text

©2021 Wantedly, Inc. νʔϜͷཧղ ,..ͷυΩϡϝϯτʹΨΠυϥΠϯ͕͋Δ͘Β͍ॏཁ w ϓϩδΣΫτͰಇ͘ਓʑΛཧղ͢Δ͜ͱ͕ɺ౷߹Λ੒ޭͤ͞ΔͨΊͷୈҰา w ্͔࢘Βͨ͠Β৽͍ٕ͠ज़ಋೖ͸ϦεΫ w J04ΤϯδχΞ͔Βͨ͠Βࠓ·ͰͱҟͳΔ؀ڥ w ,..͕Ͳ͏΍ͬͯಈ͍͍ͯΔͷ͔Λઆ໌ w ,..ͷՁ஋Λײͯ͡΋Β͏ ಋೖ΁ͷಓͷΓ https://kotlinlang.org/docs/mobile/introduce-your-team-to-kmm.html

Slide 30

Slide 30 text

©2021 Wantedly, Inc. ,..͸࠷దͳखஈ͔ ϓϩμΫτͷϑΣʔζ΍νʔϜʹ߹ΘͤΔ w ҆ఆ͖ͯͨ͠ϓϩμΫτͰ͸ڪΒ͘࠷ద w Ծઆݕূஈ֊Ͱ͸ద੾ͱ͸ݴ͍ʹ͍͘ w J04"OESPJEͰϦϦʔεαΠΫϧ͕ҧ͏ w ϏδωεϩδοΫ΋ߴ଎ͰมΘΔ w 'MVUUFS΍3FBDU/BUJWFͷ΄͏͕ߴ଎ w ϑϧϦχϡʔΞϧ༧ఆͳΒʁ w νʔϜͰ߹ҙΛͱͬͯ࠷దͳ΋ͷΛબͿ ಋೖ΁ͷಓͷΓ

Slide 31

Slide 31 text

©2021 Wantedly, Inc. J04"OESPJE྆ํͰ͖Δ w τϥϒϧγϡʔςΟϯά w ؀ڥߏங΍πʔϧνΣΠϯ w ͍ͳ͔ͬͨΒɺͳΓ·͠ΐ͏ ಋೖ΁ͷಓͷΓ

Slide 32

Slide 32 text

©2021 Wantedly, Inc. ݕূ w J04"OESPJE྆ํͰݕূ͕ඞਢ w J04ʹ͓͚ΔϝϞϦϚωδϝϯτϞσϧͷҧ͍ w J04ͷ0CKFDUJWF$4XJGUޓ׵ੑͷ੍ݶ w ΠϯλʔϑΣʔε͔ΒδΣωϦΫεফࣦ w ௚઀ݺΜͩTVTQFOEͷΩϟϯηϧ͕Ͱ͖ͳ͍ w J04ΤϯδχΞͱҰॹʹݕূ͢Δ w 1P$΍ϓϩτλΠϓΛ࡞ͬͯখ͘͞ߴ଎ʹݕূ ಋೖ΁ͷಓͷΓ

Slide 33

Slide 33 text

©2021 Wantedly, Inc. ,B.1,JU ಋೖ΁ͷಓͷΓ https://github.com/touchlab/KaMPKit ,..ͷධՁΛ༰қʹ͢ΔελʔλʔΩοτ

Slide 34

Slide 34 text

©2021 Wantedly, Inc. ಋೖࣄྫ ಋೖ΁ͷಓͷΓ https://kotlinlang.org/lp/mobile/case-studies/

Slide 35

Slide 35 text

©2021 Wantedly, Inc. ಋೖͯ͠ײͨ͡1SPT$POT

Slide 36

Slide 36 text

©2021 Wantedly, Inc. w ௕ظతͳੜ࢈ੑ͸վળ͢Δ w ωΠςΟϒͷ6*69ΛఏڙͰ͖Δ w ΤϥʔϋϯυϦϯά΍ΩϟογϡͷڍಈͳͲɺඍົͳҧ͍΋ݮΔ w ޙ௥͍࣮૷͢ΔϓϥοτϑΥʔϜ͸ɺຊ౰ʹ6*࣮૷͚ͩͰࡁΉ w ωΠςΟϒͱͷڥքʹͳΔ,..ϨΠϠʔͷ࢓༷ܾ͑͞ΊΕ͹ɺ,..ͱωΠςΟϒͷ࣮૷͕ ͋Δఔ౓ฒྻԽͰ͖Δ w ,..ʹ͸6*͕ͳ͍ͷͰɺඞવతʹςετΧόϨοδ͕ߴ͘ͳΔ 1SPT

Slide 37

Slide 37 text

©2021 Wantedly, Inc. w "MQIBͱ͍͏εςʔλεɺϦεΫΛෛ͏͜ͱ w 8SJUFPODF UFTUFWFSZXIFSF w J04ΤϯδχΞͷֶशίετ͕ߴ͍ w J04ͷ0CKFDUJWF$4XJGUޓ׵ੑ͕Ұ෦ඍົ $POT

Slide 38

Slide 38 text

©2021 Wantedly, Inc. ·ͱΊ

Slide 39

Slide 39 text

©2021 Wantedly, Inc. w ࠷దͳ6*69ͷఏڙͱڞ௨Խͷཱ͕྆Ͱ͖Δ w طଘϓϩμΫτΛڞ௨Խ͢Δʹ͸࠷ద ·ͱΊ

Slide 40

Slide 40 text

ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2021 Wantedly, Inc. 🙇