For help, read the React Native Docs and Expo Docs.
Get started by making sure that you have Node and NPM installed. At the moment, my development PC is running node v14.15.3 and NPM v6.14.9.
$ npm install
This will install the necessary packages that are needed to build the application, then npm
will grab all of the local dependencies that you will need.
The app will throw SSL errors when attempting to connect to the meters. This must be corrected before building the app. These changes must be made manually because the files that need to be modified cannot be version as they are generated at the time of adding the platform files within the app.json file.
For Android users, the property of usesClearTextTraffic is set to the value of true Android Documentation.
For iOS users, an infoPlist object is created which contains NSAppTransportSecurity and NSAllowsArbitraryLoads, the latter being set to a value of true.
NOTE When submitting the application to the Apple Store, a justification must be provided for why SSL errors are being overriden NSAppTransportSecurity documentation.
Once all dependencies have been installed run the following command in the terminal to run in a development environment
$ expo start
This will then enable 4 different runtime environments (Android via Android studio, iOS simulator via Xcode, web via default browser, and on the Expo Go app on your personal device).
For Google Play and Apple Store submission a binary build of the application is required, this will be handled through Expo using EAS Build EAS Documentation. Once installed and configured running the following commands will create a build bundle that can then be used for store submission:
Android:
$ eas build --platform android
iOS:
$ eas build --platform ios
NOTE A developer account is required for both stores in order to enable their respective consoles. See step 4 in the Expo Build Documentation
Once a binary build has been made EAS will enable submission to the Google Play Store and Apple Stores Google Play Submission Documentation Apple Submission Documentation
Within the Google Play Developer Console, internal testers can be added by selecting the Testing Tab -> Internal testing, then selecting the Testers tab. Current Testers List is declared as 'Testers Email List'. The production environment can be accessed throught the following URL (https://play.google.com/console/u/0/developers/7391268074818316253/app/4975625957599356497/tracks/production)
For testers using iOS devices, the TestFlight App TestFlight Documentation provides a production level environment prior to Apple Store Submission. Within the Apple Store Developer Console, testers can be added through the tab labeled 'Internal Testing'. A confirmation email will then be sent for access for the testing environment, when prompted for an invitation code, the tester should input the following:
'SSUDWZ9HD3'