Skip to content

Latest commit

 

History

History
101 lines (70 loc) · 3.14 KB

File metadata and controls

101 lines (70 loc) · 3.14 KB

GPUI Mobile

Mobile platform layer for GPUI — run Rust UI apps natively on iOS and Android.

Build & Test

Overview

Implements the gpui::Platform trait for mobile targets, following the same architecture as Zed's desktop platform crates.

Platform Renderer Text
iOS Metal via wgpu CoreText
Android Vulkan/GL via wgpu cosmic-text + swash

Highlights: GPU-accelerated rendering, touch input with momentum scrolling, keyboard support, safe area insets, dark mode, and emoji rendering.

Quick Start

Prerequisites

  • Rust 1.75+
  • iOS: macOS + Xcode 15+, XcodeGen (brew install xcodegen)
  • Android: Android SDK + NDK r25+, cargo-ndk (cargo install cargo-ndk)

Build & Run

cd example

# iOS
./build.sh ios --device        # or --simulator
./build.sh ios --device --release

# Android
./build.sh android --device    # or --emulator
./build.sh android --device --release

Manual Build

# iOS
rustup target add aarch64-apple-ios
cd example && cargo build --target aarch64-apple-ios
cd ios && xcodegen generate --spec project.yml
xcodebuild -project GpuiExample.xcodeproj -scheme GpuiExample build

# Android
rustup target add aarch64-linux-android
cd example
cargo ndk -t arm64-v8a -P 31 -o android/gradle/app/src/main/jniLibs build
cd android/gradle && ./gradlew assembleDebug

Platform Support

Platform Status Min Version GPU Backend
iOS (device + sim) iOS 13.0+ Metal
Android (arm64) API 26+ Vulkan (preferred), GL ES 3.0
Android (armv7/x86_64) ⚠️ Untested API 26+ Vulkan / GL ES

Screenshots

Running on a Motorola Edge 50 Pro (Android, Vulkan):

Home Counter Settings About
Home Counter Settings About

A demo video is available at screenshots/demo.mp4.

Example App

The example app includes screens for Home, Counter, About, Settings, Components (Apple Glass + Material Design), Animations, and Shaders.

Contributing

  1. Fork & create a feature branch
  2. Ensure all targets compile:
    cargo check
    cargo check --target aarch64-apple-ios
    cargo check --target aarch64-linux-android
    cargo test
    cargo fmt --all
  3. Open a Pull Request

License

Licensed under any one of:

Acknowledgements

Zed Industries (GPUI framework) · wgpu · cosmic-text · swash · Google Noto Fonts