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
67
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
93
Building Cross- Platform Applications with Kotlin Multiplatform
kibet
0
46
Crafting Custom Lint Rules: Elevating Android Code Quality
kibet
0
95
Mastering GitHub Actions: Automate and Supercharge Your Development Workflow
kibet
0
85
Build Configurations: types, variants and flavors.
kibet
0
74
Opportunities in Tech
kibet
0
91
Introduction To Android Development
kibet
0
63
Other Decks in Programming
See All in Programming
The NotImplementedError Problem in Ruby
koic
1
1.1k
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
0
120
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
230
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
230
AI時代のUIはどこへ行く?その2!
yusukebe
22
7.7k
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
0
330
エージェンティックRAGにAWSで入門しよう!
har1101
9
1.9k
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
210
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
140
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.6k
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.8k
Webフレームワークの ベンチマークについて
yusukebe
0
190
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Paper Plane (Part 1)
katiecoart
PRO
0
9.5k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Mobile First: as difficult as doing things right
swwweet
225
10k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
GraphQLとの向き合い方2022年版
quramy
50
15k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
300
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Code Reviewing Like a Champion
maltzj
528
40k
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!