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
76
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
50
Crafting Custom Lint Rules: Elevating Android Code Quality
kibet
0
110
Mastering GitHub Actions: Automate and Supercharge Your Development Workflow
kibet
0
98
Build Configurations: types, variants and flavors.
kibet
0
81
Opportunities in Tech
kibet
0
97
Introduction To Android Development
kibet
0
73
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
160
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
250
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
720
Java 27新機能 / Java 27 new features
kishida
2
150
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
140
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
280
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
560
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
130
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
350
アクセシビリティから考える情報設計
high_g_engineer
0
380
Jetpack Compose メカニズム
skydoves
0
440
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
4
510
The Cost Of JavaScript in 2023
addyosmani
55
10k
Git: the NoSQL Database
bkeepers
PRO
432
67k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
470
Test your architecture with Archunit
thirion
2
2.4k
Agile that works and the tools we love
rasmusluckow
331
22k
We Have a Design System, Now What?
morganepeng
55
8.3k
KATA
mclloyd
PRO
35
15k
The Cult of Friendly URLs
andyhume
79
7k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
450
HDC tutorial
michielstock
2
870
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!