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

Kotlin導入作戦

224e8a32760b146c3184f7451149efca?s=47 Fukui Atsuko
November 06, 2017

 Kotlin導入作戦

Kotlinをプロダクトに導入するにあたって、ビジネスとどうバランスをとるかのお話です

224e8a32760b146c3184f7451149efca?s=128

Fukui Atsuko

November 06, 2017
Tweet

Transcript

  1. ,PUMJOಋೖ࡞ઓʂ ʙϏδωεͱΤϯδχΞͷ޾ͤΛཱ྆ͤ͞ΔͨΊʹ΍ͬͨ͜ͱʙ #POGJSF"OESPJE 'VLVJ"UTVLP

  2. "CPVUNF • ෱Ҫರࢠ / Fukui Atsuko • @muumuumuumuu • Retty,

    Inc. • AndroidΤϯδχΞ • ͦͷલ͸૊ΈࠐΈܥAndroidͷ͓࢓ࣄ
  3. ࠃ಺/P໊࣮άϧϝαʔϏε Ϣʔβʔ౤ߘܕͷαʔϏεܗଶ $(.  XFCͱΞϓϦͰαʔϏεల։ εϚϗϑΝʔετ γϯάϧυϝΠϯ ݄ؒར༻ऀ਺ສ 3FUUZͷαʔϏε঺հ

  4. օ͞Μ,PUMJO޷͖Ͱ͔͢ʁ ͢Ͱʹಋೖͯ͠·͔͢ʁ ͦΕʹΑͬͯͲΕ͚ͩࣄۀʹߩݙͰ͖· ͔ͨ͠ʁ

  5. 3FUUZͰ͸ಋೖ͔Β΋͏ͦΖͦΖ೥ ,PUMJOͰͲ͏ࣄۀʹߩݙ͖͔ͯͨ͠ ʹ͍͓ͭͯ࿩͠͠·͢ɻ

  6. ৽ن։ൃͰ͸ͳ͘ɺطଘͷ+BWBϓϩδΣΫτʹ ,PUMJOಋೖΛߟ͍͑ͯΔਓ޲͚ʹͳΓ·͢

  7. "HFOEB • લఏ஌ࣝ: Kotlinʹ͍ͭͯ • ಋೖͯ͠Α͔ͬͨͱ͜Ζ • Ͳ͏΍ͬͯಋೖ͔ͨ͠

  8. ,PUMJO

  9. ,PUMJO • 2011೥ʹJetBrain͔ࣾΒൃද͞Εͨϓϩάϥ ϛϯάݴޠ • Better Java ͳݴޠ • JavaͱڞଘՄೳ

    • ؔ਺ܕϓϩάϥϛϯάͷελΠϧΛαϙʔτ • ͔Θ͍͍
  10. Α͔ͬͨͱ͜Ζ

  11. ͕͜͜خ͍͠  • ʢJavaͱൺֱͯ͠ʣ҆શͳίʔυ͕ॻ͚Δ • Null҆શ • ͨͩ͠100%Ͱ͸ͳ͍ • Number

    Format Exception͔Βͷଔۀ • Kotlin 1.1 ͔Β௥Ճ͞Εͨ toIntOrNull() • Immutable variables / collections
  12. ͕͜͜خ͍͠  • Readabilityͷ޲্ • SAMม׵ • Interface஍ࠈ -> Lambda

    • ֦ுؔ਺ • Collection • Data class
  13. ͕͜͜خ͍͠  • Property delegateͷॆ࣮ • Observable͕ศར • ؆୯ʹpub/subύλʔϯ͕ॻ͚Δ

  14. ͕͜͜خ͍͠  • ϑΝΠϧ୯ҐͰؾܰʹಋೖͰ͖Δ • JavaͷίʔυͱڞଘՄೳ

  15. ͕͜͜خ͍͠  ϏδωεαΠυ ΤϯδχΞαΠυ • ϓϩμΫτͷ඼্࣭͕͕Δ • ৽͍͜͠ͱ΍͍ͬͯΔײ ✌ •

    ޿ใʹ͖͘ • ॻ͍ͯͯςϯγϣ ϯ্͕͕Δ㽉㽉
  16. Ҏ্ɺ࣮ࡍʹ΍ͬͯΈͯಘΒΕͨ஌ݟͷҰྫͰ ͨ͠ɻ ݁Ռతʹ͸Α͔͚ͬͨͲɺ ݁Ռ͕Θ͔Βͳ͍ঢ়ଶͰͲ͏αʔϏεΛ υϥΠϒͭͭ͠ಋೖ͔ͨ͠ ʹ͍͓ͭͯ࿩͠͠·͢

  17. )PXUPಋೖ

  18. Α͍࣭ͨͩ͘͘໰ ʮ΋͏શ෦,PUMJOͳΜͰ͔͢ʁʯ

  19. +BWB,PUMJOʹஔ͖׵͑Δʁ • ϦϑΝΫλϦϯά͍ͯ͠ΔؒɺαʔϏεͷά ϩʔε͸ʁ৽نػೳͷ։ൃ͸ʁ • ϏδωεଆΛͲ͏΍ͬͯઆಘ͠·͔͢ʁ

  20. +BWB,PUMJOʹஔ͖׵͑Δʁ • ϦϑΝΫλϦϯά͍ͯ͠ΔؒɺαʔϏεͷά ϩʔε͸ʁ৽نػೳͷ։ൃ͸ʁ • ϏδωεଆΛͲ͏΍ͬͯઆಘ͠·͔͢ʁ • ஔ͖׵͑ɺຊ౰ʹඞཁͰ͔͢ʁ • ΤϯδχΞͷΤΰͰͳ͍Ͱ͔͢ʁ

    • αʔϏεΛάϩʔε͢Δ੹೚͸ΤϯδχΞ ΋ෛ͍ͬͯΔʂ
  21. +BWB,PUMJOʹஔ͖׵͑Δʁ • ஔ͖׵͑Δඞཁ͕͋Δ͔Ͳ͏͔͸έʔεόΠ έʔε • લͷεϥΠυͷ࣭໰ʹશ෦౴͑ΒΕͳ͍ͷͰ ͋Ε͹શ෦ஔ͖׵͑Α͏ͱ͠ͳ͍΄͏͕͍͍ ͱࢥ͍·͢

  22. 3FUUZͷ৔߹

  23. )PXUPಋೖ  • Kotlinʹڵຯ͕͋ΓɺϓϩμΫτʹೖΕ͍͍ͯ ΋ͷ͔ʢ࣮ӡ༻ʹ଱͑͏Δ͔ʣݕূ͍ͨ͠ʂ • ·ͣ͸ۀ຿ͷ10%Ҏ಺Ͱࢼ͠·ͨ͠ • ࣄۀ΁ͷ௚઀తͳΠϯύΫτ͸ͳ͍ͱ͜ΖͰ ࢼݧಋೖ

    • ϦεΫ0Ͱউखʹ΍ͬͯΈ·ͨ͠ • ݁Ռ͍͍ײ͡ʂ
  24. )PXUPಋೖ  • ϓϩμΫτʹ෦෼తʹࢼݧಋೖ • ৽نϞδϡʔϧʹͬͦ͜Γಋೖ • ৽نϞδϡʔϧ͸ϑϧKotlin • Կ͔͋ͬͯ΋طଘϞδϡʔϧʹӨڹͳ͍ܗ

    ͰϦεΫճආ • Kotlin࠷ߴ͔Αʙʙʙʂʂʂʂ
  25. )PXUPಋೖ  • ͍ͭʹϓϩμΫτຊମʹಋೖ • ৽نϑΝΠϧ΍ͨ͘͞Μख௚͢͠Δ෦෼͸ KotlinͰߦ͘ํ਑ • Java or

    KotlinͲͪΒ͔͸֤ΤϯδχΞʹҕͶ ΒΕ͍ͯ·͢ • ͡Θ͡ΘKotlinΛ૿΍ͯ͘͠࡞ઓ
  26. )PXUPಋೖ  • ͓ͦΒ͘ࠓޙ΋Javaͷίʔυ͸࢒Γଓ͚·͢ • ϝϯς͠ͳͯ͘΋ಈ͘ίʔυ͸͍͍ίʔυʂ • ͦ͜ͷஔ͖׵͑ΛؤுΔ͘Β͍ͳΒϢʔβ͞ Μʹ৽͍͠Ձ஋Λಧ͚Δ͜ͱʹ࣌ؒΛ࢖͍· ͠ΐ͏

    • Android Framework͸JavaͳͷͰJavaͱͷ Interface͔Β͸ಀ͛ΒΕ·ͤΜ
  27. ·ͱΊ

  28. ·ͱΊ • Kotlinಋೖͯ֓͠Ͷ޾ͤͰ͢ • ΤϯδχΞ͸ॻ͍ͯͯςϯγϣϯ্͕Δʂ • ඼࣭΋্͕Γ޿ใʹ΋ޮ͘ͷͰϏδωεత ʹ΋Happy • طଘͷϓϩδΣΫτͷ৔߹͸ɺ͡Θ͡Θಋೖ

    ͢Δͷ͕ΦεεϝͰ͢
  29. ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