# golang/mobile

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/golang-mobile).**

6,127 stars · 815 forks · Go · bsd-3-clause

## Links

- GitHub: https://github.com/golang/mobile
- Homepage: https://golang.org/x/mobile
- awesome-repositories: https://awesome-repositories.com/repository/golang-mobile.md

## Description

The Go Mobile project is a framework and toolchain that enables Go developers to build native mobile applications for Android and iOS entirely in Go, or to compile Go packages into shared libraries that can be called from existing native mobile apps. It provides a complete set of libraries for handling mobile app lifecycle events, rendering 2D and 3D graphics through OpenGL ES, accessing device sensors like accelerometers and gyroscopes, processing touch and keyboard input, playing audio via OpenAL Soft, and reading bundled application assets.

The project distinguishes itself by offering two complementary approaches to mobile development with Go. Developers can create standalone native mobile apps written completely in Go, with the framework managing platform-specific lifecycle callbacks and resource management. Alternatively, the binding tool generates Java and Objective-C wrappers around Go functions, allowing teams to reuse existing Go code within traditional Android or iOS projects built with platform-native languages.

Beyond these core capabilities, the framework includes a 2D scene graph renderer for efficient sprite-based graphics, an event-driven architecture that dispatches start, stop, pause, and resume events to Go code, and a sensor polling loop for real-time access to motion data. The project compiles Go source into platform-specific shared libraries with generated C bindings, bridging Go code with Java and Objective-C runtimes on mobile devices.

## Tags

### Mobile Development

