You can find Android alpha releases on our releases page. Click here to find the latest release. For the app to recognize other devices, make sure to enable Bluetooth.
+--------------------------------+
| |
| ito-app |
| |
| +----------------------------+ | +----------------+
| | | | | |
| | react-native-ito +------>+ api-backend |
| | library | | | |
| +----------------------------+ | +----------------+
+--------------------------------+
ito-app
(this repository): React Native app implementationreact-native-ito
: React Native library, which contains native code for handling bluetooth and network communication with the backend. The library is used by the app as an NPM dependency. The exact version is pinned inpackage-lock.json
.api-backend
: This is the hosted backend implementation. This is work in progress and will replace the oldbackend-sqlite
implementation, that is currently used by the app.
Take a look at the user flow on Figma. We have implemented the major part of those screen mockups.
Also try our click dummy for a quick demonstration.
Select "React Native CLI Quickstart" and your OS on Environment Setup React-Native.
Don't forget to install the npm dependencies:
npm install
This will also trigger the postinstall
script defined in package.json
, which will run:
jetify
to do an AndroidX migration for dependenciesreact-native link
to link library dependencies
To start the React Native Metro server use:
npm run start
To build the source and install use:
npm run android
To build an APK, run:
npm run build:android
The APK is generated to android/app/build/outputs/apk/release/app-release.apk
To start the React Native Metro server use:
npm run start
To build the source and install use:
npm run ios
Check out react-native-ito
and execute:
npm link
Then, go to your local checkout of ito-app
and execute:
npm link react-native-ito
This will override node_modules/react-native-ito
with a symbolic link to your local checkout of react-native-ito
. Now your local checkout of the library will appear to be an installed dependency in the node_modules
folder of the app and will be recognized as such during build.
Keep in mind, that after modifying library code, you might need to remove the build
folders (e.g. android/build
) in your react-native-ito
checkout. This will force the app project to rebuild the library.
Now you can build and start the app and it will use your locally modified library code:
npm run start
npm run android
npm run ios
Client/server communication is handled by the library, so you need to locally modify the library code (see previous section).
Check out the backend and run it locally (e.g. using docker-compose
).
Find the BASE_URL
environment variable in the code of react-native-ito-bluetooth
and change it to your local server's url.
The CI pipeline is implemented using GitHub Actions.
- Build (pull requests against
master
,master
pushes,*-android
tag pushes):- install the Android SDK
- build an APK
- Deploy (
master
pushes,*-android
tag pushes):- create a GitHub release
- Upload the APK as release asset