$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
03 Full-Stack Application Development Experienc...
Search
JetBrainsRU
May 17, 2018
Programming
0
59
03 Full-Stack Application Development Experience in Kotlin. Sergey Shkredov, New Product Team Lead.
JetBrainsRU
May 17, 2018
Tweet
Share
More Decks by JetBrainsRU
See All by JetBrainsRU
01 Kotlin Programming Language. What it is all about. Roman Belov, PMM in Kotlin
jetbrainsru
1
220
02 Xodus - a Database to Store Youtrack Bugs. Maxim Mazin, YouTrack Team Lead
jetbrainsru
0
130
04 Feature Evolution in IntelliJ IDEA, Nikolay Chashnikov, IDEA Core Team Lead
jetbrainsru
0
120
05 How We Improve Performance in Rider. Andrey Akinshin, Senior Developer in Rider
jetbrainsru
0
49
06 (No) Few Processes is yet a Process. Sergey Coox, .NET Department Lead
jetbrainsru
0
76
Other Decks in Programming
See All in Programming
AIコーディングエージェント(skywork)
kondai24
0
180
WebRTC、 綺麗に見るか滑らかに見るか
sublimer
1
190
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
340
JETLS.jl ─ A New Language Server for Julia
abap34
1
400
20 years of Symfony, what's next?
fabpot
2
360
FluorTracer / RayTracingCamp11
kugimasa
0
230
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
420
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
160
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
110
開発に寄りそう自動テストの実現
goyoki
2
1k
Developing static sites with Ruby
okuramasafumi
0
290
Microservices rules: What good looks like
cer
PRO
0
1.4k
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
How GitHub (no longer) Works
holman
316
140k
Designing for humans not robots
tammielis
254
26k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Being A Developer After 40
akosma
91
590k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Speed Design
sergeychernyshev
33
1.4k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
Transcript
Sergey Shkredov, Team Lead 19:45 - Kotlin Full-Stack — JetBrains
Open Day Moscow
11 years at JetBrains Circlet Rider .NET R#
Full-Stack Server: • Exposed • KTOR • Elastic • Redis
Web: • React IDEA: • Swing Android: • Kotlin IOS: • React native More: • Desktop • iOS
Kotlin JS • JS Generator • Kotlin stdlib for js
• DOM api • Platform interop (dynamic, annotations, external) • js(“”) • CommonJS/AMD/UMD
Kotlin JS - require
Kotlin JS - @JsModule
Kotlin JS - @JsModule
Kotlin JS - external
Kotlin JS - dynamic
KT vs TS
Multi Platform Projects COMMON JS JVM
Before MPP COMMON JS COMMON JVM JS JVM
MPP SHARED JS JVM
MPP SHARED JS
MPP SHARED JS B A
MPP SHARED JS B A D C
MPP SHARED JS B A actual fun foo() {} expect
fun foo()
MPP
MPP
MPP • Native platforms • More specific JVM and JS
platforms • Cross platform libraries
MPP Libs • Serialization • Http client • Dates •
Coroutines • ??
Architecture API Server client-view-model app-web app-android
API • RMI vs RPC • Live updates • Optimistic
updates • Data query (graph QL) • Http fallback • Caching
API • Interface based • Event sourcing • Object updates
steaming • Specialised APIes • Transport level caching
Client state • Web is different • React vs MVVM
Kotlin JS • kotlin-frontend-plugin • kotlin-dce-js • create-kotlin-react-app • ts2kt
Thank you! — JetBrains Open Day Moscow