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
56
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
35
Crafting Custom Lint Rules: Elevating Android Code Quality
kibet
0
74
Mastering GitHub Actions: Automate and Supercharge Your Development Workflow
kibet
0
74
Build Configurations: types, variants and flavors.
kibet
0
63
Opportunities in Tech
kibet
0
83
Introduction To Android Development
kibet
0
52
Other Decks in Programming
See All in Programming
オブザーバビリティ駆動開発って実際どうなの?
yohfee
3
670
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
310
Go Conference mini in Sendai 2026 : Goに新機能を提案し実装されるまでのフロー徹底解説
yamatoya
0
510
AIプロダクト時代のQAエンジニアに求められること
imtnd
2
640
RubyとGoでゼロから作る証券システム: 高信頼性が求められるシステムのコードの外側にある設計と運用のリアル
free_world21
0
180
Raku Raku Notion 20260128
hareyakayuruyaka
0
430
TROCCOで実現するkintone+BigQueryによるオペレーション改善
ssxota
0
120
株式会社 Sun terras カンパニーデック
sunterras
0
2k
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
3.4k
今、アーキテクトとして 品質保証にどう関わるか
nealle
0
200
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
12
7.4k
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
240
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
190
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
97
Practical Orchestrator
shlominoach
191
11k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
140
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
What's in a price? How to price your products and services
michaelherold
247
13k
A Soul's Torment
seathinner
5
2.4k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
110
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.8k
30 Presentation Tips
portentint
PRO
1
250
Faster Mobile Websites
deanohume
310
31k
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!