A complete guide to a scalable app in Flutter — Part 6— Adding Flavors and setting up CI/CD for automatic testing and distribution to the app stores

Giovanni Accetta
14 min readDec 27, 2023

Welcome back, fellow developers! I’m thrilled to have you join me on this continued exploration of building a scalable Flutter application. Your support and engagement through the earlier parts have been incredible and motivated me to keep writing.

In our previous installments, we’ve delved into the intricacies of Flutter’s architecture, dynamic theming with Material 3, and complex navigation using go_router. Today, we’re embarking on a new chapter — introducing flavors and automating development workflows.

What’s in Store for Part 6?

In this article, we’re extending our scope to address a crucial aspect of app development — environment-specific configurations. We’ll introduce two distinct flavors to our project: a DEV flavor for development and a PROD flavor for production. Beyond that, we’ll use GitHub workflows to set up our CI/CD pipelines.

Our workflows will focus on automating tests and managing Android and iOS signing with Fastlane, to then automating distribution to the app stores’ test channels. The goal is to streamline your development process, making it efficient, robust, and ready for the complexities of real-world app deployment.

--

--

Giovanni Accetta

Senior Mobile Developer 🧑‍💻 and freelancer 🚀 with 360 experience on mobile apps lifecycle 📱! Always happy to talk tech 💻, photography 📷 and travel ✈️!