utm-dev#

A build tool for cross-platform hybrid applications using Go and Gio UI.

Write your app in Go, deploy it to macOS, iOS, Android, and Windows from a single codebase. Combine native Gio UI controls with native webviews for hybrid apps.

What utm-dev Does#

  • Builds Gio applications for macOS, iOS, Android, and Windows
  • Bundles signed app packages for distribution (macOS code signing, Android APK signing)
  • Manages SDKs (Android SDK, NDK) with automated install and caching
  • Generates icons for all platforms from a single source image
  • Packages apps into distribution archives (tar.gz, zip)
# Build a hybrid app for macOS
utm-dev build macos examples/hybrid-dashboard

# Build for Android
utm-dev build android examples/hybrid-dashboard

# Create a signed macOS bundle
utm-dev bundle macos examples/hybrid-dashboard

# Generate platform icons
utm-dev icons examples/hybrid-dashboard

The Hybrid App Architecture#

utm-dev enables apps that combine native Gio UI (Go-based controls, navigation, layout) with native webviews (WKWebView on macOS/iOS, Chromium WebView on Android, WebView2 on Windows):

+-------------------------------------+
|     Your App (Pure Go)              |
|                                     |
|  +-----------------------------+   |
|  |  Gio UI (Native Controls)   |   |
|  |  Tabs, buttons, layout      |   |
|  +-----------------------------+   |
|                                     |
|  +-----------------------------+   |
|  |  Native WebView             |   |
|  |  HTML/CSS/JavaScript        |   |
|  |  Platform web engine        |   |
|  +-----------------------------+   |
+-------------------------------------+

One codebase -> macOS, iOS, Android, Windows

This is for apps where you want native performance and native platform integration, but also want to render rich web content. Think: a Go desktop app that embeds a dashboard, a mobile app with web-based settings pages, or a native shell around your existing web app.

Guides#

For Users#

  • Quick Start – Install utm-dev, build your first app
  • Platform Support – What works on each platform, requirements, known limitations
  • Packaging – Build, bundle, and package apps for distribution
  • Webviewer Shell – Run any website as a desktop app with zero coding

For Developers#

  • Architecture – How utm-dev works, webview analysis, project structure
  • CI/CD – GitHub Actions integration for automated builds
  • AI Collaboration – Guides for AI assistants working on this project

Examples#

The examples/ directory contains working apps:

ExampleDescriptionKey Feature
hybrid-dashboardGio UI + webview hybrid appRecommended starting point
gio-plugin-webviewerMulti-tab webview browserFull webview API demo / Webviewer Shell
gio-basicSimple Gio UIGio without webview
gio-plugin-hyperlinkSystem browser linksOpen URLs in default browser

Screenshots#

macOSiOS Simulator
macOSiOS
macOS App StoremacOS Retina
macOS StandardmacOS Retina

Requirements#

  • Go 1.24+
  • macOS, Linux, or Windows host
  • Platform SDKs for cross-platform builds (Android SDK/NDK, Xcode)