{"id":18785279,"url":"https://github.com/andreped/ironflow","last_synced_at":"2025-10-27T03:03:33.846Z","repository":{"id":249248390,"uuid":"828495536","full_name":"andreped/IronFlow","owner":"andreped","description":"📳 IronFlow: Cross-platform mobile app for strength training progress tracking","archived":false,"fork":false,"pushed_at":"2025-03-29T14:29:39.000Z","size":7454,"stargazers_count":14,"open_issues_count":22,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T05:36:27.208Z","etag":null,"topics":["android","apk","database","fitness","healthcare","ios","ipa","iron-flow","ironflow","sqlite","strength","strength-lifting","tracking","tracking-data"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreped.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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}},"created_at":"2024-07-14T10:27:57.000Z","updated_at":"2025-03-29T14:29:42.000Z","dependencies_parsed_at":"2024-07-19T16:34:41.535Z","dependency_job_id":"2586ba35-d52a-4420-b35e-bba823229b2c","html_url":"https://github.com/andreped/IronFlow","commit_stats":null,"previous_names":["andreped/ironflow"],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreped%2FIronFlow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreped%2FIronFlow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreped%2FIronFlow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreped%2FIronFlow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreped","download_url":"https://codeload.github.com/andreped/IronFlow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248714736,"owners_count":21149958,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["android","apk","database","fitness","healthcare","ios","ipa","iron-flow","ironflow","sqlite","strength","strength-lifting","tracking","tracking-data"],"created_at":"2024-11-07T20:46:08.309Z","updated_at":"2025-10-27T03:03:28.815Z","avatar_url":"https://github.com/andreped.png","language":"Dart","readme":"\u003cp align=\"center\" width=\"100%\"\u003e\n\u003cimg src=\"assets/icon/wave_app_icon_transparent.png\" width=\"30%\" height=\"30%\"\u003e\n\u003ch1 align=\"center\"\u003eIronFlow\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eCross-platform mobile app for strength training progress tracking.\u003c/h3\u003e\n\n\u003ch3 align=\"center\"\u003e \n\n[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![GitHub Downloads](https://img.shields.io/github/downloads/andreped/IronFlow/total?label=GitHub%20downloads\u0026logo=github)](https://github.com/andreped/IronFlow/releases)\n![CI](https://github.com/andreped/IronFlow/workflows/Build%20APK/badge.svg)\n![CI](https://github.com/andreped/IronFlow/workflows/Build%20IPA/badge.svg)\n![CI](https://github.com/andreped/IronFlow/workflows/Linting/badge.svg)\n\u003c/h3\u003e\n\n**IronFlow** was developed to allow free, private, and seemless tracking of training progress and activities.\n\u003c/div\u003e\n\n\u003cimg src=\"assets/showcase/mobile_app_mosaic.png\" width=\"100%\" height=\"100%\"\u003e \n\n## [Features](https://github.com/andreped/IronFlow#Features)\n\nThe app is compatible with both Android and iOS.\n\n- [x] Ability to save individual exercises with weight and number of reps and sets.\n- [x] All data is stored in a private SQLite database on the device.\n- [x] Ability to add new exercises.\n- [x] Database with all new exercises and sessions are preserved when upgrading app.\n- [x] Tab to see current max weight lifted for each recorded exercise.\n- [x] Summary tab showing exercise details for any given day.\n- [x] Ability to change days in summary tab to see history.\n- [x] Visualize individual weight lifted for each exercise over time.\n- [x] Ability to inspect and edit all exercise runs from a table tab.\n- [x] Notification when new weight record is saved.\n- [x] Defined large set of predefined exercises to avoid needing to add new exercises manually.\n- [x] Set or add new exercise in log tab now only shows 5 items in dropdown and is scrollable.\n- [x] Faster exercise logging using previously stored data for given exercise as prefilled values.\n- [x] Database clear button now has two-step dialog to safeguard data from accidental deletion.\n- [x] Max weight notification takes into account max weight lifted AND number of reps.\n\n## [Continuous Integration](https://github.com/andreped/IronFlow#Continuous-Integration)\n\n| Build Type | Status |\n| - | - |\n| **Build APK** | ![CI](https://github.com/andreped/IronFlow/workflows/Build%20APK/badge.svg) |\n| **Build IPA** | ![CI](https://github.com/andreped/IronFlow/workflows/Build%20IPA/badge.svg) |\n| **Create Release** | ![CI](https://github.com/andreped/IronFlow/workflows/Create%20Release/badge.svg) |\n| **Integration tests** | ![CI](https://github.com/andreped/IronFlow/workflows/Integration%20Tests/badge.svg) |\n| **Linting** | ![CI](https://github.com/andreped/IronFlow/workflows/Linting/badge.svg) |\n\n## [Integration Tests](https://github.com/andreped/IronFlow#Integration-Tests)\n\nFor testing the application, we use [Maestro](https://github.com/mobile-dev-inc/maestro).\nIntegration tests are performed for all pull requests and before releases using [GitHub Actions](https://github.com/andreped/IronFlow/actions/workflows/integration_tests.yml).\n\nTo run integration tests, run the command:\n```bash\nmaestro test .maestro/integration_tests.yml\n```\n\n## [Getting Started](https://github.com/andreped/IronFlow#Getting-Started)\n\nA cross-platform mobile app was developed to test the produced solutions. Installers for both\nAndroid (.apk) and iOS (.ipa) were developed. To install the app, a different approach is required\non Android and iOS.\n\n## [Android](https://github.com/andreped/IronFlow#Android)\n\n1. On the mobile device (e.g., Samsung), go to Settings \u003e About phone \u003e Software information \u003e Click the `Build number` 5 times. Then say `yes` to enable developer mode.\n2. On the mobile device, download the APK from [releases](https://github.com/andreped/IronFlow/releases).\n3. Go to Files \u003e Downloads and click the downloaded file. After uncompression click the `*.apk` file.\n4. You should get prompted _\"Unsafe app blocked\"_. Click on `More details` and press `Install anyways`.\n\nThen simply use the app as you would with any other Android app.\n\n## [iOS](https://github.com/andreped/IronFlow#iOS)\n\n1. Connect the mobile device (e.g., iPhone) to a desktop device (e.g., macbook) with USB cable.\n2. On the desktop device, download the IPA from [releases](https://github.com/andreped/IronFlow/releases).\n3. On the desktop device, go to `Finder`, and then unlock the mobile device. The phone should then be accessbile from the left-hand side in Finder, and click on it.\n4. On the desktop device, open a new `Finder` window, go to `Downloads` and uncompress the downloaded file. Drag-and-drop the `.ipa` file over the iPhone Finder window.\n5. After a few seconds, the mobile app should then be installed (you can see the progress on both the mobile device and in the Finder mobile app window).\n6. On the mobile device, to allow the app to be used, go to `General` \u003e `VPN \u0026 Device Management` and click on the app and `Allow`.\n\nThen simply use the app as you would with any other iOS app.\n\n## [License](https://github.com/andreped/IronFlow#license)\n\nThis project has [MIT License](https://github.com/andreped/IronFlow/blob/main/LICENSE).\n\n## [Acknowledgements](https://github.com/andreped/IronFlow#Acknowledgements)\n\nI want to acknowledge [Scarlet](https://usescarlet.com) for providing me a free service to\nsign my IPA which allows me to support iOS.\n\nUsing [Maestro](https://maestro.mobile.dev) has allowed us to implement integration tests with ease!\nEspecially, Maestro studio which provided a user-friendly, no-code interface to create test flows.\n\nTo reduce development time and get experience with Copilots, \nthis Flutter application was heavily assisted by [OpenAI's ChatGPT](https://chatgpt.com),\nprimarily using `GPT-4o-mini`.\n\nFor visualizations, I have used [freepik](https://www.freepik.com/).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreped%2Fironflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreped%2Fironflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreped%2Fironflow/lists"}