ปัญหา
Niche calculator apps are an old, profitable corner of the Play Store: a Tip calculator, a Concrete-yardage calculator, a BAC calculator. Each one is a one-screen app with one piece of math, but each one needs its own icon, store listing, ASO keywords, ad units, IAP product, and signing keystore. Building 33 of them as 33 separate Flutter projects would mean maintaining 33 ad SDK upgrades, 33 Material 3 theme refreshes, and 33 IAP integrations every time anything in the platform shifts. We wanted one shell where every calculator is a config file plus a calculation function.
เราสร้างมันอย่างไร
- 01Built a shared shell that owns Material 3 theming (seed-colour based, light / dark, ThemeMode.system), settings, history, export, AdMob initialisation, and in_app_purchase plumbing. Each calculator drops in a config file (name, units, fields, validation) and a pure-Dart calculation function with unit tests.
- 02Wrote 33 calculators across personal-finance (Mortgage, Loan, Compound Interest, Salary, Car Loan), construction (Concrete, Paint, Tile, Carpet, Fence, Mulch, Drywall, Gravel), health (BMI, Calorie, Macro, Body Fat, Water Intake, Pregnancy, BAC, Pace), and everyday (Tip, Discount, Fuel Cost, Cooking Converter, GPA, Grade, Percentage, Age, Dog Age, Electricity Cost, Date Diff, Unit Converter). 250 of 250 unit tests passing, two full deep-audit rounds with zero bugs remaining.
- 03Wired the full ad stack — banner, interstitial, rewarded video, and native — plus a single $2.99 Pro IAP that removes ads, unlocks history, and unlocks export. Every ad widget and gate is reactive to purchase state via ValueListenableBuilder, so setPro(true) instantly hides every ad surface across the running app without a restart.
- 04Automated the per-app build: 33 configs, 33 store-listing folders, build scripts that swap icon, name, applicationId, ad unit IDs (via dart-define), and IAP product IDs at compile time. Ad mediation adapters (AppLovin MAX, Unity) are wired but commented out until the AdMob console is configured per app.
ผลลัพธ์
All 33 apps code-complete, 250 / 250 tests green, two rounds of deep audit cleared, monetisation fully wired across the fleet. Build automation produces a signed APK / app-bundle per app via the same script. The remaining work is exclusively human-only: Play Console accounts, AdMob ad-unit IDs per app, RevenueCat product setup, Firebase projects per app, and signing keystores. None of that requires touching the codebase again.
สแต็ก
Flutter 3.x · Dart · math_expressions for evaluator · google_mobile_ads for the full ad stack · in_app_purchase for the Pro IAP · Material 3 with ThemeMode.system · Firebase Analytics + Crashlytics across all apps · per-app dart-define for ad unit IDs and IAP product IDs.
ขั้นต่อไป
Submit QR Code Gen first (already store-doc complete) so the Play Console account warms up, then roll Calculator Batch through the same submission pipeline. Once the first three apps are live, flip ad mediation on and measure the eCPM uplift from AppLovin MAX + Unity bidders.
เคสสตัดดีเพิ่มเติม
- Mobile AppsMieter App
German tenant-rights companion. 8-city Mietspiegel, Mietpreischeck, Nebenkostenprüfung, PDF export.
- Mobile AppsVerein App
Offline-first DSGVO-konformer Vereinsmanager: members, fees, events, docs, announcements. Free under 25 active members.
- Mobile AppsTGA-Assistent
Guided four-Gewerk Auslegungs- und Orientierungstool für SHK-Profis. Heizung, Lüftung, Kälte, Sanitär. 258 Tests, PDF-Export, offline.