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
78
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
120
Building Cross- Platform Applications with Kotlin Multiplatform
kibet
0
60
Crafting Custom Lint Rules: Elevating Android Code Quality
kibet
0
110
Mastering GitHub Actions: Automate and Supercharge Your Development Workflow
kibet
0
110
Build Configurations: types, variants and flavors.
kibet
0
83
Opportunities in Tech
kibet
0
100
Introduction To Android Development
kibet
0
78
Other Decks in Programming
See All in Programming
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
1
300
Agents on Rails - Rails at Scale 2026
irinanazarova
0
560
Jetpack Compose Mechanisms
skydoves
3
820
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
すこし踏み込む CancellationToken
htkym
2
1.7k
Workers Cache を知る
syumai
0
370
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.1k
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
32k
sbt 2.0: takeoff
eed3si9n
0
160
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.2k
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
440
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
350
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
970
Everyday Curiosity
cassininazir
0
350
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
Site-Speed That Sticks
csswizardry
13
1.6k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
Music & Morning Musume
bryan
48
7.4k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
Exploring anti-patterns in Rails
aemeredith
4
540
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
930
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.2k
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!