This mobile application is based on the react-native framework to provide an Android and iOS implementation of the QRL wallet.
The mobile-wallet apps are still under heavy development. Please be aware that frequent changes will occur to this repository.
To generate the iOS libraries you need to clone the theQRL/qrllib and build the *.a iOS libraries (for the simulator and real device) using Xcode.
git clone https://github.com/theQRL/qrllib
git submodule update --init --recursive
cd qrllib
mkdir build
cd build
cmake -G Xcode ..
These commands will generate a new Xcode project called qrllib.xcodeproj. Open the Xcode project and build the 4 different libraries (dilithium, kyber, qrllib and shasha) for the iOS simulator and "iOS generic device". You will see all the generated libraries under build/Debug-iphoneos and build/Debug-iphonesimulator directories.
To generate the Android libraries you need to load the /android project folder in Android Studio and open the build-gradle file. Open the "Gradle menu" and double click on "android:app [externalNativeBuildDebug]" under the "Run Configurations" category to start building the libraries. The generated *.so libraries are located under android/app/build/intermediates/cmake/debug/obj/.
In case of any change on the proto file, one needs to regenerate the gRPC pods
rm -rf Pods
rm Podfile.lock
pod install
For more information about the communication between React-Native and native code (Objective-C and c++) check the original Communication between native and React Native documentation.