Slide 1

Slide 1 text

KotlinʹΑΔ AndroidΞϓϦ։ൃ ࠷৽৘ใ 2018.04.24 APP DOJO @satorufujiwara

Slide 2

Slide 2 text

About me Satoru Fujiwara (@satorufujiwara) Android Engineer @CyberAgent ,Inc Organizer of Shibuya.apk ༁ॻ : Kotlin ΠϯɾΞΫγϣϯ ஶॻ : Android ΞϓϦઃܭύλʔϯೖ໳

Slide 3

Slide 3 text

ࠓ೔࿩͢͜ͱ • Kotlinͱ͸ (2017೥8݄29೔ͷAPP DOJOͷ෮श) • KotlinͰͷAndroidΞϓϦ։ൃ࠷৽৘ใ • ࠓ͔ΒKotlinΛֶͿͷʹ͓͢͢ΊͷϦιʔε

Slide 4

Slide 4 text

ࠓ೔࿩͢͜ͱ • Kotlinͱ͸ (2017೥8݄29೔ͷAPP DOJOͷ෮श) • KotlinͰͷAndroidΞϓϦ։ൃ࠷৽৘ใ • ࠓ͔ΒKotlinΛֶͿͷʹ͓͢͢ΊͷϦιʔε

Slide 5

Slide 5 text

Kotlinͷߟ͑ํ • ࣮༻ओٛ - Javaͷߟ͑ํ͕ͦͷ··࢖͑Δɻ৽͍͠ػೳ͸طଘͷ΋ͷ Λར༻ɻֶश͕༰қɻ • ؆ܿ - ಡΈ΍͢͞ΛॏࢹɻϘΠϥʔϓϨʔτ͸ۃྗݮΒ͢ɻ • ҆શ - ੩తܕ෇͚ɻNull҆શɻεϚʔτΩϟετɻ • ૬ޓӡ༻ੑ - JavaͱKotlinͷؒ͸ࣗ༝ʹߦ͖དྷɻϥΠϒϥϦ΋طଘͷ ΋ͷΛͦͷ··ར༻Ͱ͖Δɻ

Slide 6

Slide 6 text

Kotlinͷ஫ҙ఺ • Javaͷ୅ସݴޠͰ͋Γ࣮༻ओٛͰ͋ΔͷͰɺࣗ༝౓͕ߴ͍ • ؆ܿʹॻ͖͗͢ΔͱಡΈʹ͘͘ͳΔ͜ͱ΋ • ༷ʑͳศརͳݴޠػೳ͕͞Βʹࣗ༝౓ΛߴΊΔ • ·ͣ͸ Nullڐ༰ܕ/Nullඇڐ༰ܕΛ۠ผ͢Δ ͜ͱʹؾΛ͚ͭΔ

Slide 7

Slide 7 text

speakerdeck.com/satorufujiwara/how-to-start-kotlin-app-dojo

Slide 8

Slide 8 text

ࠓ೔࿩͢͜ͱ • Kotlinͱ͸ (2017೥8݄29೔ͷAPP DOJOͷ෮श) • KotlinͰͷAndroidΞϓϦ։ൃ࠷৽৘ใ • ࠓ͔ΒKotlinΛֶͿͷʹ͓͢͢ΊͷϦιʔε

Slide 9

Slide 9 text

KotlinͰͷAndroidΞϓϦ։ൃ࠷৽৘ใ • Android Studio 3.0 ਖ਼ࣜϦϦʔε (2017/10/25) • KotlinConf & Kotlin Android Guide (2017/11/2) • Kotlin 1.2 ϦϦʔε (2017/11/28) • Android KTX (2018/2/5) • Support Library΁ͷ Nullable / NonNull Ξϊςʔγϣϯͷ௥Ճ

Slide 10

Slide 10 text

Android Studio 3.0 ϦϦʔε • KotlinͷϓϥάΠϯ͕σϑΥϧτͰೖͬͨ • ϓϩδΣΫτ։࢝࣌ʹKotlinͰ։ൃΛ࢝ΊΔ͜ͱ͕Մೳ

Slide 11

Slide 11 text

