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
KotlinConf 2017 Keynote
Search
kobito-kaba
November 14, 2017
Programming
1
810
KotlinConf 2017 Keynote
KotlinConf 2017のKeynoteの内容をざっくりとまとめました
kobito-kaba
November 14, 2017
Tweet
Share
More Decks by kobito-kaba
See All by kobito-kaba
新規プロジェクトでやってよかったことまとめ
kobitokaba
1
820
Youtube like BottomNavigation
kobitokaba
0
220
Modularizing and Refactoring Android App with Clean Architecture
kobitokaba
0
250
Slice Your App
kobitokaba
2
1.2k
Inside Jetpack
kobitokaba
2
130
Generating and Transforming Kotlin code
kobitokaba
0
93
Conference Tourism
kobitokaba
0
260
Inside Jetpack Architecture Components
kobitokaba
0
220
Kotlinもう一歩
kobitokaba
8
16k
Other Decks in Programming
See All in Programming
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
170
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
250
GoのGenericsによるslice操作との付き合い方
syumai
3
710
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
0
470
Benchmark
sysong
0
280
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
220
Is Xcode slowly dying out in 2025?
uetyo
1
240
Node-RED を(HTTP で)つなげる MCP サーバーを作ってみた
highu
0
120
Google Agent Development Kit でLINE Botを作ってみた
ymd65536
2
210
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
320
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
1
330
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
180
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Done Done
chrislema
184
16k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Facilitating Awesome Meetings
lara
54
6.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Making Projects Easy
brettharned
116
6.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
Transcript
KotlinConf Keynote Yahoo! JAPAN / 森 洋之
About me Yahoo! JAPAN Android黒帯 (こういうところで話す仕事) ヤフオク!のAndroid / iOS / バックエンド担当
Keynote #1
Kotlin/Anywhere
None
None
None
None
Kotlin/Anywhere
Server Android Browser Kotlin/JVM Kotlin/JVM Kotlin/JS
Kotlin & Server
JVM Server • パワフルなJVM • 既存のライブラリが全て使用可能 • Null Pointer Exceptionの排除
Coroutine fun onClick() = launch(UI) { val response = async(CommonPool)
{ Repository.getTimeline() } showTimeline(response.await()) } 非同期処理をかんたんに、コールバック地獄もなしに、書ける
• 100% KotlinのWebフレームワーク • 100% 非同期 • Coroutines from the
ground up
experimental != unstable
Use. Coroutines. Now
Kotlin & Browser
Kotlin/JS JavaScript Moduleのサポート dynamic Type Definitely Typed Header
Kotlin/JS React Demo(ありません) goo.gl/YkYfk3
Kotlin & Android
None
2.5x Google Playにアップロードされている Kotlinを使用したアプリ
17% Kotlinを使用するAndroid Studio プロジェクト
Android Studio 3.0 Android Support Library Annotations Android Kotlin Guides
Android Kotlin Documentation
Android Studio 3.0 • Kotlin Pluginが同梱 • Kotlin Lintサポート •
Kotlinプロジェクトテンプレート
Android Support Library • will support Kotlin Annotations from 27.0.0
goo.gl/knwckS Android Kotlin Guide
Android Kotlin Docs & Samples goo.gl/UWKfnc
Multiplatform Projects
Server Android Browser Kotlin/JVM Kotlin/JVM Kotlin/JS
None
*.class *.js *.class *.js
共通のロジック プラットフォームに 依存した ロジック プラットフォームに 依存した ロジック
actual external class Date { … actual fun getFullYear(): Int
… } expect class Date() { … fun getFullYear(): Int … } common actual class Date { private val calendar: Calendar … actual fun getFullYear() = calendar[YEAR] … } JVM JS
fun Pair<Date, Date>.toReadableString(): String { … if (from.getDate() != to.getDate()
|| from.getMonth() != to.getMonth() || from.getFullYear() != to.getFullYear()) { … } … } common
Server Android Browser Kotlin/JVM Kotlin/JVM Kotlin/JS
Server Android Browser Kotlin/JVM Kotlin/JVM Kotlin/JS iOS Kotlin/Native
Kotlin & iOS
Native Binary LLVM
Kotlin/Native • iOS • macOS • Windows • Linux •
Android NDK • WebAssembly
Server Android Browser Kotlin/Native Kotlin/Native Kotlin/Native iOS Kotlin/Native
Sample goo.gl/AQkK6S
Kotlin/Anywhere
Keynote #2
Party Keynote
What is a “Party Keynote”
None
None
None
None
まとめ
• Kotlinの利用は爆発的に伸びている • Coroutine使おう • どこでもKotlinを!