Standalone diagnostic app for validating device-to-device communication and image processing pipelines between mobile and Zelara Core.
Bundle ID: ai.zelara.testing
React Native: 0.76.6 (New Architecture)
- Live Counter — sends an incrementing value to Zelara Core every second over WebSocket
- Progress Sync — request an immediate push of Core's current progress state
- Image Processing Test — capture a photo, send to Core, display the color-inverted result
- QR Pairing — scan Core's pairing QR to establish a TLS WebSocket link
- BLE Auto-Discovery — reconnects automatically when Core is on the same local network
- Node.js 20+
- JDK 17
- Android SDK (API 33+) with
adbon yourPATH - A physical Android device or emulator connected via USB with USB debugging enabled
The easiest way — no build toolchain needed.
- Download
testing-android-apk.zip(orapp-release.apk) from the latest release. - Install directly to your device:
adb install app-release.apkgit clone --recurse-submodules https://github.com/zelara-ai/core.git
cd core/apps/testing-mobileOr if you already have the repo:
git submodule update --init apps/testing-mobile
cd apps/testing-mobilenpm install --legacy-peer-depsPlug in your Android device via USB and verify it is visible:
adb devicesMetro runs on port 8081. Forward it from your device to your machine:
adb reverse tcp:8081 tcp:8081Re-run this after every USB reconnect or device reboot.
In a dedicated terminal, keep this running for the duration of development:
npx react-native startIn a second terminal:
npx react-native run-androidThis compiles the debug APK, installs it via adb, and launches the app. Metro hot-reload is active while the bundler is running.
Use this to produce the same APK as CI without pushing a tag.
cd android
./gradlew assembleReleaseOutput: android/app/build/outputs/apk/release/app-release.apk
adb install app/build/outputs/apk/release/app-release.apkThe release build does not use Metro — no bundler or port forwarding needed.
Part of the Zelara monorepo (apps/testing-mobile/). Shared TypeScript packages live in src/packages/ and are resolved by Metro via watchFolders:
@zelara/shared— common types@zelara/device-linking— WebSocket/TLS connection primitives@zelara/state— local state management
Requires Zelara Core running on desktop for AI and sync features.