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
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
73
Mastering GitHub Actions: Automate and Supercharge Your Development Workflow
kibet
0
74
Build Configurations: types, variants and flavors.
kibet
0
62
Opportunities in Tech
kibet
0
83
Introduction To Android Development
kibet
0
52
Other Decks in Programming
See All in Programming
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
170
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
2.8k
CSC307 Lecture 08
javiergs
PRO
0
690
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
340
Geminiの機能を調べ尽くしてみた
naruyoshimi
0
190
JPUG勉強会 OSSデータベースの内部構造を理解しよう
oga5
2
220
株式会社 Sun terras カンパニーデック
sunterras
0
1.9k
CopilotKit + AG-UIを学ぶ
nearme_tech
PRO
1
110
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
3
420
NOT A HOTEL - 建築や人と融合し、自由を創り出すソフトウェア
not_a_hokuts
2
480
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.6k
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
110
Featured
See All Featured
Writing Fast Ruby
sferik
630
62k
How GitHub (no longer) Works
holman
316
140k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
280
A better future with KSS
kneath
240
18k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Test your architecture with Archunit
thirion
1
2.2k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
170
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
エンジニアに許された特別な時間の終わり
watany
106
230k
GraphQLの誤解/rethinking-graphql
sonatard
75
11k
My Coaching Mixtape
mlcsv
0
63
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!