{"id":22610460,"url":"https://github.com/specure/ont-flutter-app","last_synced_at":"2025-06-23T19:35:40.484Z","repository":{"id":161588188,"uuid":"633865845","full_name":"specure/ont-flutter-app","owner":"specure","description":"Source code of Open Nettest mobile application for iOS and Android","archived":false,"fork":false,"pushed_at":"2025-03-20T11:01:01.000Z","size":2001,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T23:13:17.045Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://nettest.com","language":"Dart","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/specure.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":"2023-04-28T13:12:05.000Z","updated_at":"2025-03-20T11:01:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"6b446d67-4ab2-4007-8efb-50e3becb2a06","html_url":"https://github.com/specure/ont-flutter-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/specure/ont-flutter-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specure%2Font-flutter-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specure%2Font-flutter-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specure%2Font-flutter-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specure%2Font-flutter-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/specure","download_url":"https://codeload.github.com/specure/ont-flutter-app/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/specure%2Font-flutter-app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261543872,"owners_count":23174825,"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":[],"created_at":"2024-12-08T16:07:00.281Z","updated_at":"2025-06-23T19:35:40.450Z","avatar_url":"https://github.com/specure.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Open Nettest for iOS and Android\n\n## Setup\n\n1. Create `.env` file from `example.env` with your unique values.\n\n2. Get a secret token from https://account.mapbox.com/access-tokens/, then set it as `MAPBOX_DOWNLOADS_TOKEN` in your `gradle.properties` file (https://docs.mapbox.com/android/maps/guides/install/) and add it to a `~/.netrc` file (https://docs.mapbox.com/ios/maps/guides/install/).\n\n3. Add your Google Services' configs to the `android` and `ios` folders\n```\n    /ios/Runner/GoogleService-Info.plist\n    /android/app/google-services.json\n```\nThose folders contain `.example` files, provided by https://github.com/firebase/quickstart-android and https://github.com/firebase/quickstart-ios, which can help you get the project quickly up and running.\n\n4. Configure your flavor's images and settings in the config folder. See `config/.nt` for examples.\n\n5. Init submodules in the `plugins` folder\n```\n    git submodule update --init\n```\n\n6. Run\n```\n    flutter pub get\n```\n\n9. To be able to build for Android, create a signing key in Android Studio (https://developer.android.com/studio/publish/app-signing#generate-key), then add a `key.properties` file to the `android` folder with contents like this:\n```\n    storePassword=\u003cpassword_from_your_key_file\u003e\n    keyPassword=\u003cpassword_from_your_key_file\u003e\n    keyAlias=\u003calias_from_your_key_file\u003e\n    storeFile=\u003cfull_path_to_you_key_file\u003e\n```\nThe folder contains `keystore.example` and `key.properties.example` for quick start already. Don't forget to change the `storeFile` path inside `key.properties.example` to the absolute one.\n\n10. To be able to create release builds for iOS, make sure, after configuing the flavor and its package name in XCode, to let it download your provisioning profiles from the AppStore.\n\n## Running\n\n1. To set up app icons, run\n```\n    flutter pub run flutter_launcher_icons:main -f config/\u003cYOUR_FLAVOR_SUFFIX\u003e/flutter_launcher_icons.yaml\n```\nIf you use VSCode, those can be set in advance in `tasks.json`.\n\n2. To set up splash screens, run\n```\n    flutter pub run flutter_native_splash:create --path config/\u003cYOUR_FLAVOR_SUFFIX\u003e/flutter_native_splash.yaml\n```\nIf you use VSCode, those can be set in advance in `tasks.json`.\n\n3. To run the app use\n```\n    flutter run\n```\nwith the following parameters:\n\n* `--dart-define=DEFINE_APP_SUFFIX=\u003cYOUR_FLAVOR_SUFFIX\u003e`, e.g. `.nt`. The suffix will be used to differentiate the flavor you build, e.g. in the package name, server communication, flavor configuration.\n* `--dart-define=\"DEFINE_APP_NAME=\u003cYOU_APP_NAME\u003e`.\n* `--dart-define=DEFINE_CONTROL_SERVER_URL=\u003cYOUR_CONTROL_SERVER_URL\u003e`, including protocol, host, and port. The control server provides a list of measurement servers, registers measurements and stores their results.\n* `--dart-define=DEFINE_CMS_SERVER_URL=\u003cYOUR_CMS_SERVER_URL\u003e`, including protocol, host, and port. The CMS contains texts and their translations, decides which features enable or disable for certain flavors.\n* `--dart-define=DEFINE_WEBPAGE_URL=\u003cYOUR_WEBPAGE_URL\u003e`, including protocol, host, and port. This URL will be used as default for all the paths that require opening the web view.\n\nIf you use VSCode, those can be set in advance in `launch.json`.\n\n## Troubleshooting\n\n* Error building for iOS: `error: No profiles for 'com.example.nettest.nt' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.example.nettest.nt'`\n    Solution: open `ios/Runner.xcworkspace` and let it to download profiles.\n\n* Error when deploying to TestFlight: `exportArchive: No profiles for 'com.example.nettest.nt' were found`.\n    Solution: open and validate `build/ios/archive/Runner.xcarchive`.\n\n* Error when running tests: `The following FormatException was thrown while resolving an image:...`\n    Solution: run `flutter clean`, `flutter pub get`, `flutter pub run build_runner build`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspecure%2Font-flutter-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspecure%2Font-flutter-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspecure%2Font-flutter-app/lists"}