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
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
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
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
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! 🙏
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?