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
0
47
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
64
Building Cross- Platform Applications with Kotlin Multiplatform
kibet
0
21
Crafting Custom Lint Rules: Elevating Android Code Quality
kibet
0
68
Mastering GitHub Actions: Automate and Supercharge Your Development Workflow
kibet
0
73
Build Configurations: types, variants and flavors.
kibet
0
59
Opportunities in Tech
kibet
0
80
Introduction To Android Development
kibet
0
49
Other Decks in Programming
See All in Programming
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
170
品質ワークショップをやってみた
nealle
0
870
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
7
3.7k
ドメイン駆動設計のエッセンス
masuda220
PRO
15
7.2k
CSC509 Lecture 09
javiergs
PRO
0
280
Blazing Fast UI Development with Compose Hot Reload (droidcon London 2025)
zsmb
0
440
O Que É e Como Funciona o PHP-FPM?
marcelgsantos
0
250
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
320
Inside of Swift Export
giginet
PRO
1
300
Towards Transactional Buffering of CDC Events @ Flink Forward 2025 Barcelona Spain
hpgrahsl
0
120
ノーコードからの脱出 -地獄のデスロード- / Escape from Base44
keisuke69
0
310
AIのバカさ加減に怒る前にやっておくこと
blueeventhorizon
0
140
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
186
22k
Fireside Chat
paigeccino
41
3.7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
The Cult of Friendly URLs
andyhume
79
6.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
Speed Design
sergeychernyshev
32
1.2k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Scaling GitHub
holman
463
140k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Code Review Best Practice
trishagee
72
19k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
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!