# Rumo
Cross-platform Mmbile build tool for Rust based Apps — Supporting Android / iOS
## Installing
$ cargo install rumo
## Usage
# Compile your app into a APK
$ rumo build
# Load the appropriate APK onto your emulator / device
$ rumo device-install
## Android Overview
Rumo let's you build native Android apps with Rust while not having to write any Java.
The entire build process is wrapped up into a simple command.
This is achieved by embedding your rust app as a shared library within a **NativeActivity**.
A shell project is provided automatically, with your own app injected inside, then built using Gradle to produce runnable APKs.
## Getting Started (Android)
#### 1. Download Android NDK
- Create standalone toolchains for each cpu arch you wish to build for.
*(ie. arm, x86, mips)*
- Use **$ANDROID_NDK/build/tools/make_standalone_toolchain.py** to create the standalone toolchains.
#### 2. Setup your Cargo.toml
- Add a dylib section in your Cargo.toml
[lib]
crate-type = ["dylib"]
- Place a .cargo/config to specify the linkers for each CPU ABI you wish to compile for.
[target.x86_64-linux-android]
linker = "/android/standalone-x86_64/bin/x86_64-linux-android-gcc"
[target.arm-linux-androideabi]
linker = "/android/standalone-arm/bin/arm-linux-androideabi-gcc"
- Setup your **android_main()** entry point inside your app code. *(ie. Setup OpenGL context)*
See the examples for more details.
#### 3. You can now run **rumo build** which will produce Android APKs *(arm-linux-androideabi)* in your ./project/target directory.
- You can now achieve fast iterative development on the Desktop (x86) while building for mobile at the same time.
- Use cross platform toolkits (ie. glutin) which supports Android/iOS/PC