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
The Zen of Kotlin by Vincent Carrier
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
GDG Montreal
February 28, 2018
Technology
0
180
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
73
Al and Security: A double edge sword? by Stacy Véronneau and Yan Bellerose
gdgmontreal
0
99
Scaling AI on a Budget: A Startup's GPU Optimization Journey by Shannon Lal
gdgmontreal
0
74
Build Your Own Secured AI Platform with Google Cloud Vertex AI by unleashing the Power of Multi-LLM by Eckarath Khounsombath
gdgmontreal
0
120
FlutterMTL_-_Flutter_Next_24.pdf
gdgmontreal
0
130
Developing Flutter Applications in Dev Container Environments - Ali Yazdi
gdgmontreal
0
350
Building an ML powered Android Livestreaming App by Etienne Caron
gdgmontreal
1
120
Boosting Your Mobile App: Small Details, Big Impact by Mathieu Fillion
gdgmontreal
0
58
The Hitchhiker's Guide to MLOps by David Cardozo
gdgmontreal
0
59
Other Decks in Technology
See All in Technology
タスク管理も1on1も、もう「管理」じゃない - KiroとBedrock AgentCoreで変わった“判断の仕事”
yusukeshimizu
0
110
Blue/Green Deployment を用いた PostgreSQL のメジャーバージョンアップ
kkato1
0
150
Change Calendarで今はOK?を仕組みにする
tommy0124
1
120
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
250
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
260
俺の/私の最強アーキテクチャ決定戦開催 ― チームで新しいアーキテクチャに適合していくために / 20260322 Naoki Takahashi
shift_evolve
PRO
1
460
契約書からの情報抽出を行うLLMのスループットを、バッチ処理を用いて最大40%改善した話
sansantech
PRO
3
290
Phase02_AI座学_応用
overflowinc
0
3.1k
Cursor Subagentsはいいぞ
yug1224
2
100
FastMCP OAuth Proxy with Cognito
hironobuiga
3
210
「捨てる」を設計する
kubell_hr
0
400
DDD×仕様駆動で回す高品質開発のプロセス設計
littlehands
6
2.6k
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Balancing Empowerment & Direction
lara
5
990
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
410
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
250
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
220
Making Projects Easy
brettharned
120
6.6k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
150
How to make the Groovebox
asonas
2
2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
How STYLIGHT went responsive
nonsquared
100
6k
sira's awesome portfolio website redesign presentation
elsirapls
0
200
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