Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The Zen of Kotlin by Vincent Carrier
Search
GDG Montreal
February 28, 2018
Technology
0
170
The Zen of Kotlin by Vincent Carrier
GDG Montreal
February 28, 2018
Tweet
Share
More Decks by GDG Montreal
See All by GDG Montreal
Advanced Pregnancy Risk Assessment Using AI Model Chain by Kiruthika Subramani
gdgmontreal
0
55
Al and Security: A double edge sword? by Stacy Véronneau and Yan Bellerose
gdgmontreal
0
79
Scaling AI on a Budget: A Startup's GPU Optimization Journey by Shannon Lal
gdgmontreal
0
62
Build Your Own Secured AI Platform with Google Cloud Vertex AI by unleashing the Power of Multi-LLM by Eckarath Khounsombath
gdgmontreal
0
98
FlutterMTL_-_Flutter_Next_24.pdf
gdgmontreal
0
76
Developing Flutter Applications in Dev Container Environments - Ali Yazdi
gdgmontreal
0
290
Building an ML powered Android Livestreaming App by Etienne Caron
gdgmontreal
1
95
Boosting Your Mobile App: Small Details, Big Impact by Mathieu Fillion
gdgmontreal
0
43
The Hitchhiker's Guide to MLOps by David Cardozo
gdgmontreal
0
44
Other Decks in Technology
See All in Technology
手動から自動へ、そしてその先へ
moritamasami
0
260
21st ACRi Webinar - AMD Presentation Slide (Nao Sumikawa)
nao_sumikawa
0
230
直接メモリアクセス
koba789
0
250
Kiro Autonomous AgentとKiro Powers の紹介 / kiro-autonomous-agent-and-powers
tomoki10
0
160
Agentic AI Patterns and Anti-Patterns
glaforge
1
150
pmconf2025 - 他社事例を"自社仕様化"する技術_iRAFT法
daichi_yamashita
0
710
バグハンター視点によるサプライチェーンの脆弱性
scgajge12
2
630
Overture Maps Foundationの3年を振り返る
moritoru
0
110
Uncertainty in the LLM era - Science, more than scale
gaelvaroquaux
0
700
Playwright x GitHub Actionsで実現する「レビューしやすい」E2Eテストレポート
kinosuke01
0
180
useEffectってなんで非推奨みたいなこと言われてるの?
maguroalternative
10
6.4k
【AWS re:Invent 2025速報】AIビルダー向けアップデートをまとめて解説!
minorun365
4
420
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
Site-Speed That Sticks
csswizardry
13
990
Rails Girls Zürich Keynote
gr2m
95
14k
BBQ
matthewcrist
89
9.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
The Pragmatic Product Professional
lauravandoore
37
7.1k
How GitHub (no longer) Works
holman
316
140k
Transcript
The Zen of Kotlin By Vincent Carrier
Follow along https://github.com/Vincent-Carrier/Omego.git
Simple rules, infinite possibilities • Take turns to place stones
• If one of your group is surrounded by the other, it is captured • The player with the most territory wins
Less code is more
None
with()
Without with()
None
apply()
Without apply()
Good code documents itself
Local functions
None
Extension functions and lambdas with receivers Within my AppCompatActivity:
Custom getter functions
Type aliases
Type aliases
Don’t expose more than you should
lateinit vs by lazy
package visibility does not exist in Kotlin • package limits
visibility to enclosing folder. internal limits visibility to enclosing module. • Get comfortable with modules!
Why modules? • Encourages better code structure • Easier to
distribute and reuse • Compiles faster • Convert to an Instant App easily THIS IS GRADLE. IT’S A BUILD SYSTEM FOR THE JVM THAT WORKS THROUGH A BEAUTIFUL DIRECTED ACYCLIC GRAPH MODEL.
Module types • Phone & Tablet • Android Library •
Java Library • And more…
build.gradle (Project) Define some common dependencies to avoid having to
repeat ourselves too much
build.gradle (model) build.gradle (app)
Thank you for listening