Powering Modularization at Airbnb: Plugin Architecture
Software Engineer (Android)
Adell is an Android engineer at Airbnb on the Native Infrastructure team.
At Airbnb we prize modularization for helping us to drive code ownership and decrease build times. Unfortunately, these benefits also bring increased complexity and boilerplate. Our Plugin architecture which, using an annotation processor and Dagger's multibindings, allows us to reduce those costs and capture some additional benefits. Some of these are: a single source of truth for a plugin/plugin point; abstracting away Dagger gotchas; adding our own compile-time enforcements; and getting some additional value out of the IDE (eg find usages for all plugins contributing to a plugin point). We introduced the architecture in our 2018 vision and implemented it this year, 2019. This talk will go over the benefits, listed above, and how the tooling works.