{"id":22724468,"url":"https://github.com/brilliantlabsar/noa-flutter","last_synced_at":"2025-04-13T19:04:26.041Z","repository":{"id":237469659,"uuid":"771611229","full_name":"brilliantlabsAR/noa-flutter","owner":"brilliantlabsAR","description":"The Noa app for iOS and Android","archived":false,"fork":false,"pushed_at":"2024-05-22T14:42:07.000Z","size":4666,"stargazers_count":7,"open_issues_count":13,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-22T17:46:36.250Z","etag":null,"topics":["flutter","flutter-bluetooth"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brilliantlabsAR.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-03-13T16:07:05.000Z","updated_at":"2024-06-07T07:06:17.138Z","dependencies_parsed_at":"2024-05-08T19:32:36.429Z","dependency_job_id":"64af201e-dd40-4a17-b7bd-7f936402011a","html_url":"https://github.com/brilliantlabsAR/noa-flutter","commit_stats":null,"previous_names":["brilliantlabsar/noa-flutter"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brilliantlabsAR%2Fnoa-flutter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brilliantlabsAR%2Fnoa-flutter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brilliantlabsAR%2Fnoa-flutter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brilliantlabsAR%2Fnoa-flutter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brilliantlabsAR","download_url":"https://codeload.github.com/brilliantlabsAR/noa-flutter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229082312,"owners_count":18017251,"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":["flutter","flutter-bluetooth"],"created_at":"2024-12-10T15:06:48.422Z","updated_at":"2024-12-10T15:06:48.953Z","avatar_url":"https://github.com/brilliantlabsAR.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Noa for iOS and Android – A Flutter app for Frame\n\nWelcome to the Noa app repository! Built using Flutter, this repository also serves as a great example of how to build your own Frame apps.\n\n\u003cp style=\"text-align: center;\"\u003e\u003ca href=\"https://apps.apple.com/us/app/noa-for-frame/id6482980023\"\u003e\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/3/3c/Download_on_the_App_Store_Badge.svg\" alt=\"Apple App Store badge\" width=\"125\"/\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003ca href=\"https://play.google.com/store/apps/details?id=xyz.brilliant.noaflutter\"\u003e\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/7/78/Google_Play_Store_badge_EN.svg\" alt=\"Google Play Store badge\" width=\"125\"/\u003e\u003c/a\u003e\u003c/p\u003e\n\n![Noa screenshots](/docs/screenshots.png)\n\n## Getting started\n\n1. Ensure you have XCode and/or Android studio correctly set up for app development\n\n1. Install [Flutter](https://docs.flutter.dev/get-started/install) for VSCode\n\n1. Clone this repository\n\n    ```sh\n    git clone https://github.com/brilliantlabsAR/noa-flutter.git\n    cd noa-flutter\n    ```\n\n1. Get the required packages\n\n    ```sh\n    flutter pub get\n    ```\n\n1. Rename `.env.template` to `.env` and populate it with your own Google O-auth client IDs if desired\n\n1. Connect your phone and run the app in release mode\n\n    ```sh\n    flutter run --release\n    ```\n\n## Regenerating the platform files\n\nSometimes it may be necessary to regenerate the platform files. To do this, delete the `ios` and `android` folders, and run the following commands. Adjust for your own organization identifier accordingly:\n\n1. Delete the `ios` and `android` folders\n\n    ```sh\n    rm -rf android ios\n    ```\n\n1. Regenerate them\n\n    ```sh\n    flutter create --platforms ios --org xyz.brilliant --project-name noa .\n    flutter create --platforms android --org xyz.brilliant --project-name noa .\n    ```\n\n1. Regenerate the app icons\n\n    ```sh\n    flutter pub run flutter_launcher_icons\n    ```\n    \n1. Insert the following into `ios/Runner/Info.plist` to enable Bluetooth for iOS\n\n    ```\n    \u003cdict\u003e\n        \u003ckey\u003eNSBluetoothAlwaysUsageDescription\u003c/key\u003e\n        \u003cstring\u003eThis app always needs Bluetooth to function\u003c/string\u003e\n        \u003ckey\u003eNSBluetoothPeripheralUsageDescription\u003c/key\u003e\n        \u003cstring\u003eThis app needs Bluetooth Peripheral to function\u003c/string\u003e\n        \u003ckey\u003eNSLocationAlwaysAndWhenInUseUsageDescription\u003c/key\u003e\n        \u003cstring\u003eThis app always needs location and when in use to function\u003c/string\u003e\n        \u003ckey\u003eNSLocationAlwaysUsageDescription\u003c/key\u003e\n        \u003cstring\u003eThis app always needs location to function\u003c/string\u003e\n        \u003ckey\u003eNSLocationWhenInUseUsageDescription\u003c/key\u003e\n        \u003cstring\u003eThis app needs location when in use to function\u003c/string\u003e\n        \u003ckey\u003eUIBackgroundModes\u003c/key\u003e\n        \u003carray\u003e\n            \u003cstring\u003ebluetooth-central\u003c/string\u003e\n        \u003c/array\u003e\n        ...\n    ```\n\n1. Insert the following into `ios/Runner/Info.plist to enable Google sign in for iOS\n\n    ```\n    \u003cdict\u003e\n        \u003ckey\u003eCFBundleURLTypes\u003c/key\u003e\n        \u003carray\u003e\n            \u003cdict\u003e\n                \u003ckey\u003eCFBundleTypeRole\u003c/key\u003e\n                \u003cstring\u003eEditor\u003c/string\u003e\n                \u003ckey\u003eCFBundleURLSchemes\u003c/key\u003e\n                \u003carray\u003e\n                    \u003cstring\u003ecom.googleusercontent.apps.178409912024-a779l8d62k0r94f8qg63bcs77j986htk\u003c/string\u003e\n                \u003c/array\u003e\n            \u003c/dict\u003e\n        \u003c/array\u003e\n        ...\n    ```\n\n    1. Finally, you may want to find and replace all occurrences of the string `xyz.brilliant` to your own reverse-domain bundle identifier\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrilliantlabsar%2Fnoa-flutter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrilliantlabsar%2Fnoa-flutter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrilliantlabsar%2Fnoa-flutter/lists"}