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
Kotlin導入作戦
Search
Fukui Atsuko
November 06, 2017
Technology
570
4
Share
Kotlin導入作戦
Kotlinをプロダクトに導入するにあたって、ビジネスとどうバランスをとるかのお話です
Fukui Atsuko
November 06, 2017
More Decks by Fukui Atsuko
See All by Fukui Atsuko
こんな時どう書くの? 逆引きKotlin入門
muumuumuumuu
3
1.5k
KotlinとReduxをAndroidアプリに導入したら
muumuumuumuu
6
4.8k
Sometimes Swift confuses Kotlin engineers.
muumuumuumuu
0
690
How to find problem causes and performance improvement
muumuumuumuu
6
4.3k
Other Decks in Technology
See All in Technology
会社紹介資料 / Sansan Company Profile
sansan33
PRO
17
410k
60分で学ぶ最新Webフロントエンド
mizdra
PRO
33
16k
2026年に相応しい 最先端プラグインホストの設計<del>と実装</del>
atsushieno
0
120
暗黙知について一歩踏み込んで考える - 暗黙知の4タイプと暗黙考・暗黙動へ
masayamoriofficial
0
1.7k
Proxmox超入門
devops_vtj
0
220
明日からドヤれる!超マニアックなAWSセキュリティTips10連発 / 10 Ultra-Niche AWS Security Tips
yuj1osm
0
470
Bluesky Meetup in Tokyo vol.4 - 2023to2026
shinoharata
0
190
え!?初参加で 300冊以上 も頒布!? これは大成功!そのはずなのに わいの財布は 赤字 の件
hellohazime
0
150
Revisiting [CLS] and Patch Token Interaction in Vision Transformers
yu4u
0
150
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
16k
QGISプラグイン CMChangeDetector
naokimuroki
1
260
幾億の壁を超えて/Beyond Countless Walls(JP)
ikuodanaka
0
130
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
440
The Pragmatic Product Professional
lauravandoore
37
7.2k
Tell your own story through comics
letsgokoyo
1
890
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Six Lessons from altMBA
skipperchong
29
4.2k
Ruling the World: When Life Gets Gamed
codingconduct
0
190
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
We Are The Robots
honzajavorek
0
210
Accessibility Awareness
sabderemane
0
98
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
260
Transcript
,PUMJOಋೖ࡞ઓʂ ʙϏδωεͱΤϯδχΞͷͤΛཱ྆ͤ͞ΔͨΊʹͬͨ͜ͱʙ #POGJSF"OESPJE 'VLVJ"UTVLP
"CPVUNF • Ҫರࢠ / Fukui Atsuko • @muumuumuumuu • Retty,
Inc. • AndroidΤϯδχΞ • ͦͷલΈࠐΈܥAndroidͷ͓ࣄ
ࠃ/P໊࣮άϧϝαʔϏε ϢʔβʔߘܕͷαʔϏεܗଶ $(. XFCͱΞϓϦͰαʔϏεల։ εϚϗϑΝʔετ γϯάϧυϝΠϯ ݄ؒར༻ऀສ 3FUUZͷαʔϏεհ
օ͞Μ,PUMJO͖Ͱ͔͢ʁ ͢Ͱʹಋೖͯ͠·͔͢ʁ ͦΕʹΑͬͯͲΕ͚ͩࣄۀʹߩݙͰ͖· ͔ͨ͠ʁ
3FUUZͰಋೖ͔Β͏ͦΖͦΖ ,PUMJOͰͲ͏ࣄۀʹߩݙ͖͔ͯͨ͠ ʹ͍͓ͭͯ͠͠·͢ɻ
৽ن։ൃͰͳ͘ɺطଘͷ+BWBϓϩδΣΫτʹ ,PUMJOಋೖΛߟ͍͑ͯΔਓ͚ʹͳΓ·͢
"HFOEB • લఏࣝ: Kotlinʹ͍ͭͯ • ಋೖͯ͠Α͔ͬͨͱ͜Ζ • Ͳ͏ͬͯಋೖ͔ͨ͠
,PUMJO
,PUMJO • 2011ʹJetBrain͔ࣾΒൃද͞Εͨϓϩάϥ ϛϯάݴޠ • Better Java ͳݴޠ • JavaͱڞଘՄೳ
• ؔܕϓϩάϥϛϯάͷελΠϧΛαϙʔτ • ͔Θ͍͍
Α͔ͬͨͱ͜Ζ
͕͜͜خ͍͠ • ʢJavaͱൺֱͯ͠ʣ҆શͳίʔυ͕ॻ͚Δ • Null҆શ • ͨͩ͠100%Ͱͳ͍ • Number
Format Exception͔Βͷଔۀ • Kotlin 1.1 ͔ΒՃ͞Εͨ toIntOrNull() • Immutable variables / collections
͕͜͜خ͍͠ • Readabilityͷ্ • SAMม • Interfaceࠈ -> Lambda
• ֦ுؔ • Collection • Data class
͕͜͜خ͍͠ • Property delegateͷॆ࣮ • Observable͕ศར • ؆୯ʹpub/subύλʔϯ͕ॻ͚Δ
͕͜͜خ͍͠ • ϑΝΠϧ୯ҐͰؾܰʹಋೖͰ͖Δ • JavaͷίʔυͱڞଘՄೳ
͕͜͜خ͍͠ ϏδωεαΠυ ΤϯδχΞαΠυ • ϓϩμΫτͷ্࣭͕͕Δ • ৽͍͜͠ͱ͍ͬͯΔײ ✌ •
ใʹ͖͘ • ॻ͍ͯͯςϯγϣ ϯ্͕͕Δ㽉㽉
Ҏ্ɺ࣮ࡍʹͬͯΈͯಘΒΕͨݟͷҰྫͰ ͨ͠ɻ ݁ՌతʹΑ͔͚ͬͨͲɺ ݁Ռ͕Θ͔Βͳ͍ঢ়ଶͰͲ͏αʔϏεΛ υϥΠϒͭͭ͠ಋೖ͔ͨ͠ ʹ͍͓ͭͯ͠͠·͢
)PXUPಋೖ
Α͍࣭ͨͩ͘͘ ʮ͏શ෦,PUMJOͳΜͰ͔͢ʁʯ
+BWB,PUMJOʹஔ͖͑Δʁ • ϦϑΝΫλϦϯά͍ͯ͠ΔؒɺαʔϏεͷά ϩʔεʁ৽نػೳͷ։ൃʁ • ϏδωεଆΛͲ͏ͬͯઆಘ͠·͔͢ʁ
+BWB,PUMJOʹஔ͖͑Δʁ • ϦϑΝΫλϦϯά͍ͯ͠ΔؒɺαʔϏεͷά ϩʔεʁ৽نػೳͷ։ൃʁ • ϏδωεଆΛͲ͏ͬͯઆಘ͠·͔͢ʁ • ஔ͖͑ɺຊʹඞཁͰ͔͢ʁ • ΤϯδχΞͷΤΰͰͳ͍Ͱ͔͢ʁ
• αʔϏεΛάϩʔε͢ΔΤϯδχΞ ෛ͍ͬͯΔʂ
+BWB,PUMJOʹஔ͖͑Δʁ • ஔ͖͑Δඞཁ͕͋Δ͔Ͳ͏͔έʔεόΠ έʔε • લͷεϥΠυͷ࣭ʹશ෦͑ΒΕͳ͍ͷͰ ͋Εશ෦ஔ͖͑Α͏ͱ͠ͳ͍΄͏͕͍͍ ͱࢥ͍·͢
3FUUZͷ߹
)PXUPಋೖ • Kotlinʹڵຯ͕͋ΓɺϓϩμΫτʹೖΕ͍͍ͯ ͷ͔ʢ࣮ӡ༻ʹ͑͏Δ͔ʣݕূ͍ͨ͠ʂ • ·ͣۀͷ10%ҎͰࢼ͠·ͨ͠ • ࣄۀͷతͳΠϯύΫτͳ͍ͱ͜ΖͰ ࢼݧಋೖ
• ϦεΫ0ͰউखʹͬͯΈ·ͨ͠ • ݁Ռ͍͍ײ͡ʂ
)PXUPಋೖ • ϓϩμΫτʹ෦తʹࢼݧಋೖ • ৽نϞδϡʔϧʹͬͦ͜Γಋೖ • ৽نϞδϡʔϧϑϧKotlin • Կ͔͋ͬͯطଘϞδϡʔϧʹӨڹͳ͍ܗ
ͰϦεΫճආ • Kotlin࠷ߴ͔Αʙʙʙʂʂʂʂ
)PXUPಋೖ • ͍ͭʹϓϩμΫτຊମʹಋೖ • ৽نϑΝΠϧͨ͘͞Μख͢͠Δ෦ KotlinͰߦ͘ํ • Java or
KotlinͲͪΒ͔֤ΤϯδχΞʹҕͶ ΒΕ͍ͯ·͢ • ͡Θ͡ΘKotlinΛ૿ͯ͘͠࡞ઓ
)PXUPಋೖ • ͓ͦΒ͘ࠓޙJavaͷίʔυΓଓ͚·͢ • ϝϯς͠ͳͯ͘ಈ͘ίʔυ͍͍ίʔυʂ • ͦ͜ͷஔ͖͑ΛؤுΔ͘Β͍ͳΒϢʔβ͞ Μʹ৽͍͠ՁΛಧ͚Δ͜ͱʹ࣌ؒΛ͍· ͠ΐ͏
• Android FrameworkJavaͳͷͰJavaͱͷ Interface͔Βಀ͛ΒΕ·ͤΜ
·ͱΊ
·ͱΊ • Kotlinಋೖͯ֓͠ͶͤͰ͢ • ΤϯδχΞॻ͍ͯͯςϯγϣϯ্͕Δʂ • ্࣭͕Γใʹޮ͘ͷͰϏδωεత ʹHappy • طଘͷϓϩδΣΫτͷ߹ɺ͡Θ͡Θಋೖ
͢Δͷ͕ΦεεϝͰ͢
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