Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Gradle Dive: Writing Custom Plugins
Search
Theophilus Kibet
November 15, 2022
Programming
77
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
110
Building Cross- Platform Applications with Kotlin Multiplatform
kibet
0
57
Crafting Custom Lint Rules: Elevating Android Code Quality
kibet
0
110
Mastering GitHub Actions: Automate and Supercharge Your Development Workflow
kibet
0
100
Build Configurations: types, variants and flavors.
kibet
0
82
Opportunities in Tech
kibet
0
100
Introduction To Android Development
kibet
0
76
Other Decks in Programming
See All in Programming
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
150
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
190
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.8k
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.4k
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
440
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
120
wkhtmltopdfの次どうするか問題2026
willnet
2
1.8k
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
510
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
130
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
410
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
170
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
320
Featured
See All Featured
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
440
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Optimising Largest Contentful Paint
csswizardry
37
4k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
Six Lessons from altMBA
skipperchong
29
4.5k
Speed Design
sergeychernyshev
33
2.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Accessibility Awareness
sabderemane
1
230
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
Product Roadmaps are Hard
iamctodd
55
13k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
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!