https://wantedly-dev.connpass.com/event/207895/
©2021 Wantedly, Inc.,..ͷಋೖͱಘΒΕΔͷ,..ͱʁಋೖͷಓͷΓɺԿ͕ಘΒΕΔͷ͔,..ษڧձ8BOUFEMZºνʔϜϥϘ2021/04/06 - Masatoshi Kubode
View Slide
©2021 Wantedly, Inc.XXXXBOUFEMZDPNJELVCPEF
©2021 Wantedly, Inc.ࠓͷൃදͷత
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ©2021 Wantedly, Inc.,..ͷັྗΛ͑ͯಋೖͷྐʹͯ͠Β͏
©2021 Wantedly, Inc."HFOEB
©2021 Wantedly, Inc. ,..ͱͳʹ͔ʁ ,..ͷಛ ಋೖ·ͰͷಓͷΓ ಋೖͯ͠ײͨ͡1SPT$POT"HFOEB
©2021 Wantedly, Inc.,..ͱͳʹ͔ʁ
©2021 Wantedly, Inc.w ,PUMJO.VMUJQMBUGPSN.PCJMF ,..w J04ͱ"OESPJEͷϏδωεϩδοΫΛ୯ҰͷίʔυϕʔεͰڞ௨Խ͢ΔϞόΠϧ4%,w 6*ڞ௨Խͤͣɺ֤ϓϥοτϑΥʔϜͰ࣮,..ͱʁhttps://kotlinlang.org/lp/mobile/
©2021 Wantedly, Inc.w ୯ҰίʔυϕʔεͰෳͷϓϥοτϑΥʔϜΛαϙʔτ͢ΔΈw $PNNPOʹهड़ͨ͠ίʔυͯ͢ͷϓϥοτϑΥʔϜͰಈ࡞͢Δw J04"OESPJEʹಛԽͨ͠෦͕,..,PUMJO.VMUJQMBUGPSNAndroidiOS☝Kotlin Multiplatform Mobile (KMM)Kotlin Multiplatformhttps://kotlinlang.org/docs/multiplatform.html
©2021 Wantedly, Inc.,..ʹࢸΔྺ࢙1996 Java 1.02016 Kotlin 1.0 Kotlin/JVM2016 Kotlin 1.1 Kotlin/JS2017 Kotlin 1.2 Kotlin Multiplatform Experimental2018 Kotlin 1.3 Kotlin/Native20208݄ Kotlin 1.4Kotlin Multiplatform AlphaKotlin Multiplatform Mobile (KMM)
©2021 Wantedly, Inc.w ʹϦϦʔεw 8SJUFPODF SVOBOZXIFSF͕εϩʔΨϯw +7.͕ͳ͍ͱಈ͔ͳ͍w ͭ·ΓJ04ͳͲͰಈ͔ͳ͍+BWB
©2021 Wantedly, Inc.w +7.ͱ"OESPJEͷϓϩάϥϛϯάݴޠw +BWBDPNQBUJCJMJUZ,PUMJO
©2021 Wantedly, Inc.w +BWB4DSJQU4VQQPSUw ·ͩίʔυڞ௨ԽͷΈͳ͍w ޙʹ"OESPJEͷୈҰڃݴޠʹ,PUMJO
©2021 Wantedly, Inc.w ,PUMJO.VMUJQMBUGPSN &YQFSJNFOUBMw $PNNPOͱ͍͏֓೦͕Ͱ͖Δ,PUMJO
©2021 Wantedly, Inc.w ,PUMJO/BUJWFw J04w 8JOEPXTw -JOVYw FUDw 8SJUFPODF SVOBOZXIFSF,PUMJO
©2021 Wantedly, Inc.w ,PUMJO.VMUJQMBUGPSN"MQIBw ,PUMJO.VMUJQMBUGPSN.PCJMF ,..,PUMJOAndroidiOS☝Kotlin Multiplatform Mobile (KMM)
©2021 Wantedly, Inc.,..ͷಛ
©2021 Wantedly, Inc.w 6*ڞ௨Խ͠ͳ͍w ϓϥοτϑΥʔϜʹ࠷దͳܗw ϓϥοτϑΥʔϜݻ༗ͷ"1*͑Δ,..ͷಛ
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ©2021 Wantedly, Inc.6*ڞ௨Խ͠ͳ͍
©2021 Wantedly, Inc.,..ϏδωεϩδοΫΛڞ௨Խ͢Δ,..࠷దͳ69ϓϥοτϑΥʔϜʹωΠςΟϒͳͷͰ͋Δ͖ͱߟ͍͑ͯΔɻͳͷͰ,..Ͱͷڞ௨Խਪ͠ͳ͍ɻ6*ڞ௨Խ͠ͳ͍
©2021 Wantedly, Inc.6*ڞ௨Խ͠ͳ͍طଘϓϩμΫτͷಋೖͰղ͖͘՝͕ݮΔ
©2021 Wantedly, Inc.6*ڞ௨Խ͠ͳ͍ ,..ΞʔΩςΫνϟΨΠυϥΠϯLayer Recommendation on sharingBusiness logic YesPlatform accessYes/no. ϓϥοτϑΥʔϜݻ༗ͷAPI͑Δ͕ڍಈڞ௨ԽͰ͖ΔFrontend behavior Yes/no. MVP, MVIͳͲͳΜͰUser interface No. ϓϥοτϑΥʔϜݻ༗Ͱ͋Δ͖https://kotlinlang.org/docs/mobile/architect-kmm-app.html
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ©2021 Wantedly, Inc.ϓϥοτϑΥʔϜʹ࠷దͳܗ
©2021 Wantedly, Inc.ΤίγεςϜʹແཧͳ͘౷߹w J04w GSBNFXPSLw $PDPB1PETw "OESPJEw BBSw KBSw (SBEMFTVCNPEVMFϓϥοτϑΥʔϜʹ࠷దͳܗ ґଘੑ
©2021 Wantedly, Inc.ϓϥοτϑΥʔϜʹ࠷దԽ͞ΕͨόΠφϦϓϥοτϑΥʔϜʹ࠷దͳܗ Φʔόʔϔουͷগͳ͞
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ©2021 Wantedly, Inc.ϓϥοτϑΥʔϜݻ༗ͷ"1*͑Δ
©2021 Wantedly, Inc.,..ͰϓϥοτϑΥʔϜݻ༗"1*Λ͑ΔϓϥοτϑΥʔϜݻ༗ͷ"1*͑Δ FYQFDUBDUVBMhttps://kotlinlang.org/docs/mobile/connect-to-platform-specific-apis.html
©2021 Wantedly, Inc.ಋೖ·ͰͷಓͷΓ
©2021 Wantedly, Inc.νʔϜͷཧղ,..ͷυΩϡϝϯτʹΨΠυϥΠϯ͕͋Δ͘Β͍ॏཁw ϓϩδΣΫτͰಇ͘ਓʑΛཧղ͢Δ͜ͱ͕ɺ౷߹Λޭͤ͞ΔͨΊͷୈҰาw ্͔࢘Βͨ͠Β৽͍ٕ͠ज़ಋೖϦεΫw J04ΤϯδχΞ͔Βͨ͠Βࠓ·ͰͱҟͳΔڥw ,..͕Ͳ͏ͬͯಈ͍͍ͯΔͷ͔Λઆ໌w ,..ͷՁΛײͯ͡Β͏ಋೖͷಓͷΓhttps://kotlinlang.org/docs/mobile/introduce-your-team-to-kmm.html
©2021 Wantedly, Inc.,..࠷దͳखஈ͔ϓϩμΫτͷϑΣʔζνʔϜʹ߹ΘͤΔw ҆ఆ͖ͯͨ͠ϓϩμΫτͰڪΒ͘࠷దw Ծઆݕূஈ֊Ͱదͱݴ͍ʹ͍͘w J04"OESPJEͰϦϦʔεαΠΫϧ͕ҧ͏w ϏδωεϩδοΫߴͰมΘΔw 'MVUUFS3FBDU/BUJWFͷ΄͏͕ߴw ϑϧϦχϡʔΞϧ༧ఆͳΒʁw νʔϜͰ߹ҙΛͱͬͯ࠷దͳͷΛબͿಋೖͷಓͷΓ
©2021 Wantedly, Inc.J04"OESPJE྆ํͰ͖Δw τϥϒϧγϡʔςΟϯάw ڥߏஙπʔϧνΣΠϯw ͍ͳ͔ͬͨΒɺͳΓ·͠ΐ͏ಋೖͷಓͷΓ
©2021 Wantedly, Inc.ݕূw J04"OESPJE྆ํͰݕূ͕ඞਢw J04ʹ͓͚ΔϝϞϦϚωδϝϯτϞσϧͷҧ͍w J04ͷ0CKFDUJWF$4XJGUޓੑͷ੍ݶw ΠϯλʔϑΣʔε͔ΒδΣωϦΫεফࣦw ݺΜͩTVTQFOEͷΩϟϯηϧ͕Ͱ͖ͳ͍w J04ΤϯδχΞͱҰॹʹݕূ͢Δw 1P$ϓϩτλΠϓΛ࡞ͬͯখ͘͞ߴʹݕূಋೖͷಓͷΓ
©2021 Wantedly, Inc.,B.1,JUಋೖͷಓͷΓhttps://github.com/touchlab/KaMPKit,..ͷධՁΛ༰қʹ͢ΔελʔλʔΩοτ
©2021 Wantedly, Inc.ಋೖࣄྫಋೖͷಓͷΓhttps://kotlinlang.org/lp/mobile/case-studies/
©2021 Wantedly, Inc.ಋೖͯ͠ײͨ͡1SPT$POT
©2021 Wantedly, Inc.w ظతͳੜ࢈ੑվળ͢Δw ωΠςΟϒͷ6*69ΛఏڙͰ͖Δw ΤϥʔϋϯυϦϯάΩϟογϡͷڍಈͳͲɺඍົͳҧ͍ݮΔw ޙ͍࣮͢ΔϓϥοτϑΥʔϜɺຊʹ6*࣮͚ͩͰࡁΉw ωΠςΟϒͱͷڥքʹͳΔ,..ϨΠϠʔͷ༷ܾ͑͞ΊΕɺ,..ͱωΠςΟϒͷ࣮͕͋ΔఔฒྻԽͰ͖Δw ,..ʹ6*͕ͳ͍ͷͰɺඞવతʹςετΧόϨοδ͕ߴ͘ͳΔ1SPT
©2021 Wantedly, Inc.w "MQIBͱ͍͏εςʔλεɺϦεΫΛෛ͏͜ͱw 8SJUFPODF UFTUFWFSZXIFSFw J04ΤϯδχΞͷֶशίετ͕ߴ͍w J04ͷ0CKFDUJWF$4XJGUޓੑ͕Ұ෦ඍົ$POT
©2021 Wantedly, Inc.·ͱΊ
©2021 Wantedly, Inc.w ࠷దͳ6*69ͷఏڙͱڞ௨Խͷཱ͕྆Ͱ͖Δw طଘϓϩμΫτΛڞ௨Խ͢Δʹ࠷ద·ͱΊ
ϖʔδλΠτϧ ϖʔδαϒλΠτϧ©2021 Wantedly, Inc.🙇