# Embassy App Only Android right now, under heavy development #### Requirements Install `nodejs v18` #### Installation ```bash yarn ``` #### Add circuit build Go to this [repo](https://github.com/0xturboblitz/circom-embassy) and build the circuit. Then, place `passport.r1cs` and `passport.wasm` in ark-circom-passport/passport/ #### Build native lib In /script, run: ``` ./build_rust.sh ``` This will build the libhalo2_circom_passport.so lib and copy it to the desired place to be used by the app. The config used is in android/react-native-passport-reader/android/build.gradle. You can go there to change the profile (`debug` or `release`) You'll potentially need to set the rust-toolchain rust version as global default. Example: ``` rustup default 1.67.0 ``` And install the targets like this: ``` rustup target add aarch64-linux-android ``` To run the server: ``` yarn start ``` Then press `a` for android or `i` for iOS This is a new [**React Native**](https://reactnative.dev) project, bootstrapped using [`@react-native-community/cli`](https://github.com/react-native-community/cli). # Getting Started >**Note**: Make sure you have completed the [React Native - Environment Setup](https://reactnative.dev/docs/environment-setup) instructions till "Creating a new application" step, before proceeding. ## Step 1: Start the Metro Server First, you will need to start **Metro**, the JavaScript _bundler_ that ships _with_ React Native. To start Metro, run the following command from the _root_ of your React Native project: ```bash # using npm npm start # OR using Yarn yarn start ``` ## Step 2: Start your Application Let Metro Bundler run in its _own_ terminal. Open a _new_ terminal from the _root_ of your React Native project. Run the following command to start your _Android_ or _iOS_ app: ### For Android ```bash # using npm npm run android # OR using Yarn yarn android ``` ### For iOS ```bash # using npm npm run ios # OR using Yarn yarn ios ``` If everything is set up _correctly_, you should see your new app running in your _Android Emulator_ or _iOS Simulator_ shortly provided you have set up your emulator/simulator correctly. This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively. ## Step 3: Modifying your App Now that you have successfully run the app, let's modify it. 1. Open `App.tsx` in your text editor of choice and edit some lines. 2. For **Android**: Press the R key twice or select **"Reload"** from the **Developer Menu** (Ctrl + M (on Window and Linux) or Cmd ⌘ + M (on macOS)) to see your changes! For **iOS**: Hit Cmd ⌘ + R in your iOS Simulator to reload the app and see your changes! ## Congratulations! :tada: You've successfully run and modified your React Native App. :partying_face: ### Now what? - If you want to add this new React Native code to an existing application, check out the [Integration guide](https://reactnative.dev/docs/integration-with-existing-apps). - If you're curious to learn more about React Native, check out the [Introduction to React Native](https://reactnative.dev/docs/getting-started). # Troubleshooting If you can't get this to work, see the [Troubleshooting](https://reactnative.dev/docs/troubleshooting) page. # Learn More To learn more about React Native, take a look at the following resources: - [React Native Website](https://reactnative.dev) - learn more about React Native. - [Getting Started](https://reactnative.dev/docs/environment-setup) - an **overview** of React Native and how setup your environment. - [Learn the Basics](https://reactnative.dev/docs/getting-started) - a **guided tour** of the React Native **basics**. - [Blog](https://reactnative.dev/blog) - read the latest official React Native **Blog** posts. - [`@facebook/react-native`](https://github.com/facebook/react-native) - the Open Source; GitHub **repository** for React Native.