Files
aliasvault/docs/misc/dev/mobile-app-development.md
2025-04-25 17:39:50 +02:00

1.5 KiB

layout, title, parent, grand_parent, nav_order
layout title parent grand_parent nav_order
default Mobile App Development Development Miscellaneous 9

React Native Expo

MacOS:

Install watchman

brew install watchman

Run iOS on Simulator:

npx expo run:ios

Install OpenJDK for Android dev:

brew install openjdk@17

# Add to path
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk

# Test if Java works on CLI
java --version

Make sure NDK is installed:

  1. Open Android Studio.
  2. Go to: Preferences > Appearance & Behavior > System Settings > Android SDK > SDK Tools tab.
  3. Check NDK (Side by side).
  4. Click Apply or OK to install it.

If getting node errors in Android studio, close and re-open Android Studio from CLI via:

open -a "Android Studio"

Unit tests

TODO: improve documentation further.

The iOS project contains unit tests that test the VaultStore native Swift implementation. The VaultStore logic is responsible for handling vault encryption/decryption, contains the SQLite client and acts as a proxy for all local queries etc.

In order to test this query logic behavior the tests contain a static encrypted client vault (SQLite database) that is provided to the tests.

This static encrypted database can be (re)generated by running the src/Tests/AliasVault.E2ETests/Tests/Extensions/TestVaultGeneratorTests.cs in the .NET solution. This E2E test generates a deterministic vault and saves it to a local temporary file. This file can then be used as the input for these unittests.