Slide 1

Slide 1 text

ಠࣗઃܭͷ AndroidΞϓϦΛ ઃܭ͝ͱKotlinizeͨ͠࿩ ϦΫϧʔτϚʔέςΟϯάύʔτφʔζ อࡔॣ 4IVO)PTBLB 1

Slide 2

Slide 2 text

͸͡Ίʹ w อࡔॣ ΄͔͞͠ΎΜ  w ৽ଔ̍೥໨ w (JU)VC 2JJUBͳͲ3FZVSOJCMF w ΩοζϦʔͱ͍͏ϓϩμΫτͷ10݉ΤϯδχΞ
 ʢอҭԂ޲͚ͷαʔϏεʣ 2

Slide 3

Slide 3 text

ࠓ೔ͷ಺༰ w ೖ͔ࣾͯ͠Βͪΐͪ͘ΐ͘΍͖ͬͯͨɺ
 ࣗϓϩμΫτͷ,PUMJOԽΛҾ͖ܧ͍ͩ࿩ w ,PUMJOಛ༗ͷ࿩ΑΓ΋ɺॻ͖׵͑ͷ࿩͕ଟΊ w ॻ͖׵͑Ұؾʹ΍ͬͯ΍ͬͨʂͰ͸ͳ͘ɺ
 ௕ظεύϯͰɺͲ͏Ҿ͖ܧ͍͔ͩͷ࿩ 3

Slide 4

Slide 4 text

ܦҢ w ࠷ॳ͸ɺ֎஫Ͱ։ൃͨ͠ϓϩμΫτ w ಺੡ʹר͖औͬͯɺҰ෦,PUMJOʹϦϥΠτ͠ ͔ͯΒͷϦϦʔε w ಺੡Խͯ͠໿೥ɺࠓ೥ͷ݄ʹ"OESPJEͷ୲ ౰ऀ͕๻ʹ 4

Slide 5

Slide 5 text

ݱঢ় w ,PUMJO཰ɺ͘Β͍ɻ w ओཁͳը໘͸େମϦϥΠτ͕ऴΘͬͯɺ࢒Γ ͸ઃܭը໘ͳͲ͕ଟ͍ɻ 5

Slide 6

Slide 6 text

ॻ͖׵͑લ w +BWBͷίʔυ w ಠࣗઃܭɾൿ఻ͷλϨతͳίʔυ͕୔ࢁ͋Δ 6

Slide 7

Slide 7 text

ॻ͖׵͑ޙ w ,PUMJOͷίʔυ w .71 %%%Ͱ%BUB#JOEJOHͳͲ౰࣌ͷτϨϯυ 7

Slide 8

Slide 8 text

ϦϥΠτͷਐΊํ w ը໘͝ͱʹϦϥΠτ
 ɾϝϦοτɿ࡞ۀ୯Ґ͕෼͚΍͍͢ɾ෼୲͠΍͍͢
 ɾσϝϦοτɿϥΠϒϥϦΛണ͕ͨ͠Γ͢Δͷʹ͸ಓ͕௕͍ w ૚͝ͱʹϦϥΠτ
 ɾϝϦοτɿઃܭΛม͑΍͍͢
 ɾσϝϦοτɿมߋ͕େ͖͘ͳΓ͕ͪɺҰ෦ϦϦʔε͕͠ʹ͍͘ w ϦϑΝΫλϦϯάϦϥΠτ
 ɾϝϦοτɿεςοϓΛ౿ΜͰ៉ྷʹͰ͖Δ
 ɾσϝϦοτɿ޻਺͕͔͞Ή 8

Slide 9

Slide 9 text

ϦϥΠτͷਐΊํ 9 w ̋ը໘͝ͱʹϦϥΠτ w ૚͝ͱʹϦϥΠτ w ϦϑΝΫλϦϯάϦϥΠτ w ཧ༝ɿ w ҰؾʹϦϥΠτ͢ΔͷͰ͸ͳ͘ɺ௕ظతͳϦϥΠτΛ૝ఆͨ͠ w طଘίʔυʹςετ͕ͳ͘ɺͦ΋ͦ΋ϦϑΝΫλϦϯάʹ΋ة ݥ͕͋ͬͨ

Slide 10

Slide 10 text

