{"id":42102825,"url":"https://github.com/valentinopalomba/frtmtools","last_synced_at":"2026-01-26T13:02:34.805Z","repository":{"id":313318611,"uuid":"1050422545","full_name":"ValentinoPalomba/FRTMTools","owner":"ValentinoPalomba","description":"FRTMTools is a MacOS Application that lets you run analysis on IPA and APK/AAB","archived":false,"fork":false,"pushed_at":"2026-01-21T09:15:57.000Z","size":5273,"stargazers_count":28,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-21T21:11:35.785Z","etag":null,"topics":["analysis","android","android-application","ios","ios-app","macos"],"latest_commit_sha":null,"homepage":"https://frtmtools.lovable.app","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ValentinoPalomba.png","metadata":{"files":{"readme":"README.md","changelog":"changefile.yml","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-04T12:11:26.000Z","updated_at":"2026-01-21T09:16:41.000Z","dependencies_parsed_at":"2025-09-05T09:33:06.067Z","dependency_job_id":"9cd3ca7b-4a93-4bc1-b2cd-6ffe09c9babf","html_url":"https://github.com/ValentinoPalomba/FRTMTools","commit_stats":null,"previous_names":["valentinopalomba/frtmtools"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/ValentinoPalomba/FRTMTools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ValentinoPalomba%2FFRTMTools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ValentinoPalomba%2FFRTMTools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ValentinoPalomba%2FFRTMTools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ValentinoPalomba%2FFRTMTools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ValentinoPalomba","download_url":"https://codeload.github.com/ValentinoPalomba/FRTMTools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ValentinoPalomba%2FFRTMTools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28778728,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T11:46:04.308Z","status":"ssl_error","status_checked_at":"2026-01-26T11:46:02.664Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analysis","android","android-application","ios","ios-app","macos"],"created_at":"2026-01-26T13:00:54.034Z","updated_at":"2026-01-26T13:02:34.782Z","avatar_url":"https://github.com/ValentinoPalomba.png","language":"Swift","funding_links":["https://www.buymeacoffee.com/fratm"],"categories":[],"sub_categories":[],"readme":"# FRTMTools\n\nA desktop + CLI toolkit for dissecting mobile application bundles. Feed it an IPA, APK,\nor AAB and you’ll get instant visibility into binaries, resources, dependencies, and\nsecurity posture—with actionable tips on how to slim everything down.\n\n## Highlights\n\n- **Cross-platform bundle analysis** – A single scan surfaces IPA internals (Mach-O\n  binaries, frameworks, bundles) and Android specifics (Dex vs native libs, manifest\n  components, permissions).\n- **Binary stripping insights** – Every Mach-O discovered during the scan is checked for\n  debug symbols. Unstripped binaries are listed with per-file savings in both the app and\n  the generated HTML dashboards.\n- **Unused asset hunter** – Scans your bundle for orphaned images, sounds, and localized\n  files, helping you delete the dead weight before shipping.\n- **Dead code scanner** – Integrates a Periphery-based pass to highlight Swift symbols\n  that are compiled but never used.\n- **Bad word scanner** – Looks inside binaries/resources to ensure profanity or banned\n  strings don’t slip into production builds.\n- **Side-by-side comparisons** – Compare two builds to understand size deltas per file\n  or category before publishing.\n- **Optimization tips** – The `TipGenerator` catches duplicate assets, oversized\n  resources, ATS exceptions, dangerous permissions, and more.\n- **Beautiful SwiftUI dashboards** – Interactive charts, dependency graphs, manifest\n  insights, and summary cards for both iOS and Android packages.\n- **Full-featured CLI** – Automate scans inside CI using the same analyzer core as the\n  macOS app. The CLI generates the same interactive HTML dashboards.\n\n## Screenshots\n\n| IPA Analysis | Compare View | Asset Hunter |\n| --- | --- | --- |\n| ![IPA Analysis](.github/Resources/AnalysisViiew.png) | ![Compare View](.github/Resources/CompareView.png) | ![Unused Asset Hunter](.github/Resources/UnusedAsset.png) |\n\n## Repository Layout\n\n```\nSources/Analyzers/AppAnalyzer/\n├─ Core/            # Analyzer engines (IPA/APK/shared)\n├─ Components/      # SwiftUI building blocks (Shared, IPA, APK)\n├─ Screens/         # Feature-level views grouped by platform\n├─ ViewModels/      # Shared + platform-specific view models\n├─ Support/         # Protocols/utilities shared by the UI\n└─ SubAnalyzer/     # Lower-level analyzers (BinaryAnalyzer, etc.)\n```\n\n## Documentation\n\n- [Analyzer details](Docs/Analyzers.md)\n- [CLI usage](Docs/CLI.md)\n\n## Installing the CLI\n\n```bash\nbrew tap valentinopalomba/frtmtools\nbrew install frtmtools\n```\n\nRun `frtmtools --help` for the command list or see [Docs/CLI.md](Docs/CLI.md) for more\noptions.\n\nTip: run `frtmtools serve` to start a local, interactive dashboard in your browser with\npersistent history.\n\n## Development Notes\n\n- **Language stack** – Swift + SwiftUI, Combine, and a few helper frameworks (Periphery,\n  ForceSimulation, etc.).\n- **Project organization** – Shared SwiftUI components live under `Components/`, while\n  platform-specific screens and view models stay in `Screens/IPA`, `Screens/APK`, and\n  `ViewModels/IPA`, `ViewModels/APK` respectively.\n- **Tips engine** – `TipGenerator` consumes the analyzer output to produce both UI\n  warnings and CLI messages. Any new analyzer signal should be exposed through this class\n  so it automatically flows everywhere.\n\n## Contributing\n\nWe welcome pull requests! Open an issue if you spot a bug or want to propose a feature.\nKeep PRs focused, include tests or sample reports when relevant, and follow the existing\nSwift style.\n\n## Support the Project\n\n[![Buy Me A Coffee](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/fratm)\n\nCrafted with ❤️ for the iOS \u0026 Android developer community.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalentinopalomba%2Ffrtmtools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvalentinopalomba%2Ffrtmtools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalentinopalomba%2Ffrtmtools/lists"}