Slide 1

Slide 1 text

SwiftΤϯδχΞʹ঺հ͢Δ KotlinͷܕͱJavaͱͷޓ׵ੑ Swift/Kotlin߹ಉษڧձ #2

Slide 2

Slide 2 text

ࣗݾ঺հ

Slide 3

Slide 3 text

ΘΓ͔ΜΛݱۚͰਫ਼ࢉ͠ͳͯ͘΋ޙ͔ΒεϚϗ্Ͱ੥ٻͨ͠Γग़དྷΔ ΞϓϦͩΑʂΘΓ͔Μ(ۉ౳ׂ)͡Όͳͯ͘΋࢖͑ΔΑʂϥϯνͱ͔ʂ Android൛͸΄΅KotlinͰ࣮૷͞Ε͍ͯΔΑʂ

Slide 4

Slide 4 text

Kotlinʹ͍͓ͭͯ͞Β͍

Slide 5

Slide 5 text

Swiftͱಉ͘͡Nullڐ༰ܕͱ ඇڐ༰ܕ͕͋Δ • ѻ͍ํ͸͍͍ͩͨಉ͡ var str1: String = “hallo” str1 = null // ίϯύΠϧΤϥʔ var str2: String? = “konichiwa” str2 = null str2.length // ίϯύΠϧΤϥʔ str2?.length

Slide 6

Slide 6 text

Swiftͱಉ͘͡جຊతʹ Πϛϡʔλϒϧͳ஋Λ࢖༻͢Δ • ѻ͍ํ͸͍͍ͩͨಉ͡ var str1 = “konichiwa” str1 = “hallo” val str2 = “konichiwa” str2 = “hallo” // ίϯύΠϧΤϥʔ

Slide 7

Slide 7 text

ϓϦϛςΟϒܕͱࢀরܕ (ΦϒδΣΫτ)Λ۠ผ͠ͳ͍ • Javaʹ͸ϓϦϛςΟϒܕͱΦϒδΣΫτͱͯ͠ѻ ͏ͨΊͷϥούʔΫϥε͕͕͋ͬͨɺKotlinͰ͸۠ ผ͠ͳ͍ • int(Integer) → Int • long(Long) → Long • boolean(Boolean) → Boolean

Slide 8

Slide 8 text

ίϨΫγϣϯ΋ෆมͱՄมʹ ෼͔Ε͍ͯΔ • σϑΥϧτͷίϨΫγϣϯ͸ෆม • ૢ࡞͍ͨ͠৔߹͸MutableListͳͲΛ࢖͏ val list = listOf(“a”, “b”, “c”) list.add(“d”) // ίϯύΠϧΤϥʔʂ(add()΍remove()ϝιου͸࢖͑ͳ͍) val mList = mutableListOf(“a”, “b”, “c”) mList.add(“d”)

Slide 9

Slide 9 text

KotlinͷίϨΫγϣϯ֓ཁ $PMMFDUJPO .VUBCMF$PMMFDUJPO -JTU .VUBCMF-JTU

Slide 10

Slide 10 text

ͱ͜ΖͰɺKotlin͸Javaͱ ׬શʹޓ׵ੑ͕͋Γ·͢

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Java͔ΒݟͨNullඇڐ༰ܕ • KotlinͷNullඇڐ༰ܕ͸JavaͰ͸@NotNullΞ ϊςʔγϣϯʹͳΔ fun getStr(str: String): String { return str } ↓ @NotNull public String getStr(@NotNull String str) { Intrinsics.checkParameterIsNotNull(str, "str"); return str; }

Slide 13

Slide 13 text

Kotlin͔ΒݟͨJavaม਺ • JavaͰఆٛ͞Εͨ஋ΛKotlin͔Βࢀর͢Δͱϓ ϥοτϑΥʔϜܕͱ͍͏ಛघͳܕʹͳΔ public String getStr(String str) { return str; } ↓ fun getStr(str: String!): String! { return str }

Slide 14

Slide 14 text

ϓϥοτϑΥʔϜܕʁ • String!ͷΑ͏ʹදݱ͞ΕΔܕ • Nullڐ༰ܕ͔ඇڐ༰ܕ͔ෆ໌ͳঢ়ଶ • Ξϯϥοϓ͠ͳͯ͘΋ͦͷ··ࢀরͰ͖Δ • ࣮ͨͩ͠ߦ࣌ʹNullPointerException͕ൃੜ͠͏Δ • JavaଆͰ@Nullable΍@NotNull͕෇͍͍ͯΕ͹ਖ਼͍͠ܕʹม׵͞ΕΔ • ͪͳΈʹintͳͲͷϓϦϛςΟϒܕ͸nullʹͳΓ͑ͳ͍ͷͰৗʹඇڐ༰ ܕͱͯ͠ѻ͑Δ