Convert Java to Kotlin • JavaͷϑΝΠϧΛબ୒ͯ͠ʮCodeʯϝχϡʔ͔Β ʮConvert Java File to Kotlin FileʯΛબͿ͜ͱͰίʔυ͕ Kotlinʹม׵͞ΕΔ • JavaͷίʔυΛKotlinͷϑΝΠϧ(.kt)΁ίϐϖ͢Δ͜ͱͰ ΋Kotlinʹม׵͞ΕΔ • Kotlinͷֶशʹศར͕ͩɺྑ͍ίʔυͱ͸ݶΒͳ͍ͷͰ ஫ҙ͕ඞཁ

Slide 12

Slide 12 text

Kotlin Conf • KotlinΛςʔϚʹͨ͠ॳͷΧϯϑΝϨϯε • 2017೥11݄2೔ɺ3೔ʹαϯϑϥϯγείͰ։࠵͞Εͨ • ओ࠵͸JetBrains • ࠓ೥͸10݄3೔-5೔ ΦϥϯμͷΞϜεςϧμϜͰ։࠵

Slide 13

Slide 13 text

13

Slide 14

Slide 14 text

Kotlin Conf Keynote • Kotlin 1.2 RC • Kotlin/Native iOS αϙʔτ • Android StudioͰͷKotlinར༻཰͕17ˋʹ • Support LibraryʹKotlinΞϊςʔγϣϯ • Android Kotlin Guides

Slide 15

Slide 15 text

Android Kotlin Guides https://android.github.io/kotlin-guides/

Slide 16

Slide 16 text

Android Kotlin Guides • AndroidΛKotlinͰॻ͘ࡍͷࢦ਑ • ਵ࣌Ξοϓσʔτ͞Ε͍ͯΔ • Style Guide (Kotlinίʔυͷॻ͖ํ) • Interop Guide (KotlinͱJavaͷ૬ޓӡ༻ͷͨΊͷϧʔϧ)

Slide 17

Slide 17 text

Style Guide ͷҰྫ

Slide 18

Slide 18 text

Kotlin 1.2 • ϚϧνϓϥοτϑΥʔϜϓϩδΣΫτ • ίϯύΠϧύϑΥʔϚϯεͷ޲্ (໿25ˋ) • ΑΓৄ͘͠͸JetBrainsͷϒϩάʹͯ • https://blog.jetbrains.com/jp/2017/11/29/828 (೔ຊޠ)

Slide 19

Slide 19 text

Android KTX • AndroidͰ࢖͑ΔKotlinͷ֦ுؔ਺܈ • ϓϨϏϡʔ൛ ͱͯ͠ϦϦʔε (࠷৽͸ 0.3) • Support Library ରԠ൛͸ࠓޙͷϦϦʔε

Slide 20

Slide 20 text

Android KTXͷྫ ͦͷ1 Javaͷstaticͳؔ਺ݺͼग़͕͠ม਺ͷޙΖʹҠಈ ྲྀΕΔΑ͏ʹίʔυ͕ॻ͚Δ

Slide 21

Slide 21 text

Android KTXͷྫ ͦͷ2 ViewͷVISIBLE/GONE౳͕BooleanܕͰදݱͰ͖ɺ ௚ײతʹཧղ͠΍͍͢

Slide 22

Slide 22 text

Support Library΁ͷ Nullable / NonNull Ξϊςʔγϣϯͷ௥Ճ • android.support.annotation.NonNull ͓Αͼ Nullable Λ Kotlin ͷ ίϯύΠϥ͸Nullඇڐ༰ܕɺNullڐ༰ܕͱͯ͠ೝࣝ͢Δ

Slide 23

Slide 23 text

ࠓ೔࿩͢͜ͱ • Kotlinͱ͸ (2017೥8݄29೔ͷAPP DOJOͷ෮श) • KotlinͰͷAndroidΞϓϦ։ൃ࠷৽৘ใ • ࠓ͔ΒKotlinΛֶͿͷʹ͓͢͢ΊͷϦιʔε

Slide 24

Slide 24 text

Kotlin and Android https://developer.android.com/kotlin/index.html

Slide 25

Slide 25 text

