Upgrade to Pro — share decks privately, control downloads, hide ads and more …

KMMを使って感じたPros/Cons / Pros/Cons experienced using KMM

KMMを使って感じたPros/Cons / Pros/Cons experienced using KMM

iOSDC Japan 2021 スポンサーセッションでShota Kashiharaと一緒に話した資料です。
https://iosdc.jp/2021/

E505897a79eede1a676f92740261e8f8?s=128

Masatoshi Kubode

September 19, 2021
Tweet

Transcript

  1. ©2021 Wantedly, Inc. ,..Λ࢖ͬͯײͨ͡1SPT$POT J04%$ Wantedly, Inc. Kubode & Kashihara

  2. ©2021 Wantedly, Inc. ࣗݾ঺հ

  3. ©2021 Wantedly, Inc. w ,..ͱ͸ͳʹ͔ w 8BOUFEMZͰͷಋೖܦҢ w 8BOUFEMZͷ࣮ྫΛ঺հ "HFOEB

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

  5. ©2021 Wantedly, Inc. w ,PUMJO.VMUJQMBUGPSN.PCJMF ,..  w ϏδωεϩδοΫΛڞ௨Խ w

    6*͸֤ϓϥοτϑΥʔϜͰ࣮૷ ,..ͱ͸ https://kotlinlang.org/lp/mobile/
  6. ©2021 Wantedly, Inc. ,PUMJOͷڞ௨ίʔυ͕J04"OESPJEͰ౳͘͠ಈ͘ ,PUMJOͷڞ௨ίʔυΛॻ͘ 👉ϓϥοτϑΥʔϜʹ࠷దͳܗʹม׵ 👉ͦΕΛ֤ϓϥοτϑΥʔϜͰར༻͢Δ ,..ͱ͸ "OESPJE ,..ͷڞ௨ίʔυ

    J04 GSBNFXPSL$PDPB1PET 4XJGU1BDLBHF.BOBHFS 0CKFDUJWF$4XJGU ޓ׵όΠφϦ 6*,JU4XJGU6* +7.ޓ׵όΠφϦ "OESPJE7JFX +FUQBDL$PNQPTF (SBEMF.BWFO
  7. ©2021 Wantedly, Inc. ,..͚ͩͰ͸J04"OESPJEΞϓϦΛ࡞Εͳ͍ 6*ߏஙํ๏͸ϓϥοτϑΥʔϜͰҟͳΔ 👉ҟͳΔ΋ͷΛڞ௨Խ͸Ͱ͖ͳ͍ 👉6*͸ϓϥοτϑΥʔϜʹ࠷దͳํ๏ͰߏஙͰ͖Δ ,..ͱ͸

  8. ©2021 Wantedly, Inc. 8BOUFEMZͰͷಋೖܦҢ

  9. ©2021 Wantedly, Inc. ෛ࠴Խͨ͠3FBDU/BUJWF w ೥ʹJ04ΞϓϦͷϦχϡʔΞϧΛਐΊ͍ͯͨ w ϦχϡʔΞϧதͷάϩʔεΛ8FC'SPOUΤϯδχΞ͕3FBDU/BUJWFͰ΍͍ͬͯͨ w ϦχϡʔΞϧޙ΋෦෼తʹ3FBDU/BUJWF͕࢒Δ

    w 8FC'SPOUΤϯδχΞ͕ຊདྷͷ։ൃʹ໭Δͱϝϯςφʔ͕ෆࡏʹ w ෛ࠴Խɺ9DPEFΞοϓσʔτͳͲͷো֐ʹͳͬͯ͘Δ w 3FBDU/BUJWFΛऔΓআ͘͜ͱʹ ಋೖܦҢ
  10. ©2021 Wantedly, Inc. ϏδωεϩδοΫڞ௨Խͷ՝୊ w J04"OESPJEͰඍົʹڍಈ͕ҧ͏ w ࣮૷࿙ΕɺΩϟογϡɺΤϥʔ࣌ͷڍಈ w εΩʔϚఆٛ࿙ΕʹΑΔόά

    w Ͳͬͪͷ࣮૷͕ਖ਼͍͔͠Θ͔Βͳ͍😱 w J04"OESPJEͲͪΒ΋࣮૷ɾϨϏϡʔ͢Δίετ ಋೖܦҢ
  11. ©2021 Wantedly, Inc. ,..ͷݕ౼ɺಋೖ΁ w 1P$ͷ࣮ࢪ w ࢼݧతʹ"OESPJE΁ಋೖ w νʔϜͰ߹ҙΛऔͬͯJ04ʹ΋ಋೖ͢Δ൑அ

    ಋೖܦҢ
  12. ©2021 Wantedly, Inc. 8BOUFEMZͰͷಋೖྫ ͔͜͜Β͸!LBTIJIBSBSBSB͕͓ૹΓ͠·͢ʂ

  13. ©2021 Wantedly, Inc.  ϨϙδτϦઃܭϥΠϒϥϦ഑෍ํ๏Λߟ͑Δ  J04͔Βݟͨ,..ͷϥΠϒϥϦ  6*Ҏ֎ͷϨΠϠʔͷڞ௨Խ 

    ࠔͬͨ࿩ 8BOUFEMZͰͷಋೖྫ
  14. ©2021 Wantedly, Inc. ϨϙδτϦઃܭΛߟ͑Δ ,..੡ϥΠϒϥϦͱJ04ΞϓϦɾ"OESPJEΞϓϦͷͭϞδϡʔϧΛ ϨϙδτϦϨϕϧͰͲͷΑ͏ʹ෼ׂ͢Δ͔ʁ ީิ  ͭͷϨϙδτϦʹू໿͢Δ 

    Ϟδϡʔϧ͝ͱʹϨϙδτϦΛ෼ׂ͢Δ 8BOUFEMZͰͷಋೖྫ
  15. ©2021 Wantedly, Inc. ϨϙδτϦઃܭΛߟ͑Δ ,..੡ϥΠϒϥϦͱJ04ΞϓϦɾ"OESPJEΞϓϦͷͭϞδϡʔϧΛ ϨϙδτϦϨϕϧͰͲͷΑ͏ʹ෼ׂ͢Δ͔ʁ ީิ  ͭͷϨϙδτϦʹू໿͢Δ 

    Ϟδϡʔϧ͝ͱʹϨϙδτϦΛ෼ׂ͢Δ✅ 8BOUFEMZͰͷಋೖྫ
  16. ©2021 Wantedly, Inc. ϥΠϒϥϦ഑෍ํ๏Λߟ͑Δ ީิ  $PDPB1PETͰϏϧυࡁΈͷGSBNFXPSLΛ഑෍͢Δ  HJUTVCNPEVMFͰιʔείʔυΛڞ༗͠ɺར༻ଆͰϏϧυ͢Δ 8BOUFEMZͰͷಋೖྫ

  17. ©2021 Wantedly, Inc. ϥΠϒϥϦ഑෍ํ๏Λߟ͑Δ ީิ  $PDPB1PETͰϏϧυࡁΈͷGSBNFXPSLΛ഑෍͢Δ  HJUTVCNPEVMFͰιʔείʔυΛڞ༗͠ɺར༻ଆͰϏϧυ͢Δ✅ 8BOUFEMZͰͷಋೖྫ

  18. ©2021 Wantedly, Inc. ϥΠϒϥϦ഑෍ํ๏Λߟ͑Δ HJUTVCNPEVMFͰιʔείʔυΛڞ༗͠ɺར༻ଆͰϏϧυ͢Δ✅ ཧ༝ ॳظίετ͕௿͍  ౰࣌͸·ٕͩज़ݕূͷॳظஈ֊Ͱ଎͘ΞϓϦ্Ͱಈ͔͢͜ͱ͕ॏཁͩͬͨ 

    ϥΠϒϥϦͷΠϯλϑΣʔε͕ະ׬੒ͰසൟʹखΛೖΕ͍ͯ͘ϑΣʔζͰ͸෼அ͕ ແ͍΄͏͕଎͘։ൃͰ͖ͨ ޙ͔ΒHJUTVCNPEVMFΛ$PDPB1PETʹҠߦ͢Δ͜ͱ͕Մೳͩͬͨ 8BOUFEMZͰͷಋೖྫ
  19. ©2021 Wantedly, Inc. J04͔Βݟͨ,..ͷϥΠϒϥϦ

  20. ©2021 Wantedly, Inc. ,PUMJOͰॻ͍ͨίʔυΛ4XJGUͰར༻͢Δ ,PUMJOͰॻ͍ͨίʔυ͕4XJGU͔ΒͲ͏ݟ͑Δͷ͔ɺ ಉظॲཧɾඇಉظॲཧͷͭΛྫʹ؆୯ʹ঺հ J04͔Βݟͨ,..ͷϥΠϒϥϦ

  21. ©2021 Wantedly, Inc. ಉظॲཧ J04͔Βݟͨ,..ͷϥΠϒϥϦ

  22. ©2021 Wantedly, Inc. ඇಉظॲཧ J04͔Βݟͨ,..ͷϥΠϒϥϦ

  23. ©2021 Wantedly, Inc. 6*Ҏ֎ͷϨΠϠʔͷڞ௨Խ

  24. ©2021 Wantedly, Inc. 8BOUFEMZ7JTJUΞϓϦ  ,..Λ6*Ҏ֎ͷϨΠϠʔͰར༻  7JFX͸04ຖͷωΠςΟϒͳ࣮૷  J04͸6*,JUΛ࢖༻͍ͯ͠·͢ɻ

    6*Ҏ֎ͷϨΠϠʔͷڞ௨Խ Ҿ༻: Wantedly Visitʹ͓͚ΔKotlin Multiplatformͷಋೖͱ࣮૷ https://www.wantedly.com/companies/wantedly/post_articles/300999  ,..Λ6*Ҏ֎ͷϨΠϠʔͰར༻  7JFX͸04ຖͷωΠςΟϒͳ࣮૷  J04͸6*,JUΛ࢖༻͍ͯ͠·͢ɻ  3FBDUPS,JUͱ͍͏ϥΠϒϥϦΛ࢖ͬͨ 'MVYϥΠΫͳϑϨʔϜϫʔΫΛ࠾༻
  25. ©2021 Wantedly, Inc. 8BOUFEMZ7JTJUΞϓϦ  ,..Λ6*Ҏ֎ͷϨΠϠʔͰར༻  7JFX͸04ຖͷωΠςΟϒͳ࣮૷  J04͸6*,JUΛ࢖༻͍ͯ͠·͢ɻ

     3FBDUPS,JUͱ͍͏ϥΠϒϥϦΛ࢖ͬͨ 'MVYϥΠΫͳϑϨʔϜϫʔΫΛ࠾༻ 6*Ҏ֎ͷϨΠϠʔͷڞ௨Խ Ҿ༻: https://github.com/ReactorKit/ReactorKit
  26. ©2021 Wantedly, Inc. 6*ͷ࣮૷ྫ 6*Ҏ֎ͷϨΠϠʔͷڞ௨Խ

  27. ©2021 Wantedly, Inc. 6*ͷ࣮૷ྫ 6*Ҏ֎ͷϨΠϠʔͷڞ௨Խ

  28. ©2021 Wantedly, Inc. 6*ͷ࣮૷ྫ 6*Ҏ֎ͷϨΠϠʔͷڞ௨Խ

  29. ©2021 Wantedly, Inc. 6*ͷ࣮૷ྫ 6*Ҏ֎ͷϨΠϠʔͷڞ௨Խ

  30. ©2021 Wantedly, Inc. 6*ͷ࣮૷ྫ 6*Ҏ֎ͷϨΠϠʔͷڞ௨Խ

  31. ©2021 Wantedly, Inc. 6*ͷ࣮૷ྫ 6*Ҏ֎ͷϨΠϠʔͷڞ௨Խ

  32. ©2021 Wantedly, Inc. 3FBDUPSͷ࣮૷ྫ 6*Ҏ֎ͷϨΠϠʔͷڞ௨Խ

  33. ©2021 Wantedly, Inc. 3FBDUPSͷ࣮૷ྫ 6*Ҏ֎ͷϨΠϠʔͷڞ௨Խ

  34. ©2021 Wantedly, Inc. ࠔͬͨ࿩

  35. ©2021 Wantedly, Inc. J04ଆͰࠔͬͨ࿩ JOUFSGBDFͷܕύϥϝʔλ͕ࣦΘΕΔ ,PUMJOͷίϧʔνϯͷओཁͳίϯϙʔωϯτͷͭͰ͋Δ'MPX5Ͱ͕͢ɺ J04͔Βͷར༻ͷࡍʹ͸ܕύϥϝʔλ͕ࣦΘΕͯ"OZ Λฦ͢Α͏ʹͳ͍ͬͯ·ͨ͠ ˞'MPX5͸͜͜Ͱ͸ͬ͘͟Γݴ͏ͱ$PNCJOFͷ1VCMJTIFS 3Y4XJGUͷ0CTFSWBCMF5

    ͷΑ͏ͳ΋ͷɺͱ͍͏ཧղͰ0,Ͱ͢
  36. ©2021 Wantedly, Inc. JOUFSGBDF QSPUPDPM ͷܕύϥϝʔλ͕ࣦΘΕΔ J04ଆͰࠔͬͨ࿩

  37. ©2021 Wantedly, Inc. JOUFSGBDF QSPUPDPM ͷܕύϥϝʔλ͕ࣦΘΕΔ J04ଆͰࠔͬͨ࿩

  38. ©2021 Wantedly, Inc. JOUFSGBDF QSPUPDPM ͷܕύϥϝʔλ͕ࣦΘΕΔ J04ଆͰࠔͬͨ࿩

  39. ©2021 Wantedly, Inc. JOUFSGBDF QSPUPDPM ͷܕύϥϝʔλ͕ࣦΘΕΔ J04ଆͰࠔͬͨ࿩

  40. ©2021 Wantedly, Inc. JOUFSGBDF QSPUPDPM ͷܕύϥϝʔλ͕ࣦΘΕΔ J04ଆͰࠔͬͨ࿩  ,..Ͱ࡞ΒΕͨJ04޲͚ϥΠϒϥϦ͸0CKFDUJWF$ϥΠϒϥϦʹͳΔ 

    0CKFDUJWF$ ͷ QSPUPDPM ʹ͸ܕύϥϝʔλ͕ѻ͑ͳ͍ͨΊ 'MPX5 ͷܕύϥ ϝʔλ͕JE@/VMMBCMFܕ 0QUJPOBM"OZܕ ʹͳͬͯ͠·͍ͬͯΔ
  41. ©2021 Wantedly, Inc. JOUFSGBDF QSPUPDPM ͷܕύϥϝʔλ͕ࣦΘΕΔ J04ଆͰࠔͬͨ࿩  ,..Ͱ࡞ΒΕͨJ04޲͚ϥΠϒϥϦ͸0CKFDUJWF$ϥΠϒϥϦʹͳΔ 

    0CKFDUJWF$ ͷ QSPUPDPM ʹ͸ܕύϥϝʔλ͕ѻ͑ͳ͍ͨΊ 'MPX5 ͷܕύϥ ϝʔλ͕JE@/VMMBCMFܕ 0QUJPOBM"OZܕ ʹͳͬͯ͠·͍ͬͯΔ
  42. ©2021 Wantedly, Inc. J04ଆͰࠔͬͨ࿩ ճආࡦ Α͘஌ΒΕΔํ๏͸ͭ  "OZ Λར༻ଆͰ೚ҙͷܕʹΩϟετ͢Δ 

    ,..ଆͰ'MPX5Ͱ͸ͳ͘೚ҙͷܕΛฦ͢ΫϩʔδϟΛ༻ҙ͢Δ
  43. ©2021 Wantedly, Inc. J04ଆͰࠔͬͨ࿩ ճආࡦ Α͘஌ΒΕΔํ๏͸ͭ  "OZ Λࣗ໌ͳ೚ҙͷܕʹΩϟετ͢Δ 

    ,..ଆͰ'MPX5Ͱ͸ͳ͘೚ҙͷܕΛฦ͢ΫϩʔδϟΛ༻ҙ͢Δ✅
  44. ©2021 Wantedly, Inc. ·ͣɺ,PUMJOͰ'MPX͔Β4UBUFΛฦ͢Ϋϩʔδϟʹม׵͢ΔॲཧΛॻ͖·͢ɻ J04ଆͰࠔͬͨ࿩

  45. ©2021 Wantedly, Inc. ·ͣɺ,PUMJOͰ'MPX͔Β4UBUFΛฦ͢Ϋϩʔδϟʹม׵͢ΔॲཧΛॻ͖·͢ɻ J04ଆͰࠔͬͨ࿩

  46. ©2021 Wantedly, Inc. ͜ͷΫϩʔδϟΛJ04ଆͰར༻͢Δͱɺ0QUJPOBM"OZܕͰ͸ͳ͘ݩʑͷܕ͕෇͍ͨ ஋͕औಘͰ͖·͢ɻ J04ଆͰࠔͬͨ࿩

  47. ©2021 Wantedly, Inc. ΫϩʔδϟΛ0CTFSWBCMFʹม׵ͯ͠࢖༻Ͱ͖ΔΑ͏ʹ͍ͯ͠·͢ɻ J04ଆͰࠔͬͨ࿩

  48. ©2021 Wantedly, Inc. ·ͱΊ

  49. ©2021 Wantedly, Inc. 1SPT • UI࣮૷ʹूதͰ͖Δ • ඞવతʹ੹຿Λҙࣝͨ͠ઃܭʹͳΔ $POT •

    Swiftͷޓ׵ੑʹ՝୊͕͋Γϥούʔ͕ඞཁ • Kotlin΍Gradleͱ͍ͬͨผͷ஌͕ࣝඞཁ ·ͱΊ
  50. ©2021 Wantedly, Inc. ,..Λಋೖ͢Δࡍʹݕ౼͢Δ΂͖͜ͱ w νʔϜϝϯόʔ͕,PUMJOʹ׳Ε͍ͯΔ͔ w J04ͱ"OESPJEͷڑ཭͸͍͔ۙ w ϓϩμΫτͱͯ͠߹ҙΛͱͬͯਐΊΒΕΔ͔

    νʔϜʹಋೖ͢ΔެࣜΨΠυ΋͋ΔͷͰࢀߟʹ IUUQTLPUMJOMBOHPSHEPDTNPCJMFJOUSPEVDFZPVSUFBNUPLNNIUNM ·ͱΊ
  51. ©2021 Wantedly, Inc. એ఻

  52. ©2021 Wantedly, Inc. IUUQTEPDTXBOUFEMZEFW

  53. ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2021 Wantedly, Inc. 8FBSFIJSJOH

  54. ϖʔδλΠτϧ ϖʔδαϒλΠτϧ ©2021 Wantedly, Inc. 5IBOLT