All Projects → ito-org → ito-app

ito-org / ito-app

Licence: GPL-3.0 license
A privacy-first contact tracing app

Programming Languages

typescript
32286 projects
java
68154 projects - #9 most used programming language
objective c
16641 projects - #2 most used programming language
ruby
36898 projects - #4 most used programming language
javascript
184084 projects - #8 most used programming language
Starlark
911 projects
shell
77523 projects

Projects that are alternatives of or similar to ito-app

Coronavirus Diary
Ethically sourcing data for the fight against disease.
Stars: ✭ 127 (+154%)
Mutual labels:  mobile-app, health
open-source-cure-for-cancer
Using AI to figure out cancer
Stars: ✭ 45 (-10%)
Mutual labels:  health
react-native-single-select
Customizable & Easy to Use Single Select Library for React Native
Stars: ✭ 74 (+48%)
Mutual labels:  mobile-app
cht-android
A native Android container for Community Health Toolkit (CHT) applications
Stars: ✭ 21 (-58%)
Mutual labels:  health
mangosta-android
MongooseIM client for Android
Stars: ✭ 31 (-38%)
Mutual labels:  mobile-app
nightnight
nightnight is a simple program that puts your website to sleep, encouraging users to sleep to promote their health and well being.
Stars: ✭ 57 (+14%)
Mutual labels:  health
print4health
print4health.org
Stars: ✭ 11 (-78%)
Mutual labels:  wirvsvirushack
timer-machine-android
⏲ A highly customizable interval timer app for Android
Stars: ✭ 32 (-36%)
Mutual labels:  mobile-app
health-go
A golang implementation of the upcoming IETF RFC Health Check Response Format for HTTP APIs
Stars: ✭ 31 (-38%)
Mutual labels:  health
Android-daily-read-tips
log for articles and info in android for every developer
Stars: ✭ 13 (-74%)
Mutual labels:  mobile-app
mesan-react-native-authentication-app
A React Native app with authentication including Register, Login, Username, Forgot Password and Update Profile using React Hooks and React Context API.
Stars: ✭ 35 (-30%)
Mutual labels:  mobile-app
covid19cuba-app
Mobile application of Covid19 Cuba Data project implemented with Flutter
Stars: ✭ 41 (-18%)
Mutual labels:  mobile-app
corona landkreis fallzahlen scraping
Scraping Germany's local districts websites for newer corona-case-numbers!
Stars: ✭ 17 (-66%)
Mutual labels:  wirvsvirushack
nomdebebe
A simple, private tool to help pick a baby name.
Stars: ✭ 254 (+408%)
Mutual labels:  mobile-app
Tasky
Tasky is a task management app made with SwiftUI.
Stars: ✭ 22 (-56%)
Mutual labels:  mobile-app
Auraglyph
Auraglyph is an infinite modular musical sketchpad.
Stars: ✭ 62 (+24%)
Mutual labels:  mobile-app
Flutter-BabyStepsQuiz
A Flutter Quiz App.
Stars: ✭ 21 (-58%)
Mutual labels:  mobile-app
open
The most boring open source you've ever seen ....
Stars: ✭ 109 (+118%)
Mutual labels:  health
UCThello
UCThello - a board game demonstrator (Othello variant) with computer AI using Monte Carlo Tree Search (MCTS) with UCB (Upper Confidence Bounds) applied to trees (UCT in short)
Stars: ✭ 26 (-48%)
Mutual labels:  mobile-app
react-native-football
React Native Premier League Football App ⚽ 👟🏆🏅
Stars: ✭ 61 (+22%)
Mutual labels:  mobile-app

ito React Native App

Android Build Android Downloads License

Try it out

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.

Architecture

+--------------------------------+
|                                |
|            ito-app             |
|                                |
| +----------------------------+ |     +----------------+
| |                            | |     |                |
| |      react-native-ito      +------>+   api-backend  |
| |          library           | |     |                |
| +----------------------------+ |     +----------------+
+--------------------------------+
  • ito-app (this repository): React Native app implementation
  • react-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 in package-lock.json.
  • api-backend: This is the hosted backend implementation. This is work in progress and will replace the old backend-sqlite implementation, that is currently used by the app.

Development

User flow

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.

Android

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:

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

iOS

To start the React Native Metro server use:

npm run start

To build the source and install use:

npm run ios

Run the app with a locally modified library

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

Wire the app to a different server

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.

Release process

The CI pipeline is implemented using GitHub Actions.

Android

  • Build (pull requests against master, master pushes, *-android tag pushes):
    • install the Android SDK
    • build an APK
  • Deploy (master pushes, *-android tag pushes):

iOS

Not yet implemented

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].