uPort mobile is a secure mobile self-sovereign identity wallet that gives you complete control over your identity and personal data.
Using uPort you can:
- Create an identity on the Ethereum blockchain network
- Securely log-in to applications without passwords
- Manage your personal information and verifications
- Sign Ethereum transactions
This mobile wallet is your connection to the uPort platform, an interoperable identity network for a secure, private, decentralized web. uPort provides open protocols for decentralized identity and interoperable messaging that enable trusted source attribution for all web communication. By allowing message recipients to trust message senders without centralized servers, we can create an entirely new framework for building applications, and many developers are already building on this system.
- Install yarn with
brew install yarnor
npm install yarn -g
- Install the latest version of Xcode
- Install React Native CLI
After cloning this repository cd into the directory
$ yarn global add react-native-cli (to install CLI) $ yarn
Linking native libraries
Linking must be done manually. Do not run
react-native link as this will mess up the exising links.
- Install Xcode version 10+
- Install Xcode command line tools
Run from Xcode
Hit Run in X-Code and it should launch on your device. Simulator use may not support all features, always run on your device whenever possible.
Run from command line
$ react-native run-ios
It's also a good idea to run
yarn every time you switch branches to sync the
- Easiest way is to install Android Studio. This will manage the android SDK for you and makes life easier for non Android devs
- Select the custom install option and select options for performance and AVD creation
- Ensure to install both the minimum SDK 21 and the latest that the current version of React Native supports from the new project settings
- Since the app uses push messaging to receive signing requests from dApps it needs to be integrated into a Firebase project.
google-services.jsonfile must be placed in the
android/app/folder. You can get it by creating a project in the firebase console
Run from Android Studio
androidsubfolder as a project in Android Studio
Do not upgrade any dependencies (gradle) if prompted by Android Studio
React native uses a packaging server to enable hot-reloading during debugging.
You'll need to run
yarn startin a terminal window in the project root folder to start the packager. This needs to be done only once for a debugging session and you can use the same server between app restarts.
With a packaging server running, you can now run the
apprunConfiguration by pressing the green play button in the tool window.
It will take a while to start the app for the first time because the packager needs to do it's job, during which you only see a splash-screen.
Run from command line
After cloning repository, running
yarn and also getting a
Run this in the project root folder
$ react-native run-android
The above command also takes care of starting the packaging server. It will take a while to start the app for the first time because the packager needs to do it's job, during which you only see a splash-screen.
npm run lint. Some style errors can be fixed automatically by running
npm run lint-fix.
Alternatively, you can install StandardJS globally with
yarn global add standard, and then for pretty output use Snazzy:
yarn global add snazzy then
standard --verbose | snazzy.
There are also a number of text editor plugins available to highlight errors during development.
We primarily use jest for unit testing. You can run all the tests once by typing:
During development it's recommended that you leave the automatic testing code running in a window.
yarn test -- --watch
Jest tests of components, actions, reducers and selectors are mostly done using Snapshotting which means that tests will fail if you make any kind of change to a component being tested.
Have a look at the diff shown if the change is what you asked for. Type
u to update the snapshot assuming you're using the automatic version of jest.
Request / response specs can be found in our specs repo.