Building an Enterprise IntelliJ Plugin for Android Developers
Article Summary
Pierce Johnson from Lyft reveals how a custom IntelliJ plugin transformed productivity for 60+ Android developers. The secret? Automating the repetitive tasks that were quietly draining engineering velocity.
Lyft's Android team built an enterprise IntelliJ plugin to automate common development tasks and enforce best practices across their massive, heavily modularized codebase. The article walks through their entire journey: from identifying automation opportunities to building features, and solving the tricky distribution problem at scale.
Key Takeaways
- Plugin automates architecture component generation and module creation for Buck builds
- Distribution solved via shell script that auto-installs from Artifactory on every code pull
- Most engineers now use the plugin daily across 10+ features
- Team replaced Butterknife with custom XML parser that generates view bindings automatically
- Plugin accelerated Dagger 1 to Dagger 2 migration across the entire codebase
A custom IntelliJ plugin became a daily-use tool for most of Lyft's Android team by automating repetitive tasks and enforcing architectural patterns at scale.
About This Article
Lyft's Android team of 60+ developers struggled with manual code generation that often introduced errors. IntelliJ's built-in module creation didn't work for them because it relied on Gradle, but they used Buck as their build system.
Pierce Johnson's team built custom code generators using the IntelliJ SDK. These generators handled architecture components, parsed XML layouts for view bindings, and created a module creator that worked with Buck's modularized codebase.
The plugin started with one feature and grew to over ten, with contributions from multiple engineers. The Android team uses it daily, and analytics show it has improved developer velocity.