Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
The Zen of Kotlin by Vincent Carrier
Search
GDG Montreal
February 28, 2018
Technology
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The Zen of Kotlin by Vincent Carrier
GDG Montreal
February 28, 2018
More Decks by GDG Montreal
See All by GDG Montreal
Advanced Pregnancy Risk Assessment Using AI Model Chain by Kiruthika Subramani
gdgmontreal
0
120
Al and Security: A double edge sword? by Stacy Véronneau and Yan Bellerose
gdgmontreal
0
140
Scaling AI on a Budget: A Startup's GPU Optimization Journey by Shannon Lal
gdgmontreal
0
130
Build Your Own Secured AI Platform with Google Cloud Vertex AI by unleashing the Power of Multi-LLM by Eckarath Khounsombath
gdgmontreal
0
180
FlutterMTL_-_Flutter_Next_24.pdf
gdgmontreal
0
170
Developing Flutter Applications in Dev Container Environments - Ali Yazdi
gdgmontreal
0
450
Building an ML powered Android Livestreaming App by Etienne Caron
gdgmontreal
1
170
Boosting Your Mobile App: Small Details, Big Impact by Mathieu Fillion
gdgmontreal
0
110
The Hitchhiker's Guide to MLOps by David Cardozo
gdgmontreal
0
120
Other Decks in Technology
See All in Technology
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
130
Webとヘルスデータ
yukukotani
1
350
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
130
2026-09-09 【sigma_ucj#1】Sigma を IaC 管理したい! / IaC for Sigma
civitaspo
0
110
2026-09-10 【Snowflake World Tour Tokyo 2026】dbt Core と Snowflake で実現する多層的なデータガバナンス / Multi-Layered Data Governance Powered by dbt Core and Snowflake
civitaspo
0
310
「図書館」という名前のままでいいのか -Code4Lib JAPANカンファレンス2026 アンカンファレンス報告- / Code4Lib JAPAN Conference 2026: Unconference Report
ykiyota
0
160
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
150
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
1
300
Sigmaで作る業務アプリ
kazushiro_honma
0
110
Reactの設計論
uhyo
14
7.6k
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
250
Screen Lens - 今見てる画面を翻訳する
komagata
0
220
Featured
See All Featured
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
460
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
400
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.3k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
470
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Product Roadmaps are Hard
iamctodd
55
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
230
The Language of Interfaces
destraynor
162
27k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
Typedesign – Prime Four
hannesfritz
42
3.2k
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