Developer quickstart to install dependencies, run the app on different platforms, and produce release builds.
Use HTTPS:
git clone https://github.com/EnforcerHuman/TrackMe.git
cd trackme- Flutter SDK (Stable channel). Install via
https://docs.flutter.dev/get-started/installand add it to PATH. - Dart comes with Flutter.
- At least one target platform toolchain:
- Android: Android Studio + SDK + device/emulator, enable USB debugging
- iOS (macOS only): Xcode + CocoaPods
Verify the environment:
flutter doctor -v- Clone/open this repository (root:
trackme). - Fetch packages:
flutter pub get- Choose a device (emulator, simulator, browser, or desktop) and run:
flutter runIf you have multiple devices, list them and pick one:
flutter devices
flutter run -d <device_id>- Start an Android emulator from Android Studio (AVD) or connect a device with USB debugging.
- First run:
flutter run -d androidCreate a release APK:
flutter build apk --releaseApp bundle (for Play Store):
flutter build appbundle --release- Run
flutter clean && flutter pub getif builds behave unexpectedly. - For Android SDK issues, open Android Studio > SDK Manager and ensure required SDKs/platform-tools are installed.
Note: Due to system constraints, iOS setup is not included. Please run and test using the Android build. On macOS, you can later add iOS by opening ios/ in Xcode and configuring signing.
Access pre-release Android builds here: Firebase App Distribution invite link
Join as a tester
- Share your Google account email with the maintainer to be added as a tester.
- Accept the invitation sent to your email.
- Open the invite link above and sign in with the same Google account.
Install the build (Android)
- On the page, download the latest available APK.
- If prompted with "Install blocked", enable installs from unknown sources for your browser or Files app:
- Settings > Apps > Special app access > Install unknown apps > choose your app (e.g., Chrome/Files) > Allow
- Open the downloaded APK and install.
- For updates, revisit the same link and install the newer build (uninstall old build if signatures differ).
Troubleshooting
- Not authorized: ensure your Google account email has been added as a tester and you accepted the invite.
- 404 or link expired: ask the maintainer for a fresh invite link.
- Install blocked: enable "Install unknown apps" as noted above.
lib/main.dart: Application entrypointlib/core/: Base configurations (theme, routing, constants, dependency setup)lib/services/: Platform services (location, permissions, API client)lib/presentation/: UI screens, widgets, and state managementlib/data/(if used): Models, repositories, data sourcesassets/: Images, fonts, and other static assetsandroid/: Native Android project and build configurationios/: Native iOS project (not configured here)test/: Unit and widget tests
Features :
- Location tracking with local persistence
- Fetch and display users from a remote API
- Material 3 UI with centralized theming
- Error handling for Flutter and platform errors
- Modular architecture with providers, repositories, and use cases
- Launch the app on Android (
flutter run -d android). - Grant location permissions when prompted.
- Home screen loads with two core capabilities:
- Location tracking: starts/stops via the
LocationNotifierusingTrackLocationUseCase, persisting updates viaLocationRepositoryImplandLocationLocalDataSource(Hive). - Users list: fetched via
UserNotifierusingGetUsersUseCase, backed byUserRepositoryImplandUserRemoteDataSourceusingApiClient.
- Location tracking: starts/stops via the
- Leave the app running to continue tracking as designed by the Home screen controls.
- Troubleshoot by checking logs for error messages surfaced by global error handlers.