Skip to content
farhadcodes
All posts

· 1 min read

Shipping Flutter to enterprise clients without a CI budget

Flavors, signed builds and a one-command release script get you most of the reliability of a full pipeline, for the price of an afternoon.

Plenty of enterprise mobile work happens without a CI pipeline: a small team, a client-owned signing key, and a deadline. You can still make releases boring.

Flavors before anything else

Separate build flavors for development, staging and production — with distinct application IDs — mean a tester can hold all three on one device, and nobody ever asks which environment a build points at. This is the single highest-leverage thing to set up on day one.

One script, no memory

Every manual release step is a step that gets skipped at 11pm. Put version bumping, the build command, the signing and the artefact naming into one script that takes a flavor and produces a named, dated artefact. The goal is that nobody needs to remember anything.

Crash reporting is not optional

Without CI you lose the safety net of automated test runs on every push, so you compensate at the other end: crash reporting wired in from the first release, with the build number visible in every report. Knowing which build broke is most of the debugging.

Written by Md. Farhad Hossen, Senior Flutter Developer in Dhaka. Say hello.

Keep reading

More posts

View all