Admin Web App
Requirements
Installation
Navigate to project root directory
Code Block cd ~/dev/docker-projects/hiv/admin-web-app
Run yarn to install node packages
Code Block yarn install
start your web client
Code Block yarn start
Patient Service
Requirements
Git version >= 2.0.0
NodeJS version >= 10.0.0 && < 15.0.0
Yarn version >= 1.20.0
JDK OpenJDK or Standard Edition version >= 8 (10 is recommended)
Configure Android environment variables
Code Block vi ~/.zshrc.local # vi ~/.bash_profile
Add the following lines
Code Block export ANDROID_HOME=$HOME/Android/Sdk export PATH=$PATH:$ANDROID_HOME/emulator export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ANDROID_HOME/platform-tools
Reload bash configuration (restart your terminal or run below command)
Code Block source ~/.zshrc.local # source ~/.bash_profile
Configure iOS environment [TODO]
Note: If you previously installed a global react-native-cli
, please remove it as it may cause unexpected issues: [sudo] npm remove -g react-native-cli
Development Setup
Clone project to your development workspace
Code Block git clone git@git.web-essentials.asia:hiv-tra-20/patient-app.git ~/dev/docker-projects/hiv/patient-app
Navigate to project root directory
Code Block cd ~/dev/docker-projects/hiv/patient-app
Run yarn to install node packages
Code Block yarn install
Configure
settings.js
Code Block cp config/ansible/roles/deploy/templates/settings.js.j2 config/settings.js
Edit file and replace/add value for:
isDebugMode =
true
// orfalse
if you want to disable redux log print outSet patient api URL
apiBaseURL
:'http://your-computer-ip:8084/api'
Set admin api URL
adminApiBaseURL
:'http://your-computer-ip:8082/api'
appVersion =
'1.0.0-local'
Start JS server with Metro Bundler
Code Block yarn start
Start your local emulator or plug with real mobile device
Android
Configure
build.gradle
Code Block cp config/ansible/roles/deploy/templates/build.gradle.j2 android/build.gradle
Edit file and replace value for:
majorApkVersion
= 1minorApkVersion
= 0patchApkVersion
= 0classifierApkVersion
= "local"
Start your local emulator or plug with real mobile device
Deploy development app to online testing device(s):
adb devices
Code Block yarn android
Note: if you have problem with missing
ndk
, please follow this instruction: Install NDK and check required version in fileandroid/build.gradle
Build released app
Android (.apk)
It is an automated build on Jenkins
, in which you can find the apk file(s) for each stage via: Download APK
iOS (.ipa)
It is manually built on Mac
, in which you can find the ipa file(s) for each stage via: Download IPA
Release Android app to Play Store
Release iOS app to App Store
Navigate to
Code Block cd ~/dev/docker-projects/hiv/patient-app/ios
Run pod install
Code Block arch -x86_64 pod install
Build the app in Xcode
Now open project folder in Xcode and then navigate to ios directory and select the file which has extension .xcworkspace.
Click on General tab and navigate to identity and update the version.
It is time to archive the project so before an archive the project makes sure you have selected Generic iOS device in the top left corner of your window once you have done then navigate to
Product → Archive
once the app is successfully archived you will automatically get redirected to the Xcode Organizer window.Once the app is successfully archived you will see a list of apps with the version in Xcode Organizer select this app click on the Distribute App.
You will see methods of distribution select
iOS App Store
and click on next.You will see two method
Upload
orExport
as we are going to upload app so select upload and click to next.You will see two more options which are by default selected leave them as it is and click to next.
Once you clicked next it will take little time to identify your certificates and after that, you will see little details of your app which we are going to upload on the app store.
Now click
Upload
to upload your app on App Store, and it will take a little time to upload the app on app store. Once the app is an uploaded click on done and now it is time to login to App store.Once your app is uploaded on test flight after that login to your app store account and click
My Apps
and navigate toYour app → Test Flight
and here you will see your app with processing tag.Once the processing is complete then you will see a warning icon like mentioned in image click on this icon and click again on
Provide Export Compliance Information
.Now a pop up will appear which will ask you about
Export Compliance Information
in our case we did not have any encryption features so selectNo
and click onStart Internal Testing
and the app is going to be available on testing mode. You can test the app with test flight app available on App store and to test this app you need to add testers for this particular app on your App store account after that you can test your app.
Note: Go to
config → setting.js
and switch settings based on stage release.
Code check styles ESLint
We inherited code styles base from react native community
Overall check styles
Code Block yarn lint
Check style for specific file
Code Block yarn eslint /path/to/file/HomeTab.js
Useful commands
Android
...
Check connected authorized or unauthorized device(s)
Code Block |
---|
adb devices |
Uninstall Android debug app from device(s)
...
Child pages (Children Display) |
---|