Kotlion and Android • ਵ࣌ߋ৽͞Ε͍ͯΔ • KotlinʹΑΔAndroidϓϩδΣΫτͷ࢝Ίํ • Kotlin Samples ʹଟ͘ͷKotlinͰॻ͔Εͨαϯϓϧ͕͋Δ

Slide 26

Slide 26 text

DroidKaigi 2018 ΦϑΟγϟϧΞϓϦ https://github.com/DroidKaigi/conference-app-2018

Slide 27

Slide 27 text

DroidKaigi 2018 ΦϑΟγϟϧΞϓϦ • ϑϧKotlin • ϝΠϯ։ൃऀ͸ takahirom ͞Μ (ࠓ೔ͷϝϯλʔʂ) • Android։ൃʹ͓͚Δϊ΢ϋ΢͕͗Ύͬͱ٧·͍ͬͯΔ • ·ͣ͸ɺ֦ுؔ਺ͷ࢖ΘΕํɺఆٛͷ࢓ํΛݟͯ΋ྑͦ͞͏

Slide 28

Slide 28 text

֦ுؔ਺ͷྫ

Slide 29

Slide 29 text

Kotlin ΠϯɾΞΫγϣϯ 2017೥10݄31೔ൃച

Slide 30

Slide 30 text

Kotlin ΠϯɾΞΫγϣϯ • Kotlinͷ։ൃνʔϜʹΑͬͯॻ͔Εͨຊ • Kotlinͷݴޠ࢓༷͕ͳͥͦ͏ͳͬͨͷ͔ʁͱ͍͏ίϯηϓτ͔ Βɺجຊతͳݴޠػೳɺͦͯ͠ൃలػೳ·ͰΧόʔ • ೔ຊޠ൛΁ͷ຋༁͸ࢲ΋ؚΊͨݱ໾ͷAndroidΤϯδχΞ͕୲౰

Slide 31

Slide 31 text

Kotlin ΠϯɾΞΫγϣϯͷಡΈํ • Javaͷ஌ࣝΛલఏʹ͍ͯ͠Δ • ͱΓ͋͑ͣ Kotlin ͰAndroidΛॻ͖࢝ΊɺҰ௨Γจ๏Λཧղͨ͠ ޙɺୈҰ෦ʮKotlinΛ஌ΔʯΛಡΉ • ୈೋ෦͸গ͠Kotlinʹ׳Ε͔ͯΒ

Slide 32

Slide 32 text

Qiita • JavaϓϩάϥϚͷͨΊͷKotlinೖ໳ • https://qiita.com/koher/items/bcc58c01c6ff2ece658f • ʲAndroidʳKotlinಋೖ͢ΔͨΊʹ΍ͬͨ͜ͱʢઆಘฤʣ • https://qiita.com/rkowase/items/a2f26c64c60d04d51c94 • ʲAndroidʳKotlinಋೖ͢ΔͨΊʹ΍ͬͨ͜ͱʢֶशฤʣ • https://qiita.com/rkowase/items/14451421ee96f0f8a7f5 • KotlinͷܕΛ஌Δ ~લฤ~ • https://qiita.com/AAkira/items/16ae2e9c0f6073e0e983 • KotlinͷܕΛ஌Δ ~ޙฤ~ ϓϥοτϑΥʔϜܕͱCollections • https://qiita.com/satorufujiwara/items/1399433529f1defa5b12 • Kotlin είʔϓؔ਺ ༻్·ͱΊ • https://qiita.com/ngsw_taro/items/d29e3080d9fc8a38691e

Slide 33

Slide 33 text

·ͱΊ • Kotlinͷ࠷৽͸1.2 ͰϚϧνϓϥοτϑΥʔϜରԠ • Kotlin Android Guide / Android KTX / Support Library • ࠷৽৘ใ͸ KotlinConf (΍Google I/O) ΛνΣοΫ • ެࣜυΩϡϝϯτ͕๛෋ / DroidKaigiΞϓϦͳͲΛࢀߟʹ • ΑΓਂ͘஌Δʹ͸ Kotlin ΠϯɾΞΫγϣϯ ͳͲͰ

Slide 34

Slide 34 text

Thank you! Have a Nice Kotlin!