I made a CLI that finds hidden problems in iOS/mobile repos. Looking for feedback

This tool i've built for myself and i've been using it for some time in company where i work. Want to share it with the community.

A tool called mobile-repo-doctor. It is a CLI and also a GitHub Action. It scans your repo and runs about 130 checks for iOS, Android, Flutter and KMP. It gives you a health score (size / speed / stability / hygiene) and makes reports in HTML, JSON or Markdown(optimized for AI).

Some iOS checks:

  • - ios-missing-shared-scheme — CI can't build a scheme it can't see
  • - ios-background-mode-missing-usage — you declared a capability but there is no usage text
  • - dependency version drift in an SPM monorepo
  • - and more

A few honest things:

- The package is not minified. If you worry about malware, you can read the code yourself, or give it to an AI to check. It is all plain JS.

- It makes only one network call — it asks npm if there is a new version. That's it. No telemetry. Nothing about your repo leaves your machine.

- It understands monorepos. It will not spam you with false positives from Pods/, forked packages or plugin host projects.

Install:

npm install -g mobile-repo-doctor

Run:

mrd scan ./path/to/repo

I would like to know which checks are useful and which are just noise. Also, what hidden bugs have hurt you before? Maybe I can add a check for them.

npm: mobile-repo-doctor

Documentation & full check reference

reddit.com
u/Impossible_Ad_5982 — 3 days ago

I built a free tool that checks your Android repo for Gradle, config and store problems — runs fully offline

Hi everyone 👋

I made a small command-line tool called Mobile Repo Doctor. You run it on your project and it gives you a health report in a few seconds. It works for Android, KMP, Flutter and iOS.

I made it because I kept doing the same mistakes. I forgot to bump targetSdk and Play rejected my build. I left old ProGuard rules that did nothing. I shipped assets I didn't use. So I put all these checks in one tool.

Some things it finds for Android:

  • - targetSdk too low → Google Play will reject your upload. The tool knows the current required level. It also reads the value from a version catalog (libs.versions...).
  • - ProGuard/R8 problems — a -keep rule that keeps everything (so shrinking does nothing), too many -dontwarn, or minify is on but there is no rules file.
  • - Manifest problems — like requestLegacyExternalStorage and other flags that can hurt you later.
  • - Gradle mess between modules — different Gradle wrapper versions, the same library with two versions, or different Java versions.
  • - Hardcoded secrets (API keys, tokens) — the values are hidden in the report. It does not flag google-services.json, because that file is public anyway.
  • - Unused assets, big images, WebP candidates, and more.

It has 120+ checks and gives you a score (0–100) for size, speed, stability and hygiene.

How to use it:

npm install -g mobile-repo-doctor
cd path/to/myAndroidProject
mrd scan ./

Reports: HTML (a nice dashboard), JSON, and Markdown. The Markdown one is good for AI — you can paste it into an LLM and ask it to fix the problems. There is also a GitHub Action.

Privacy: it runs 100% on your machine. No account, no upload. Your code never leaves your computer. It's free.

I would love your feedback — what checks are missing, what is annoying, what gives false alarms. Thanks 🙏

npm: mobile-repo-doctor

Documentation & full check reference

reddit.com
u/Impossible_Ad_5982 — 4 days ago

I built a free tool that checks your Flutter repo for size, config and store problems — runs fully offline

Hi everyone 👋

I made a small command-line tool called Mobile Repo Doctor. You point it at your project and it gives you a health report in a few seconds. It works for Flutter, Android, iOS and KMP.

I built it because I kept making the same mistakes: forgetting to bump targetSdk until Play rejected the build, shipping unused assets, leaving broken .arb files. So I put all those checks in one place.

Some things it finds for Flutter:

  • - targetSdk too low → Google Play will reject the upload (it knows the current required level)
  • - Bitmap images hidden as base64 inside your SVG or Lottie files — they make the bundle big and slow, and kill the point of using a vector
  • - git:/path: dependencies (and it does not false-flag your monorepo ../package links)
  • - Localization problems in .arb files: missing keys, extra keys, placeholder mismatch, broken JSON
  • - Unused assets, oversized images, heavy SVGs
  • - Hardcoded secrets (API keys, tokens) — values are hidden in the report

It has 110+ checks in total and gives you a score (0–100) per area: size, speed, stability, hygiene.

How to use it:

npm install -g mobile-repo-doctor
cd path/to/myFlutterProject
mrd scan ./

