Welcome to the Noa app repository! Built using Flutter, this repository also serves as a great example of how to build your own Frame apps.
-
Ensure you have XCode and/or Android studio correctly set up for app development
-
Install Flutter for VSCode
-
Clone this repository
git clone https://github.com/brilliantlabsAR/noa-flutter.git cd noa-flutter
-
Get the required packages
flutter pub get
-
Connect your phone and run the app in release mode
flutter run --release
Sometimes 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:
-
Delete the
ios
andandroid
foldersrm -rf android ios
-
Regenerate them
flutter create --platforms ios --org xyz.brilliant --project-name noa . flutter create --platforms android --org xyz.brilliant --project-name noa .
-
Regenerate the app icons
flutter pub run flutter_launcher_icons
-
Insert the following into
ios/Runner/Info.plist
to enable Bluetooth for iOS<dict> <key>NSBluetoothAlwaysUsageDescription</key> <string>This app always needs Bluetooth to function</string> <key>NSBluetoothPeripheralUsageDescription</key> <string>This app needs Bluetooth Peripheral to function</string> <key>NSLocationAlwaysAndWhenInUseUsageDescription</key> <string>This app always needs location and when in use to function</string> <key>NSLocationAlwaysUsageDescription</key> <string>This app always needs location to function</string> <key>NSLocationWhenInUseUsageDescription</key> <string>This app needs location when in use to function</string> <key>UIBackgroundModes</key> <array> <string>bluetooth-central</string> </array> ...
-
Insert the following into `ios/Runner/Info.plist to enable Google sign in for iOS
<dict> <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <string>com.googleusercontent.apps.178409912024-a779l8d62k0r94f8qg63bcs77j986htk</string> </array> </dict> </array> ...
- Finally, you may want to find and replace all occurrences of the string
xyz.brilliant
to your own reverse-domain bundle identifier
- Finally, you may want to find and replace all occurrences of the string