Slide 15

Slide 15 text

ͳͥϓϥοτϑΥʔϜܕʁ • ΋ͱ΋ͱ͸JavaͰఆٛ͞Εͨ஋͸͢΂ͯNullableܕ ͱͯ͠ѻ͏Ҋ΋͋ͬͨ • ͔ͦ͠͠ΕͰ͸JavaͷϥΠϒϥϦΛࢀরͨ͠৔߹ͳ Ͳʹίʔυ͕?ͩΒ͚ʹͳͬͯ͠·͍ݱ࣮తͰ͸ͳ͍ • ݱ࣮తͳརศੑΛॏࢹ͠ɺϓϥοτϑΥʔϜܕΛɹ ఆٛͨ͠

Slide 16

Slide 16 text

Java͔ΒݟͨKotlinίϨΫγϣϯ • KotlinͷList΍MutableList͸Java͔Β͸ java.util.Listʹݟ͑Δ fun getList(list: List): List { return list } ↓ @NotNull public List getList(@NotNull List list) { Intrinsics.checkParameterIsNotNull(list, "list"); return list; }

Slide 17

Slide 17 text

Java͔ΒݟͨKotlinίϨΫγϣϯ • JavaͷίϨΫγϣϯͱKotlinͷίϨΫγϣϯ͸ ޓ׵ੑ͕͋Γಛʹҙࣝ͢Δ͜ͱͳ͘ѻ͏ࣄ͕ Ͱ͖Δ • ͨͩ͠KotlinͰ͸ෆมͰએݴ͞Ε͍ͯΔίϨΫ γϣϯͰ΋Java͔Β͸มߋͰ͖ͯ͠·͏

Slide 18

Slide 18 text

Kotlin͔ΒݟͨJavaίϨΫγϣϯ • JavaͷList͸Kotlin͔Β͸MutableͳListͱͯ͠ ͦͷ··ѻ͑Δ • ListΛฦ͢JavaͷϝιουΛoverride͢Δ৔߹ ͳͲ͸MutableͳListͱͯ͠΋Immutableͳ Listͱͯ͠΋ఆٛग़དྷΔ

Slide 19

Slide 19 text

KotlinͷίϨΫγϣϯ֓ཁ $PMMFDUJPO .VUBCMF$PMMFDUJPO -JTU .VUBCMF-JTU "SSBZ-JTU

Slide 20

Slide 20 text

Java͔ΒݟͨIntܕ • جຊతʹ͸intʹม׵͞ΕΔ • ͨͩ͠ɺInt?ܕ΍Arrayܕ(഑ྻ)ͳͲ͸Φ ϒδΣΫτͱͯ͠ѻ͏ඞཁ͕͋ΔͨΊɺ Integerܕͱͯ͠ѻΘΕΔ

Slide 21

Slide 21 text

Kotlin͔ΒݟͨϦςϥϧ • ٯʹKotlin͔ΒݟͨJavaͷϦςϥϧ͸IntͳͲ ͷKotlinͷΦϒδΣΫτͱͯ͠ѻΘΕΔ

Slide 22

Slide 22 text

·ͱΊ • Kotlin͸JavaͷΫϥεͱҧ࿨ײͳ͘ڞଘͰ͖Δ ࣄΛڧ͘ҙࣝͨ͠ݴޠ࢓༷ʹͳ͍ͬͯΔ • ݱ࣮తͳ։ൃݱ৔ͰͷརศੑΛॏࢹͨ͠ࣄ͕ Kotlin͕ਓؾݴޠʹͳͬͨཧ༝ͷҰ͔ͭ΋͠Ε ͳ͍

Slide 23

Slide 23 text

Kotlinͷ࢓༷Λ΋ͬͱ஌Γͨ͘ͳͬ ͨΒʮKotlin in Actionʯ͕Φεεϝ ࠓճ࿩ͨ͠Α͏ͳ಺༰͕ͱͯ΋෼͔Γ΍͘͢ղ આ͞Ε͍ͯ·͢ʂ