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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
95
Building Cross- Platform Applications with Kotlin Multiplatform
kibet
0
48
Crafting Custom Lint Rules: Elevating Android Code Quality
kibet
0
96
Mastering GitHub Actions: Automate and Supercharge Your Development Workflow
kibet
0
92
Build Configurations: types, variants and flavors.
kibet
0
76
Opportunities in Tech
kibet
0
91
Introduction To Android Development
kibet
0
67
Other Decks in Programming
See All in Programming
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
280
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
190
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
160
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
210
数百円から始めるRuby電子工作
tarosay
0
120
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
420
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
230
yield再入門 #phpcon
o0h
PRO
0
840
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.8k
その節約、円になってますか?
isamumumu
0
590
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
500
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
260
Featured
See All Featured
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
510
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
450
How to Think Like a Performance Engineer
csswizardry
28
2.7k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
45k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Building Adaptive Systems
keathley
44
3.1k
GraphQLとの向き合い方2022年版
quramy
50
15k
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!