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
Gradle Dive: Writing Custom Plugins
Search
Theophilus Kibet
November 15, 2022
Programming
62
0
Share
Gradle Dive: Writing Custom Plugins
Theophilus Kibet
November 15, 2022
More Decks by Theophilus Kibet
See All by Theophilus Kibet
From Source to Bytecode: Understanding the Kotlin Compilation Process
kibet
0
82
Building Cross- Platform Applications with Kotlin Multiplatform
kibet
0
41
Crafting Custom Lint Rules: Elevating Android Code Quality
kibet
0
79
Mastering GitHub Actions: Automate and Supercharge Your Development Workflow
kibet
0
78
Build Configurations: types, variants and flavors.
kibet
0
68
Opportunities in Tech
kibet
0
89
Introduction To Android Development
kibet
0
57
Other Decks in Programming
See All in Programming
実用!Hono RPC2026
yodaka
2
270
How Swift's Type System Guides AI Agents
koher
0
310
t *testing.T は どこからやってくるの?
otakakot
1
760
HTML-Aware ERB: The Path to Reactive Rendering @ RubyKaigi 2026, Hakodate, Japan
marcoroth
0
290
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
24
15k
Claude CodeでETLジョブ実行テストを自動化してみた
yoshikikasama
0
900
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
120
Server-Side Kotlin LT大会 vol.18 [Kotlin-lspの最新情報と Neovimのlsp設定例]
yasunori0418
1
190
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
4
1.2k
AWSコミュニティ活動は顧客のクラウド推進に効くのか / Do AWS community activities help customers adopt the cloud?
seike460
PRO
0
150
Kubernetes上でAgentを動かすための最新動向と押さえるべき概念まとめ
sotamaki0421
3
700
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
0
590
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
22k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
GitHub's CSS Performance
jonrohan
1032
470k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
540
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
780
Claude Code のすすめ
schroneko
67
220k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Thoughts on Productivity
jonyablonski
76
5.1k
Utilizing Notion as your number one productivity tool
mfonobong
4
290
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Transcript
Gradle Dive: Writing Custom Plugins Theophilus Kibet Android Engineer @Kyosk
@_kibetheophilus
:app
:app :feature:profile :feature:cart :feature:products :data:local :data:network :core
26+
- Each module needs a build.gradle.
- Each module needs a build.gradle. - Duplicate scripts in
each module.
- Each module needs a build.gradle. - Duplicate scripts in
each module. - Hard to maintain.
- Each module needs a build.gradle - Duplicate scripts in
each module - Hard to maintain e.g creating a build type
- Declares Gradle plugins. Each build.gradle
- Declares Gradle plugins. - Sets build parameters. Each build.gradle
- Declares Gradle plugins. - Sets build parameters. - Declares
dependencies. Each build.gradle
Gradle Plugin
- packages up reusable pieces of build logic, which can
be used across many different projects and builds. Gradle Plugin
- Script Plugin Types of Plugins
- Script Plugin - Binary Plugin Types of Plugins
- Additional build script Script Plugin
- Additional build script - apply from : “flavors.gradle” Script
Plugin
- Written by implementing plugin interface. Binary Plugin
- Written by implementing plugin interface - Applied using a
unique id Binary Plugin
- Written by implementing plugin interface - Applied using a
unique id - plugins { id(“com.android.library”) } Binary Plugin
- What will the plugin do? Creating a Plugin
- Add gradleApi() and kotlin dependencies Setup
None
- Add gradleApi() and kotlin dependencies - Create a class
implementing Plugin interface Setup
None
None
None
None
None
- Share build logic across modules - Reduced build script
size - Migrate all our files to kts Benefits
Questions?
Thank you!