Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JavaからKotlinに さらにKotlinらしく書き換えることで コードがリファクタされて...
Search
Minami Baba
September 09, 2019
Programming
0
7k
JavaからKotlinに さらにKotlinらしく書き換えることで コードがリファクタされていった話
Minami Baba
September 09, 2019
Tweet
Share
More Decks by Minami Baba
See All by Minami Baba
Build Configuration による機能出し分けを型定義の力を借りて実現していく
minami1389
2
980
Visionフレームワークのリアルタイム顔検出を使えば、ウインクするときゃるん♪と音が鳴る二次元美少女になれる!
minami1389
2
12k
Other Decks in Programming
See All in Programming
CSC307 Lecture 15
javiergs
PRO
0
220
AHC061解説
shun_pi
0
320
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
4
370
2026年は Rust 置き換えが流行る! / 20260220-niigata-5min-tech
girigiribauer
0
220
AI時代でも変わらない技術コミュニティの力~10年続く“ゆるい”つながりが生み出す価値
n_takehata
2
640
CopilotKit + AG-UIを学ぶ
nearme_tech
PRO
1
130
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
240
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
3.4k
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
920
AI活用のコスパを最大化する方法
ochtum
0
120
AI主導でFastAPIのWebサービスを作るときに 人間が構造化すべき境界線
okajun35
0
550
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
290
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.3k
Navigating Team Friction
lara
192
16k
Building an army of robots
kneath
306
46k
AI: The stuff that nobody shows you
jnunemaker
PRO
3
350
Navigating Weather and Climate Data
rabernat
0
130
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Code Reviewing Like a Champion
maltzj
528
40k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
For a Future-Friendly Web
brad_frost
183
10k
Everyday Curiosity
cassininazir
0
150
Transcript
© DeNA Co., Ltd. +BWB͔Β,PUMJOʹ ͞Βʹ,PUMJOΒ͘͠ॻ͖͑Δ͜ͱͰ ίʔυ͕ϦϑΝΫλ͞Ε͍ͯͬͨ 1 2019 /
09 / 09 Kotlin Fest Reject Conference 2019 Minami Baba DeNA Co., Ltd.
© DeNA Co., Ltd. ࣗݾհ 2 • അೆ࣮ • DeNA
/ ϔϧεέΞࣄۀ • ʮา͍͓ͯτΫʯ • AndroidΞϓϦ։ൃ • @minami1389
© DeNA Co., Ltd. Google I/O 2019ʹͯᶃ • KotlinAndroid։ൃʹ͓͚Δਪݴޠʹ •
ʮ৽نϓϩδΣΫτͰKotlinͰ։ൃΛ࢝ΊΔ͖ʯ 3 ࢀরɿh5ps://www.youtube.com/watch?v=ldM6QZy9e0s
© DeNA Co., Ltd. Google I/O 2019ʹͯᶄ • ʮطଘϓϩδΣΫτΛKotlinʹҠߦ͢Δ͔Ͳ͏͔ ϓϩδΣΫτͱνʔϜͷঢ়گʹΑͬͯߟ͑Α͏ʯ
4 ࢀরɿh5ps://www.youtube.com/watch?v=ldM6QZy9e0s
© DeNA Co., Ltd. ʮา͍͓ͯτΫʯͰͷ༻ݴޠͷي 5 2016/04 ϦϦʔεɹ 2019/09 ݱࡏ
2018/07 KotlinҠߦ։࢝ Java:Kotlin = 100:0 Java:Kotlin = 50:50
© DeNA Co., Ltd. KotlinҠߦͷ͖͔͚ͬ 6 ʮKotlinҠߦͯ͠ΈΑ͏͔ͳʯ ʮίʔυΛͳΜ͔ϦϑΝΫλ͍ͨ͠ʯ
© DeNA Co., Ltd. ݱࡏͷײ Java͔ΒKotlinॻ͖͑ͯຊʹྑ͔ͬͨʂ ʰͳΜ͔ϦϑΝΫλ͍ͨ͠ʱͱ͍͏ͱ͖ʹ KotlinͷҠߦྑ͍બࢶͷҰͭͰ͢ ͦͷཧ༝ɾɾɾ ᶃ࢝ΊΔϋʔυϧ͕͍
ᶄ͔ͬ͠ΓޮՌΛಘΒΕΔ 7
© DeNA Co., Ltd. ࢝ΊΔϋʔυϧ͕ ͍ͬͯຊʁ ʢ4ͭͷෆ҆ʹ͓͑͠·͢ʣ 8
© DeNA Co., Ltd. ࢝ΊΔϋʔυϧ͕͍ͬͯຊʁᶃ ᶃJavaϑΝΠϧͨ͘͞Μ͋ΔͷͰ ɹશ෦ॻ͖͑ΔͳΜͯͦΜͳ࣌ؒऔΕͳ͍… → JavaͱKotlin͕ڞଘ͍ͯ͠Δঢ়ଶͰΞϓϦಈ͖·͢ 9
ᶄԿඦߦ͋ΔϑΝΠϧΛ1ߦͣͭॻ͖͑Δͷେมͦ͏… → Android Studio ͷࣗಈมػೳΛ͏͜ͱ͕Ͱ͖·͢
© DeNA Co., Ltd. ࢝ΊΔϋʔυϧ͕͍ͬͯຊʁᶄ ᶅ୯७ͳม͚ͩͩͱޮՌͳͦ͞͏ͩ͠·ͣ ɹKotlinΛ͔ͬ͠Γษڧ͠ͳ͍ͱ… → ୯७ͳม͚ͩͰޮՌ͋Γ·͢ʂ
10 ᶆKotlinΒ͍࣮ͬͯ͠ͳ͔ͳ͔ͦ͠͏… → ؆୯ʹಋೖ͍͚ͯ͠Δػೳ͋Γ·͢ʂ
© DeNA Co., Ltd. ୯७ͳมͰ ޮՌ͕ಘΒΕΔͬͯຊʁ ʢ۩ମྫΛ1͚ͭͩ͝հʣ 11
© DeNA Co., Ltd. ୯७ͳมͰಘΒΕΔޮՌ • ϝιουͷఆ͕͖ٛͬ͢Γ͢Δ • “public” /
“void” ͕লུͰ͖Δ • 7จࣈ * 5ϝιου/ * 240 = ؒͰ8,400จࣈઅ!! • ʮϝιουʹΓग़͖ͩ͢ͱ໘ͩͳʯ ͱ͍͏ѱຐͷʹউͭثʹͳΔ 12 Kotlin 11จࣈ Java 18จࣈ -7จࣈ
© DeNA Co., Ltd. ؆୯ʹऔΓೖΕΒΕΔ Kotlinػೳ͕͋Δͬͯຊʁ ʢ۩ମྫ1͚ͭͩ͝հʣ 13
© DeNA Co., Ltd. ؆୯ʹಋೖͰ͖ΔKotlinػೳ • anyϝιου • Ϧετʹ݅Λຬͨ͢ཁૉ͕͋Δ͔Λఆ •
࣮ͷҙਤ͕ඇৗʹ໌֬ʹͳΔ 14 any for in
© DeNA Co., Ltd. 15 ڧྗͳػೳͨ͘͞Μ͋Δ͚Ͳ ͪΓੵΕࢁͱͳΔΑ͏ͳ ࡉ͔͍ޮՌ,PUMJOͷັྗ
16 © DeNA Co., Ltd. ·ͱΊ KotlinΛ ͬͱ͖ʹͳΓ ίʔυΛͬͱ ͖Ε͍ʹ͠Α͏
© DeNA Co., Ltd. એ ٕज़ॻయͰຊΛग़͠·͢ ɾ !ା ʮ+BWBUP,PUMJO
ɹɹɹUP,PUMJO)BOECPPLʯ ɾࠓͷ֦େ൛ͷΑ͏ͳຊͰ͢ ɾ୯७ͳมͰಘΒΕΔޮՌ ɹ؆୯ʹಋೖͰ͖Δػೳ ɹͨ͘͞Μ͝հ͍ͯ͠·͢ 17 ৄͪ͘͜͠Β↓ h5ps://techbookfest.org/event/tbf07/circle/5733885484728320