- [All-Go Native App Development](https://awesome-repositories.com/f/mobile-development/mobile-app-routers/all-go-native-app-development.md) — Builds complete native mobile applications for Android and iOS entirely in Go, handling lifecycle, rendering, and sensors.
- [Mobile App Analytics](https://awesome-repositories.com/f/mobile-development/mobile-app-analytics.md) — Compiles a complete mobile application written entirely in Go, producing a native Android or iOS binary. ([source](https://cdn.jsdelivr.net/gh/golang/mobile@master/README.md))
- [Go Library Bindings](https://awesome-repositories.com/f/mobile-development/mobile-app-routers/go-library-bindings.md) — Generates platform-native language bindings so Go functions can be called from Java or Objective-C code in an existing mobile app. ([source](https://cdn.jsdelivr.net/gh/golang/mobile@master/README.md))
- [Go Shared Library Compilation](https://awesome-repositories.com/f/mobile-development/mobile-binary-compilation/mobile-framework-libraries/go-shared-library-compilation.md) — Compiles Go code into a shared library that can be called from Java/Kotlin or Objective-C/Swift within an existing native app project. ([source](https://cdn.jsdelivr.net/gh/golang/mobile@master/README.md))
- [Mobile-Compatible Web Apps](https://awesome-repositories.com/f/mobile-development/mobile-compatible-web-apps.md) — Compiles a complete mobile application written entirely in Go, producing a native binary for Android or iOS. ([source](https://golang.org/x/mobile))
- [Bundled File Readers](https://awesome-repositories.com/f/mobile-development/mobile-project-asset-management/bundled-file-readers.md) — Provides runtime access to application-bundled files for Go mobile apps.

### Web Development

- [All-Go Mobile App Compilers](https://awesome-repositories.com/f/web-development/rendering-templating/rendering-strategies/hybrid-rendering-engines/mobile-app-shells/all-go-mobile-app-compilers.md) — Creates Android and iOS applications entirely in Go, handling lifecycle, rendering, assets, events, and sensors. ([source](https://golang.org/wiki/Mobile))

### Part of an Awesome List

- [Mobile App Lifecycle Handlers](https://awesome-repositories.com/f/awesome-lists/devtools/app-lifecycle-management/mobile-app-lifecycle-handlers.md) — Notifies the app when it starts, stops, pauses, or resumes so it can manage resources accordingly. ([source](https://golang.org/x/mobile))
- [Mobile Lifecycle Event Handlers](https://awesome-repositories.com/f/awesome-lists/devtools/app-lifecycle-management/mobile-lifecycle-event-handlers.md) — Responds to start, stop, pause, and resume events in a Go mobile app to manage resources and state correctly.
- [Developer Tools](https://awesome-repositories.com/f/awesome-lists/devtools/developer-tools.md) — Official toolchain for mobile application development.

### Development Tools & Productivity

- [Mobile App Development Frameworks](https://awesome-repositories.com/f/development-tools-productivity/go-cli-frameworks/mobile-app-development-frameworks.md) — Compiles Go code into native Android and iOS applications with full lifecycle, input, and sensor support.

### Game Development

- [Mobile](https://awesome-repositories.com/f/game-development/sensor-input-handlers/mobile.md) — Captures touch, keyboard, accelerometer, and gyroscope events for interactive Go mobile apps.
- [2D Graphics Frameworks](https://awesome-repositories.com/f/game-development/game-engines-frameworks/2d-engines/2d-graphics-frameworks.md) — Draws and animates sprites and scenes using a 2D scene graph and OpenGL utilities. ([source](https://golang.org/x/mobile))
- [Mobile Sensor and Input Handlers](https://awesome-repositories.com/f/game-development/sensor-input-handlers/mobile-sensor-and-input-handlers.md) — Reads device accelerometers, gyroscopes, touch events, and keyboard input within a Go mobile application.

### Graphics & Multimedia

- [OpenGL Graphics Programming](https://awesome-repositories.com/f/graphics-multimedia/opengl-graphics-programming.md) — Drives 2D and 3D graphics through OpenGL ES bindings, managing frame buffers and shaders for mobile displays.
- [Mobile OpenGL Bindings](https://awesome-repositories.com/f/graphics-multimedia/opengl-graphics-programming/mobile-opengl-bindings.md) — Provides OpenGL bindings and 2D scene graph utilities for rendering graphics in Go mobile apps.
- [Audio Playback](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-playback.md) — Outputs sound through OpenAL Soft bindings for audio playback in mobile apps. ([source](https://golang.org/x/mobile))
- [Mobile Asset](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-playback/mobile-asset.md) — Accesses bundled application files and plays audio through OpenAL Soft bindings in a Go mobile app.
- [2D Rendering Engines](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/webgl-gpu-rendering/2d-rendering-engines.md) — Ships a 2D scene graph renderer with hierarchical sprite trees and affine transforms for efficient mobile rendering.

### Programming Languages & Runtimes

- [Mobile Platform Bridge Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/c-based-embedding-apis/go-c-bridges/mobile-platform-bridge-compilation.md) — Compiles Go source into platform-specific shared libraries with generated C bindings for Java and Objective-C interop.
- [Go Mobile Bindings](https://awesome-repositories.com/f/programming-languages-runtimes/c-shared-library-bindings/go-mobile-bindings.md) — Generates Java and Objective-C wrappers so Go functions can be called from existing native mobile apps. ([source](https://golang.org/x/mobile/example/bind))
- [Go Mobile SDK Bindings](https://awesome-repositories.com/f/programming-languages-runtimes/c-shared-library-bindings/go-mobile-sdk-bindings.md) — Compiles Go packages into shared libraries with Java and Objective-C bindings so existing native apps can call Go functions.
- [Mobile Language Binding Tools](https://awesome-repositories.com/f/programming-languages-runtimes/php-extension-bindings/go-language-extensions/mobile-language-binding-tools.md) — Generates Java and Objective-C wrappers so Go functions can be called from existing native mobile apps.

### Software Engineering & Architecture

- [Lifecycle Event Callbacks](https://awesome-repositories.com/f/software-engineering-architecture/event-logging/lifecycle-event-callbacks.md) — Hooks into Android and iOS lifecycle callbacks, dispatching start, stop, pause, and resume events to Go code.
- [Mobile Language](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/programmatic-interfaces/binding-generators/mobile-language.md) — Exposes Go packages as callable libraries for Java and Objective-C so existing apps can reuse Go code. ([source](https://golang.org/x/mobile))
- [OpenAL Soft Backend Implementations](https://awesome-repositories.com/f/software-engineering-architecture/modular-audio-node-architectures/audio-output-pipelines/audio-backend-selection-interfaces/openal-soft-backend-implementations.md) — Renders audio output through OpenAL Soft bindings, providing spatial sound and buffer management for mobile devices.

### User Interface & Experience

- [Mobile Touch Handlers](https://awesome-repositories.com/f/user-interface-experience/input-handling/mobile-touch-handlers.md) — Processes touch events from the mobile device screen for interactive app controls. ([source](https://golang.org/x/mobile))
- [Event-Queue Polling](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/event-handling-architectures/event-handling-systems/event-queue-polling.md) — Captures platform input events and queues them as Go structs for polling or callback-based consumption.
- [Motion Sensor Readers](https://awesome-repositories.com/f/user-interface-experience/input-device-detection/motion-sensor-readers.md) — Provides data from device accelerometers, gyroscopes, and other motion sensors. ([source](https://golang.org/x/mobile))

### Data & Databases

- [Mobile Asset Bundle Readers](https://awesome-repositories.com/f/data-databases/migration-execution/embedded-asset-bundling/mobile-asset-bundle-readers.md) — Opens application-bundled resources through platform-specific file I/O, mapping them into Go's io/fs interface.
- [Mobile Asset Readers](https://awesome-repositories.com/f/data-databases/migration-execution/embedded-asset-bundling/mobile-asset-readers.md) — Reads application-bundled files from within a Go mobile app at runtime. ([source](https://golang.org/x/mobile))

### Hardware & IoT

- [Sensor Polling](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-integration/device-sensors/sensor-polling.md) — Reads accelerometer, gyroscope, and motion sensor values from platform APIs in a continuous loop for real-time access.
