~/talk

Writing your own Gradle Plugin: A Deep Dive

Talkat droidcon New York 2024 · 2024-09-19..09-20· [android]
links:none on file
slides:none on file

Recommends using compileOnly imports for plugin dependencies plus a solid test suite (Dependency Analysis plugin cited), avoids hardcoded task names and cross-project task peeking, and prefers Gradle's file‑based task wiring over always using dependsOn. Explains configurations and variant attributes (use the implementation configuration carefully), notes Gradle 8.4 adds clearer APIs, and shows how artifact transforms (extracting classes.jar from AAR) let a JVM test tool like Paparazzi consume Android artifacts so Compose tests work off the JVM.

AI-written summary · about

  1. 0:00Gradle plugin introduction
  2. 1:06Gradle plugin setup
  3. 2:08Android convention plugins
  4. 3:56Config in convention plugins
  5. 4:59Subplugins for convention
  6. 6:24Cross-project pitfalls
  7. 7:27Declarative Gradle benefits
  8. 8:31Task wiring in plugins
  9. 10:16Task dependency rules
  10. 12:22Anti-patterns in task deps
  11. 13:23Gradle configurations
  12. 15:54Dependency declarations
  13. 16:55How deps resolve
  14. 18:19Exposing artifacts
  15. 20:04Gradle variants
  16. 21:52Consumer configurations
  17. 22:34Matching variants
  18. 24:17Diagnosing variant errors
  19. 25:19Android to JVM modules
  20. 27:24Plugin walkthrough
  21. 28:47Producer/consumer tasks
  22. 31:56Aggregating subproject outputs
  23. 32:57Tasks across hierarchy
  24. 34:20Refactor to implementation
  25. 36:05Artifact views filter
  26. 37:50Self-dependency handling
  27. 38:55Extensible plugin design
  28. 39:18Consolidate build logic
  29. 39:59Plugin author best practices
  30. 40:40Learning resources
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.