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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Theophilus Kibet
November 15, 2022
Programming
64
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
88
Building Cross- Platform Applications with Kotlin Multiplatform
kibet
0
46
Crafting Custom Lint Rules: Elevating Android Code Quality
kibet
0
92
Mastering GitHub Actions: Automate and Supercharge Your Development Workflow
kibet
0
83
Build Configurations: types, variants and flavors.
kibet
0
73
Opportunities in Tech
kibet
0
91
Introduction To Android Development
kibet
0
60
Other Decks in Programming
See All in Programming
Inside Stream API
skrb
1
700
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
120
Oxcを導入して開発体験が向上した話
yug1224
4
310
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
780
ふつうのFeature Flag実践入門
irof
7
3.8k
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
190
A2UI という光を覗いてみる
satohjohn
1
130
Contextとはなにか
chiroruxx
1
310
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
110
Oxlintのカスタムルールの現況
syumai
6
1.1k
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
220
Claspは野良GASの夢をみるか
takter00
0
190
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Embracing the Ebb and Flow
colly
88
5.1k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
How to train your dragon (web standard)
notwaldorf
97
6.7k
Utilizing Notion as your number one productivity tool
mfonobong
4
320
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.4k
Leo the Paperboy
mayatellez
7
1.8k
New Earth Scene 8
popppiees
3
2.3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
470
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
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!