ϦϥΠτͷํ਑ w ࡞Γͷѱ͍ͱ͜Ζ͔ΒϦϥΠτ w ϦϥΠτޙ͸ඞͣςετΛॻ͘ w ϦϥΠτ͕ऴΘΔ·Ͱ͸ɺϦϥΠτͨ͠ଆ΁ͷϥΠϒϥϦೖΕସ ͑͸ͻ͔͑Δ w 6*ܥ͸ೖΕସ͑ͨΓͯ͠Δ w ϦιʔεͳͲ΋طଘͷ΋ͷΛ࢖༻͠ͳ͍Ͱɺ৽͍͠΋ͷΛෳ੡ͳͲ ͯ͠࢖༻͢Δ w OFX@ͳͲͷQSFpYΛ෇͚ͯΔ 10

Slide 11

Slide 11 text

ࣦഊஊͱڭ܇ w Ϣʔβʔʹ͸ɺKBWB͔LPUMJOԽ͸େͯؔ͠܎ͳ͍
 ɾۀ຿౎߹ͳͲͰɺ͕࣌ؒࠩ͠ഭͬͯΔ࣌ʹ΍Βͳ͍ w ࢓༷ͷมߋͱϦϥΠτ͸ಉ࣌ʹ΍Βͳ͍
 ɾϦϥΠτ͔ͯ͠Βվम͢Δ͔ɺมߋ͔ͯ͠ΒϦϥΠτ w ةͳ͍ͳΒແཧ΍Γ,PUMJOͰॻ͔ͳ͍
 ɾϏοτ഑ྻͷॲཧͳͲ,PUMJOͰஔ͖׵͑ʹ͍͘΋ͷ΋ ͋Δ
 ɾҰ୴+BWBͷΫϥεͷ··ݺͼग़͢ɺͨͩ͠,PUMJOϑΥ ϧμʹೖΕ͓ͯ͘ 11

Slide 12

Slide 12 text

ࠔΔ͜ͱ w ͕࣌ؒܦͭʹͭΕɺ,PUMJOԽͨ͠΋ͷͷதͰ ΋ϦϥΠτ͍ͨ͠΋ͷ͕ग़ͯ͘Δ w ϦϥΠτ͢Δͱ13ͷίʔυࠩ෼͕ଟ͘ͳͬͯɺ ϨϏϡʔͮ͠Β͍ 12

Slide 13

Slide 13 text

νοϓε w Ϧιʔεͷ࢖༻਺Χ΢ϯτɿ
 "OESPJE3FTPVSDF6TBHF$PVOU
 IUUQTHJUIVCDPNOJPSHBJ"OESPJE3FTPVSDF6TBHF$PVOU  w ফ͍ͨ͠Ϋϥεͷ্Ͱɺ
 $PNNBOE ΫϦοΫ
 ͰґଘϑΝΠϧͷҰཡΛ֬ೝ͢Δ 13

Slide 14

Slide 14 text

,PUMJOԽͯ͠ ม͑ͨॻ͖ํ 14

Slide 15

Slide 15 text

"DUJWJUZͳͲͷϏϧμʔύλʔϯ 15 ը໘͝ͱͷextensionΛ࡞ͬͨɻ ը໘໊.ktͰτοϓϨϕϧͷextensionΛॻ͍͍ͯΔ // file privateͳͷͰଞ͔Βࢀর͞ΕΔ͜ͱ͸ͳ͍ private object Keys { const val hoge = "Sample.hoge" } fun SampleActivity.Companion.createIntent(context: Context, hoge: String): Intent = Intent(context, SampleActivity::class.java).apply { put(Keys.hoge, hoge) } fun SampleFragment.Companion.newInstance(hoge: String): SampleFragment = SampleFragment().apply { arguments = Bundle().apply { putString(Keys.hoge, hoge) } } fun SampleActivity.createFragment(): SampleFragment = SampleFragment.newInstance(intent.getStringExtra(Keys.hoge)) fun SampleFragment.parseHoge(): String = arguments.getString(Keys.hoge) ※SampleActivityͱSampleFragmentʹ͸ɺͦΕͧΕ companion object;ͱ͍͏ܗͷهࡌ͕ඞཁɻ

Slide 16

Slide 16 text

ίʔϧόοΫ 16

Slide 17

Slide 17 text

͓ΘΓʹ w ϦϥΠτ͸ແ஡ͤͣɺ௕ظઓΛݟਾ͑ͯ΍Δ w ݴޠ؀ڥ͕มΘΔͷͰɺઈରతͳํ਑͸ཱͯ ͳ͍ w ϦϥΠτ͕ϢʔβʔՁ஋ΛੜΉͱա৴͠ͳ͍ 17