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
940
Visionフレームワークのリアルタイム顔検出を使えば、ウインクするときゃるん♪と音が鳴る二次元美少女になれる!
minami1389
2
11k
Other Decks in Programming
See All in Programming
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
510
バイブコーディング超えてバイブデプロイ〜CloudflareMCPで実現する、未来のアプリケーションデリバリー〜
azukiazusa1
3
780
SwiftでMCPサーバーを作ろう!
giginet
PRO
2
220
[DevinMeetupTokyo2025] コード書かせないDevinの使い方
takumiyoshikawa
2
250
GitHub Copilotの全体像と活用のヒント AI駆動開発の最初の一歩
74th
6
1.6k
知って得する@cloudflare_vite-pluginのあれこれ
chimame
1
140
テスターからテストエンジニアへ ~新米テストエンジニアが歩んだ9ヶ月振り返り~
non0113
2
250
Vibe coding コードレビュー
kinopeee
0
400
プロダクトという一杯を作る - プロダクトチームが味の責任を持つまでの煮込み奮闘記
hiliteeternal
0
370
Bedrock AgentCore ObservabilityによるAIエージェントの運用
licux
8
560
kiroでゲームを作ってみた
iriikeita
0
140
Flutterと Vibe Coding で個人開発!
hyshu
1
220
Featured
See All Featured
It's Worth the Effort
3n
185
28k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
332
22k
Six Lessons from altMBA
skipperchong
28
3.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Facilitating Awesome Meetings
lara
54
6.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
750
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
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