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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
67
Al and Security: A double edge sword? by Stacy Véronneau and Yan Bellerose
gdgmontreal
0
91
Scaling AI on a Budget: A Startup's GPU Optimization Journey by Shannon Lal
gdgmontreal
0
71
Build Your Own Secured AI Platform with Google Cloud Vertex AI by unleashing the Power of Multi-LLM by Eckarath Khounsombath
gdgmontreal
0
110
FlutterMTL_-_Flutter_Next_24.pdf
gdgmontreal
0
97
Developing Flutter Applications in Dev Container Environments - Ali Yazdi
gdgmontreal
0
320
Building an ML powered Android Livestreaming App by Etienne Caron
gdgmontreal
1
110
Boosting Your Mobile App: Small Details, Big Impact by Mathieu Fillion
gdgmontreal
0
51
The Hitchhiker's Guide to MLOps by David Cardozo
gdgmontreal
0
51
Other Decks in Technology
See All in Technology
AWS DevOps Agent x ECS on Fargate検証 / AWS DevOps Agent x ECS on Fargate
kinunori
2
250
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
150
22nd ACRi Webinar - ChipTip Technology Eric-san's slide
nao_sumikawa
0
100
SRE Enabling戦記 - 急成長する組織にSREを浸透させる戦いの歴史
markie1009
0
170
プロポーザルに込める段取り八分
shoheimitani
1
670
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
340
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
1.1k
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
120
量子クラウドサービスの裏側 〜Deep Dive into OQTOPUS〜
oqtopus
0
150
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
2
190
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
5
540
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
780
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
110
How GitHub (no longer) Works
holman
316
140k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.1k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
340
Building AI with AI
inesmontani
PRO
1
710
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
590
The Curse of the Amulet
leimatthew05
1
8.7k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
Between Models and Reality
mayunak
1
200
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
99
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