Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
830
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
860
Youtube like BottomNavigation
kobitokaba
0
230
Modularizing and Refactoring Android App with Clean Architecture
kobitokaba
0
270
Slice Your App
kobitokaba
2
1.2k
Inside Jetpack
kobitokaba
2
150
Generating and Transforming Kotlin code
kobitokaba
0
110
Conference Tourism
kobitokaba
0
270
Inside Jetpack Architecture Components
kobitokaba
0
230
Kotlinもう一歩
kobitokaba
8
16k
Other Decks in Programming
See All in Programming
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
6.7k
AIコーディングエージェント(Gemini)
kondai24
0
180
CSC509 Lecture 14
javiergs
PRO
0
220
AIと協働し、イベントソーシングとアクターモデルで作る後悔しないアーキテクチャ Regret-Free Architecture with AI, Event Sourcing, and Actors
tomohisa
5
19k
NUMA環境とコンテナランタイム ― youki における Linux Memory Policy 実装
n4mlz
1
200
Reactive Thinking with Signals and the new Resource API
manfredsteyer
PRO
0
170
Level up your Gemini CLI - D&D Style!
palladius
1
180
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
190
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
110
愛される翻訳の秘訣
kishikawakatsumi
1
270
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
340
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
1
210
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Bash Introduction
62gerente
615
210k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Rails Girls Zürich Keynote
gr2m
95
14k
Git: the NoSQL Database
bkeepers
PRO
432
66k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
Music & Morning Musume
bryan
46
7k
KATA
mclloyd
PRO
32
15k
Speed Design
sergeychernyshev
33
1.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
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を!