Reports: HTML (a clean dashboard), JSON, and Markdown. The Markdown one is made for AI — you can paste it into an LLM and ask it to fix the issues. There is also a GitHub Action.

Privacy: it runs 100% on your machine. No account, no upload, your code never leaves your computer. It's free.

I'd really like your feedback — what checks are missing, what is annoying, what gives false alarms. Thanks 🙏

npm: mobile-repo-doctor

Documentation & full check reference

reddit.com
u/Impossible_Ad_5982 — 4 days ago

I built a free tool that checks your Flutter repo for size, config and store problems — runs fully offline

Hi everyone 👋

I made a small command-line tool called Mobile Repo Doctor. You point it at your project and it gives you a health report in a few seconds. It works for Flutter, Android, iOS and KMP.

I built it because I kept making the same mistakes: forgetting to bump targetSdk until Play rejected the build, shipping unused assets, leaving broken .arb files. So I put all those checks in one place.

Some things it finds for Flutter:

  • - targetSdk too low → Google Play will reject the upload (it knows the current required level)
  • - Bitmap images hidden as base64 inside your SVG or Lottie files — they make the bundle big and slow, and kill the point of using a vector
  • - git:/path: dependencies (and it does not false-flag your monorepo ../package links)
  • - Localization problems in .arb files: missing keys, extra keys, placeholder mismatch, broken JSON
  • - Unused assets, oversized images, heavy SVGs
  • - Hardcoded secrets (API keys, tokens) — values are hidden in the report

It has 110+ checks in total and gives you a score (0–100) per area: size, speed, stability, hygiene.

How to use it:

npm install -g mobile-repo-doctor
cd path/to/myFlutterProject
mrd scan ./

Reports: HTML (a clean dashboard), JSON, and Markdown. The Markdown one is made for AI — you can paste it into an LLM and ask it to fix the issues. There is also a GitHub Action.

Privacy: it runs 100% on your machine. No account, no upload, your code never leaves your computer. It's free.

I'd really like your feedback — what checks are missing, what is annoying, what gives false alarms. Thanks 🙏

npm: mobile-repo-doctor

Documentation & full check reference

reddit.com
u/Impossible_Ad_5982 — 7 days ago

I made a package for golden tests across themes, locales and devices — golden_matrix

Hi everyone 👋

I want to share a small package I made: golden_matrix.

Here is the problem I had. Golden tests in Flutter check one case. But I wanted to check my widgets in light and dark theme, in different languages, on small and big phones. So I wrote a lot of for loops and copy-pasted the same setup again and again. It was boring and easy to make mistakes.

So I made golden_matrix. You write one declaration, and it makes all the combinations for you.

void main() {
  matrixGolden(
    'PrimaryButton',
    scenarios: [
      MatrixScenario('default', builder: () => const PrimaryButton(label: 'OK')),
      MatrixScenario('disabled', builder: () => const PrimaryButton(label: 'OK', enabled: false)),
    ],
    axes: MatrixAxes(
      themes: [MatrixTheme.light, MatrixTheme.dark],
      locales: [Locale('en'), Locale('ar')],
      textScales: [1.0, 2.0],
      devices: [MatrixDevice.phoneSmall, MatrixDevice.phoneLarge],
    ),
  );
  // one declaration -> all combinations, one PNG each
}

Some things it does:

- Themes × locales × devices × text scales, all combinations from one place

- Sampling (smoke / pairwise) so CI does not run thousands of cases

- HTML report with diff images when a test fails

- Tells you about old golden files that are not used anymore

- RTL is automatic for Arabic, Hebrew, etc.

- No extra dependencies, only the Flutter SDK

It is on pub.dev: https://pub.dev/packages/golden_matrix

Docs: https://mavoryl.github.io/golden_matrix/

It is still young, so any feedback helps. Thanks! 🙏

u/Impossible_Ad_5982 — 11 days ago

Single module vs multi-module vs multiple repos — what do you use in real projects?

I’m interested in how people structure their projects in real life.

Do you keep everything in one module, use a multi-module setup in one repo, or split modules/features into different repositories?

I can see some pros and cons for each approach:

  • single module is simple, but may become messy
  • multi-module in one repo feels cleaner, but can add complexity
  • multiple repos may be good for ownership and reuse, but probably makes local development and cross-module changes harder

What setup do you use in your current project?

reddit.com
u/Impossible_Ad_5982 — 12 days ago