Everything is an API
summary
Argues that every module is an API so treat internal code like public contracts, showing Kotlin techniques (suspend functions, infix notation, interface delegation, factory constructors) and concrete annotations to manage risk: @RequiresOptIn, @Deprecated(replaceWith=...) and visibleForTesting/visibleForModule. Recommends Gradle build cache and Gradle Build Scan to shrink incremental build times but warns misconfiguration breaks compilation avoidance. Demonstrates coroutine library pattern exposing a minimal interface via a factory and insists small API surfaces, private implementations, and self‑documenting names reduce bugs and long‑term maintenance.
AI-written summary · about
chapters (10)
- 0:00Introduction and welcome
- 1:06What is an API
- 3:35APIs in the entire stack
- 6:03Good code and API decisions
- 10:58Code smell and naming
- 15:51Interface composition and Kotlin
- 17:16Democratizing API decisions
- 18:20Modularization and Gradle
- 21:06Annotations for risk management
- 23:33Conclusion and further reading
related talks
33mEverything is an API
42mGood APIs don't need a tutorial
47mLet's build components, not layers
41mWho Is That API For? Practical User‑Focused Techniques for Android Library Design
49mLet's make a contract: the art of designing a Java API
49mBuilding Software Better: API Lifecycle Management for Developers
01h 18mAPI design: Lessons Learned
45mYou Can, but Should You?
