Simplifying Android Module Creation: Enter the Module Maker Plugin

Search for a command to run...

No comments yet. Be the first to comment.
I've been a professional software developer in the mobile space for around 15 years now. I started in the Android 2.1 / Eclipse / Ant days and iOS Objective-C days pre-ARC on Xcode 4 (if memory servic

Intro I recently learned about friendPaths as part of the Kotlin Gradle Plugin while browsing an Android Slack group. From the documentation on friendPaths: "Paths to the output directories of the friend modules whose internal declarations should be ...

If you've ever tried to compare the behavior of Row in Google's Jetpack Compose, HStack in Apple's SwiftUi, and something like display: flex in the web world, you'll see some interesting results. First, let's take a look at how HStack renders two lon...

Said another way, how to supercharge your development workflow with a debug drawer. As Android developers, we're constantly looking for ways to streamline our workflow. One often-overlooked tool that

As Jetpack Compose becomes more widely used across Android (and Multiplatform projects!), detecting regressions via tooling becomes more important to shift left and detect regressions earlier in the d

We've all been there. It's another day in the Android Studio jungle, and you're tasked with creating a new module for your project. As you fire up the built-in New Module wizard in Android Studio, you're hit with a sense of dread. Isn't there a better way?
While the default New Module wizard does its job, it often falls short when aligning with specific project standards. It doesn't allow for much customization, leading to tedious and time-consuming manual adjustments. But, fret not! There's a new player in town, ready to streamline your module creation - introducing the Module Maker plugin.
The Module Maker plugin for Android Studio is an IntelliJ / Android Studio plugin for those looking to tailor their new modules to their project-specific standards. The plugin extends beyond the limitations of Android Studio's built-in tools, allowing for a more streamlined and customizable module creation experience.
Let's take a look at some of the unique features that make this plugin a must-have in your development toolkit.
3 Module Creation Structure: Following the structure highlighted in this talk from Ralf Wondratschek at Square, the plugin allows you to create three modules at a time with customizable names. By default, the three module structure is composed of an API, Glue, and Impl module, helping you maintain cleaner and more manageable codebases.
Kotlin and Groovy Build Files: You can choose to have build files for each module generated as either Kotlin or Groovy. This flexibility ensures you can stick with your preferred language and keep your project's standards consistent.
Customizable Build File Names: Either stick with the default name ( build.gradle or build.gradle.kts ) or have your build file name follow the module. Tailoring the build file names to the module can help streamline the identification process and improve project organization.
Optional README and .gitignore Files: Upon creating your modules, the plugin can generate an optional README and .gitignore file, helping you jumpstart your module documentation and version control settings.
Android or JVM Only Module: Whether your module is meant for Android or just JVM, the plugin has got you covered.
Package Structure Specification: Specify your package structure and have the folders created directly on the filesystem, eliminating the need for manual creation and organization.
Automatic Settings Update and Sync: Once your new modules are ready, the plugin automatically adds them to your settings.gradle(.kts) file and syncs your project, sparing you the hassle of manual updates and syncs.
The Module Maker plugin understands that every project is unique, and therefore, it offers a robust settings page where you can specify a range of options to suit your project's specific needs. You can:
Specify different Android and JVM build file templates.
Define different API, Glue, and Impl build file templates.
Customize API, Glue, and Impl module names.
Specify a custom .gitignore template.
Specify a default package name to persist across usages of the plugin
In the dynamic landscape of Android development, maintaining a consistent and efficient project structure can often be challenging. The built-in New Module wizard, while helpful, may not always align with your project's specific standards. This is where the Module Maker plugin comes in - designed as a practical solution to enhance your module creation process.
With a wide range of features, from allowing a 3-module creation structure to offering customization options for your build files, the Module Maker plugin equips you with the tools to tailor your project to your preferences. Its ability to generate optional README and .gitignore files, automatic project sync, and customizable settings, all work towards a more streamlined and personalized Android project setup.
As the author of the Module Maker plugin, I aimed to provide a tool that could simplify and adapt to the unique needs of each Android project. I hope you find this plugin helpful and that it can assist in enhancing your workflow, saving time, and maintaining project consistency. After all, development should be more about solving complex problems and less about wrestling with project setup and organization.
Github - https://github.com/j-roskopf/ModuleMakerPlugin
Plugin - https://plugins.jetbrains.com/plugin/21724-module-maker