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

ScalaとKotlinを業務で使ってみた

Avatar for Kinoko Kinoko
September 11, 2017

 ScalaとKotlinを業務で使ってみた

2017/9/9(土) Scala関西Summit 2017での登壇資料です。

Avatar for Kinoko

Kinoko

September 11, 2017
Tweet

More Decks by Kinoko

Other Decks in Technology

Transcript

  1. Kotlinͱ͸ • JetBrains͕ࣾ։ൃͨ͠JVMݴޠ • ScalaͷӨڹΛ৭ೱ͘ड͚͍ͯΔ • Google I/O 2017 ʹͯAndroidͷެࣜ։ൃݴޠͱͯ͠

    αϙʔτ͞ΕΔ͜ͱ͕ൃද͞Εͨ • ΋ͱ΋ͱAndroid޲͚Λڧ͘ҙࣝͨ͠࢓༷Ͱ͋ ΓɺެࣜԽલ͔Β࠾༻ࣄྫ͕૿Ճ܏޲ʹ͋ͬͨ
  2. ྨࣅػೳͷྫ (͘͝Ұ෦) • var/val • ܕਪ࿦ • ηϛίϩϯෆཁ • ϓϦϛςΟϒܕ͕ଘࡏ͠ͳ͍

    • case class ͱ data class • Ϋϥε΍ϝιου • ΦϒδΣΫτ΍ίϯύχΦϯ ΦϒδΣΫτ΋͋Δ • ϥϜμࣜ • ߴ֊ؔ਺ • ݕࠪྫ֎͕ͳ͍ etc.
  3. Android։ൃ • Kotlin͸Android։ൃͰར༻͠΍͍͢Α͏ʹ
 ҙࣝͯ͠࡞ΒΕ͍ͯΔ • JDK6ͱͷޓ׵ੑ͕อূ͞Ε͍ͯΔ • ϥϯλΠϜͷαΠζ͕খ͍͞ • ϝιου਺͕গͳ͍

    • Scala͸ଟػೳͰ͋ΔͨΊɺαΠζ͕େ͖͍ • ։ൃ؀ڥͰ͋ΔAndroidStudio͕JetBrainsͷIntelliJ IDEAΛForkͯ͠։ൃ͞ Ε͍ͯΔͱ͍͏໘΋େ͖͔ͬͨͱࢥΘΕΔ
  4. ͦͷଞҟͳΔػೳͷྫ • OptionͱNull҆શ • for • Scalaʹ͋ͬͯKotlinʹͳ͍΋ͷ • Implicit •

    ύλʔϯϚον • Kotlinʹ͋ͬͯScalaʹͳ͍΋ͷ • είʔϓؔ਺ • ֦ுؔ਺
  5. ࡢ೥डୗͨ͠Ҋ݅ • ։ൃձࣾTࣾ͞Μ͔ΒԼهͷҊ݅Λड஫ • AndroidΞϓϦ։ൃ (2016/04) ظؒ 3ϲ݄ • API͔Βऔಘͨ͠஋Λάϥϑදࣔ͢ΔΞϓϦ

    • WebΞϓϦ։ൃ (2016/10) ظؒ4ϲ݄ • Air̋NBΈ͍ͨͳΞϓϦ • AndroidͷํΛKotlinͰɺWebͷํΛPlay2/ScalaͰ։ൃ͠ɺແࣄೲ඼
  6. ࣗ෼ͷײ૝ • Scala΋Kotlin΋ͲͪΒ΋޷͖ • ؆ܿͳίʔυΛॻ͖͍ͨͱ͍͏ཁ๬͸ͲͪΒ΋ຬͨͯ͘͠ΕΔ • ͨͩɺforࣜ΍ύλʔϯϚονͳͲScalaͷํ͕ศརͩͳʔͱײ͡Δ͜ͱ͸͋Δ • AndroidҊ݅͸ެࣜԽ͞ΕͨKotlinΛࠓޙ΋ੵۃతʹ࢖͍͖͍ͬͯͨ •

    ͲͪΒͰ΋͍͍৔߹͸׳Ε͍ͯΔScalaΛબ୒͍͕ͨ͠ɺϥΠϒϥϦ΍ϑϨʔϜϫʔΫࣄ৘Λߟྀ ͯ͠બ୒͍͖͍ͯͨ͠ • WebͷํͰ΋KotlinͰ͍͍ϑϨʔϜϫʔΫ͕Ͱͯ͘Ε͹ɺScalaͰ͸ͳ͘KotlinΛબ୒͢Δ Α͏ʹͳΔ͔΋͠Εͳ͍ • Scala͸͢ͰʹScala੡ͷϥΠϒϥϦ΍ϑϨʔϜϫʔΫ͕ൃల͍ͯ͠Δ͕ɺKotlin͸·ͩ· ͩ͜Ε͔Βͱ͍͏ҹ৅
  7. ະܦݧऀ͕νʔϜʹ͍Δ৔߹ • ԼهͷΑ͏ͳํ๏ͰֶशͷαϙʔτΛߦ͏ • ίʔυϨϏϡʔ • ϖΞϓϩ • ֶशࢿྉͷ࡞੒ •

    ద੾ͳॻ੶΍ղઆWebαΠτ΁ͷ༠ಋ • ͦͷࡍʮίοϓຊಡΊʯΈ͍ͨͳେࡶ೺ͳ༠ಋͰ͸ͳ͘ɺௐ΂Δͱ ͖ͷద੾ͳΩʔϫʔυΛఏࣔ͢Δ • ʮଞʹݴޠܦݧ͕͋ΔΜͩͬͨΒͳΜͱ͔ͳΔͰ͠ΐʯͱαϙʔτ͠ͳ͍ͷ͸͓͢ ͢ΊͰ͖ͳ͍