Lyft Pierce Johnson Jul 20, 2021

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

Critical Insight

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.

The distribution strategy is surprisingly clever (and doesn't require the JetBrains marketplace at all).

About This Article

Problem

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.

Solution

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.

Impact

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.