The official mobile app of the University of Illinois. Powered by the Rokwire Platform.
Flutter v3.24.0
Android Studio 2021.3.1+
xCode 15.2
CocoaPods 1.15.0+
git clone --recurse-submodules https://github.com/rokwire/illinois-app.git
Rokwire app flutter plugin is used by the Illinois app. It should be located in the plugin
subdirectory of the application's root project directory. If it does not exist you need to clone it manually.
cd illinois-app.git
git clone https://github.com/rokwire/app-flutter-plugin.git plugin
Rokwire app libs directory is used by the Illinois app for private external libraries. It should be located in the libs
subdirectory of the application's root project directory. If it does not exist you need to clone it manually.
cd illinois-app
git clone https://github.com/rokwire/illinois-app-libs.git libs
If font_awesome_flutter
pro repo is not available then use the regular font_awesome_flutter
plugin. Comment the lines in pubspec.yaml:
# font_awesome_flutter: '>= 4.7.0' # comment if published plugin is used
...
# dependency_overrides:
# font_awesome_flutter:
# path: plugin/plugins/font_awesome_flutter
For more details, please see app-flutter-plugin
's README.md
file.
Obsolete, not used after version 2.0 inclusive.
Obsolete, not used after version 2.0 inclusive.
JSON data with the following format:
{
"key":"...",
"iv":"..."
}
key
and iv
fields contain strings that are base64 encoded randomly generated 16-bytes AES128 key and IV. These keys are used for decryption of assets/configs.json.enc
from the application assets as well as for the decryption of secretKeys
enctypted string in app config.
- JSON data with the following format:
{
"production": {
"config_url": "https://api.rokwire.illinois.edu/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX"
},
"dev": {
"config_url": "https://api-dev.rokwire.illinois.edu/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX"
},
"test": {
"config_url": "https://api-test.rokwire.illinois.edu/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX"
}
}
- For versions prior to 3.0:
- Generate random 16-bytes AES128 key.
- AES encrypt the JSON string, CBC mode, PKCS7 padding, using the AES.
- Create a data blob that contains the AES key at the beginning followed by the encrypted data.
- Get a base64 encoded string of the data blob and save it as
assets/configs.json.enc
.
Alternatively, you can use AESCrypt.encode from /lib/utils/Crypt.dart to generate content of assets/configs.json.enc
.
- For versions after 3.0 inclusive:
- AES encrypt the JSON string, CBC mode, PKCS7 padding, using the key and IV from
assets/config.keys.json
. - Get a base64 encoded string of the encryption result and save it as
assets/configs.json.enc
.
- AES encrypt the JSON string, CBC mode, PKCS7 padding, using the key and IV from
The Firebase configuration file for iOS generated from Google Firebase console.
Contains:
- GoogleMaps API key for the Illinois flavor.
- Origo configuration specific keys and ids.
googleMapsApiKey=XXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXX
origoAppId=XXXXXXXXXXXXXXXXX
origoLockServiceCode=X
origoAidFilter1=XXXXXXXXXXXXXXXXXXXX
origoAidFilter2=XXXXXXXXXXXXXXXXXXXXXXXXXX
The Firebase configuration file for Android generated from Google Firebase console.
$ sh ./scripts/prebuild_illinois.sh
$ flutter build apk --no-tree-shake-icons --flavor IllinoisProd -t lib/mainProd.dart
$ flutter build apk --no-tree-shake-icons --flavor IllinoisDev -t lib/mainDev.dart
$ flutter build apk --no-tree-shake-icons --flavor IllinoisTst -t lib/mainTest.dart
$ flutter build ios --no-tree-shake-icons --flavor IllinoisProd -t lib/mainProd.dart
$ flutter build ios --no-tree-shake-icons --flavor IllinoisDev -t lib/mainDev.dart
$ flutter build ios --no-tree-shake-icons --flavor IllinoisTst -t lib/mainTest.dart
NB: Product environments: Prod/Dev/Test
--flavor IllinoisProd -t lib/mainProd.dart
--flavor IllinoisDev -t lib/mainDev.dart
--flavor IllinoisTst -t lib/mainTest.dart
NB: For versions prior to 4.2 you may omit the no-tree-shake-icons
build parameter.
NB: You may need to update singing & capabilities content for Runner project by opening ios/Runner.xcworkspace
from xCode