OXYGENHUB
# 0a2858c0dad3 +7 oxygenhub-android / README.md
1.5 KiB · Markdown · last changed Set the project up properly (closes #1) 13 days ago renderedsource blame history raw
1
# 📱 OxygenHub Android
2
3
[![flow].flow/stamp].flow/run
4
5
![Status: Planning]https://img.shields.io/badge/Status-Planning-blue
6
![Platform: Android]https://img.shields.io/badge/Platform-Android-green
7
![CI: Flow]https://img.shields.io/badge/CI-Flow-blue
8
9
The official native Android client for OxygenHub, designed for modern devices and fully optimized for foldables like the Pixel 10 Pro Fold. 
10
11
Built with **Kotlin**, **Jetpack Compose**, and deep **Rust interop** (via `uniffi-rs`) to execute native `oxy` commands directly on your device.
12
13
---
14
15
## ✨ Features
16
* 🧬 **Commutative History:** Native visualization of the change graph.
17
* 🔀 **Offline-First Conflicts:** Resolve conflicts on the go; they're just data.
18
* 🌊 **Job Flow Control:** Orchestrate OxygenFlow CI/CD pipelines right from your phone.
19
20
## 🛠️ Setup
21
22
1. Clone the repository with `oxy clone`, and fetch the pinned Oxygen
23
   sources: `oxy submodule update --init` (rust-core builds over `oxygen/`).
24
2. Install the Android SDK with an NDK (Android Studio's SDK manager), and
25
   point `local.properties` at it (`sdk.dir=…`) or set `ANDROID_HOME`.
26
3. Install the Rust side: `cargo install cargo-ndk` and
27
   `rustup target add aarch64-linux-android x86_64-linux-android`.
28
4. Build and test; the build compiles rust-core for arm64-v8a and x86_64
29
   and generates its Kotlin bindings itself:
30
   ```bash
31
   ./gradlew :app:assembleDebug :app:testDebugUnitTest
32
   ```
33
34
## 🏗️ CI/CD
35
36
We dogfood **OxygenFlow** for our builds. 
37
The pipeline is defined in `.flow/pipeline.kdl`.