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
42
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
52
Building Cross- Platform Applications with Kotlin Multiplatform
kibet
0
9
Crafting Custom Lint Rules: Elevating Android Code Quality
kibet
0
61
Mastering GitHub Actions: Automate and Supercharge Your Development Workflow
kibet
0
69
Build Configurations: types, variants and flavors.
kibet
0
55
Opportunities in Tech
kibet
0
76
Introduction To Android Development
kibet
0
45
Other Decks in Programming
See All in Programming
Defying Front-End Inertia: Inertia.js on Rails
skryukov
0
490
Do Dumb Things
mitsuhiko
0
440
Vibe Codingをせずに Clineを使っている
watany
17
6.3k
[NG India] Event-Based State Management with NgRx SignalStore
markostanimirovic
1
160
Java 24まとめ / Java 24 summary
kishida
3
500
AI時代の開発者評価について
ayumuu
0
150
Lambda(Python)の リファクタリングが好きなんです
komakichi
3
200
Make Parsers Compatible Using Automata Learning
makenowjust
1
4.9k
リストビュー画面UX改善の振り返り
splcywolf
0
140
AIコードエディタの基盤となるLLMのFlutter性能評価
alquist4121
0
210
国漢文混用体からHolloまで
minhee
1
190
Ruby's Line Breaks
yui_knk
2
1.1k
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
29
5.6k
Visualization
eitanlees
146
16k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
GraphQLの誤解/rethinking-graphql
sonatard
71
10k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Thoughts on Productivity
jonyablonski
69
4.6k
A Tale of Four Properties
chriscoyier
158
23k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.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!