Slide 1

Slide 1 text

͔Θ͍͍খௗΛғ͏
 ͓ͬ͞Μୡͷ࿩ Mercari, Inc

Slide 2

Slide 2 text

About me Jun Sugai @calciolife Mercari


Slide 3

Slide 3 text

Agenda • Welcome Kotlin • Kotlinizing • using Kotlin

Slide 4

Slide 4 text

Welcome

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Ͳ͏͍͏ܦҢͰ? Welcome Kotlin/Kotlin ಋೖ

Slide 7

Slide 7 text

ָͦ͠͏ͳงғؾ͋ͬͨ Welcome Kotlin/Kotlin ಋೖ

Slide 8

Slide 8 text

•ָͦ͠͏ͳΒ΍ͬͯ͠·͏ •໘നͦ͏ͳ΍ͬͯ͠·͏ •໰୊͕ͳ͚Ε͹ڋ൱͠ͳ͍ Welcome Kotlin/Kotlin ಋೖ

Slide 9

Slide 9 text

Kotlinizing

Slide 10

Slide 10 text

•ςετίʔυ •Өڹͷগͳ͍ͱ͜Ζ͔Β •৽نͷػೳ͔Β •etc... ABC

Slide 11

Slide 11 text

•ςετίʔυ •Өڹͷগͳ͍ͱ͜Ζ͔Β •৽نͷػೳ͔Β •etc... ABC શ෦Ͱ͢ΑͶ

Slide 12

Slide 12 text

ಋೖ͸࢖ͬͯײ૝Λॻ͘·Ͱ΍Δ ݁ՌΛग़ͯͦ͜͠੒Ռ ΠλϦΞ୅දͩͬͯϘίϘί

Slide 13

Slide 13 text

using Kotlin

Slide 14

Slide 14 text

είʔϓؔ਺ Kotlin ͕Α΄Ͳಛघͳ࣮૷/࠷దԽͰ ͳ͍ݶΓ͸είʔϓؔ਺͸ཁ͢Δʹ ϝιουΛ࡞ͬͯॲཧΛҠ͔͑͠Δ ίʔυʹࠩ͠ସ͑Δ


Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

είʔϓؔ਺ ࢖͏΂͖ɻReadable ͬͯେࣄɻ

Slide 17

Slide 17 text

var/val/collection ΞΫηε੍ޚ΍ΧϓηϧԽͳͲ͸ Java ΑΓ΋෼͔Γ΍͍͢൓໘ɺ
 ଟ༻͠΍͢͞͸Ͳ͏ͳΜͩΖ͏?

Slide 18

Slide 18 text

var/val/collection public class SearchListAdapter extends RecyclerView.Adapter { private val List dataSet = new ArrayList<>(); public SearchListAdapter(SearchListener listener) { this.listener = listener; } //... @Override public int getItemCount() { return dataSet.size(); } public void setDataSet(List dataSet) { this.dataSet = dataSet; notifyDataSetChanged(); }

Slide 19

Slide 19 text

var/val/collection public class SearchListAdapter extends RecyclerView.Adapter { private val List dataSet = new ArrayList() //େࣄͳͱ͜Ζ͚ͩ public void setDataSet(List dataSet) { this.dataSet.clear() this.dataSet.addAll(dataSet) notifyDataSetChanged(); } // Kotlin ͩͱ immutable ʹͨ͘͠ͳͬͪΌ͏

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

var/val/collection private val List dataSet = new ArrayList() //େࣄͳͱ͜Ζ͚ͩ public void setDataSet(List dataSet) { this.dataSet.clear() this.dataSet.addAll(dataSet) notifyDataSetChanged(); } •clear() -> addAll() ͷྲྀΕ͸ GC ίετతʹͲ͏ͳͷ? •addAll() Ͱ௥Ճ͢Δࡍͷཁૉ͕ڊେͳ instance ΍ڊେͳ heap ΁ͷࢀরΛอ࣋͢Δߏ଄ͩͱ
 clear() -> adAll() ͚ͩͰ GC ͕૸ΔՄೳੑ͸? •ཁૉͷίϐʔΛ࡞Δ heap ίετ/ϑοτϓϦϯτ͸ॲཧશମͰແࢹͰ͖Δ΄Ͳখ͍͞?

Slide 22

Slide 22 text

var/val έʔεʹԠͯ͡ Readable ͳͷ͸େࣄ͚ͩͲϦιʔε͸༗ݶɻ ύϑΥʔϚϯε͸ "ίʔυͷ඼࣭" Ͱ͸ͳ͘
 "ΞϓϦͷ඼࣭" ͳͷͰಉ͡؍఺Ͱٞ࿦͠ͳ͍ɻ

Slide 23

Slide 23 text

ଞͷࣄྫ͸ɺ·ͨผͷػձʹ! ৘ใަ׵ͱ͔͍ͯͩ͘͠͞