Prerequisites
Before cloning the repository, make sure the following tools are installed and available on yourPATH.
Verify your Flutter setup at any time with:
Build from Source
1
Clone the repository
Clone the Xolo API Hub repository from GitHub and enter the project directory:
2
Install dependencies
Fetch all Dart and Flutter packages declared in This resolves Riverpod, Drift, Dio, go_router, and all other dependencies into the local
pubspec.yaml:.dart_tool cache.3
Run code generation (Drift)
Xolo uses Drift for reactive SQLite persistence. Drift requires generated code (The
*.g.dart files) that is not committed to the repository. You must run build_runner before the app will compile:--delete-conflicting-outputs flag automatically resolves stale generated files from a previous run. Re-run this command any time you modify a Drift table definition or add a new @DriftDatabase class.4
Run on Android
Connect a physical Android device via USB (with USB Debugging enabled) or start an Android emulator, then launch the app:Flutter detects the connected device automatically. If multiple devices are attached, add
-d <device-id> to target a specific one.5
Run on iOS
iOS builds require macOS with Xcode installed. First install CocoaPods dependencies, then run the app:On the first run, Xcode may prompt you to set a development team in the project signing settings. Open
ios/Runner.xcworkspace in Xcode and set your Apple Developer Team under Signing & Capabilities.Build Release APK
To produce an unsigned release APK — the same artifact published to GitHub Releases by CI — run:.github/workflows/release.yml, which uploads this exact file as the GitHub Release asset whenever a v* tag is pushed.
Environment Variables / App Config
Xolo does not use a.env file or any external secrets file. All application-level configuration is defined directly in:
flutter_secure_storage at runtime and are never written to the source tree.
Running Tests
Xolo enforces a 100% coverage gate in CI, excluding generated*.g.dart files, Drift schema tables, and localisation files. Run the full test suite locally with coverage reporting:
coverage/lcov.info. Use genhtml (from the lcov package) to render an HTML report: