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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Theophilus Kibet
November 15, 2022
Programming
0
57
Gradle Dive: Writing Custom Plugins
Theophilus Kibet
November 15, 2022
Tweet
Share
More Decks by Theophilus Kibet
See All by Theophilus Kibet
From Source to Bytecode: Understanding the Kotlin Compilation Process
kibet
0
73
Building Cross- Platform Applications with Kotlin Multiplatform
kibet
0
38
Crafting Custom Lint Rules: Elevating Android Code Quality
kibet
0
75
Mastering GitHub Actions: Automate and Supercharge Your Development Workflow
kibet
0
75
Build Configurations: types, variants and flavors.
kibet
0
64
Opportunities in Tech
kibet
0
84
Introduction To Android Development
kibet
0
52
Other Decks in Programming
See All in Programming
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
530
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
320
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
230
Claude Codeログ基盤の構築
giginet
PRO
7
3.5k
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
530
モダンOBSプラグイン開発
umireon
0
170
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
210
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
250
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
900
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.1k
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
190
Cyrius ーLinux非依存にコンテナをネイティブ実行する専用OSー
n4mlz
0
230
Featured
See All Featured
The Mindset for Success: Future Career Progression
greggifford
PRO
0
280
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
The Curious Case for Waylosing
cassininazir
0
270
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
91
Speed Design
sergeychernyshev
33
1.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
500
RailsConf 2023
tenderlove
30
1.4k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
GraphQLの誤解/rethinking-graphql
sonatard
75
11k
Building AI with AI
inesmontani
PRO
1
810
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
100
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!