gitmyhub

go-flutter

Go ★ 5.9k updated 7h ago

Flutter on Windows, MacOS and Linux - based on Flutter Embedding, Go and GLFW.

An unofficial project that lets you run Flutter apps on Windows, macOS, and Linux desktop, it bridges the Flutter engine to desktop inputs, windows, and rendering so your mobile code runs on a computer.

GoFlutterGLFWOpenGLDockersetup: moderatecomplexity 3/5

Flutter is a toolkit originally built by Google for creating mobile apps that run on both iOS and Android from one shared codebase. go-flutter is an unofficial project that extends Flutter to desktop operating systems: Windows, macOS, and Linux. It was created because the Flutter engine, on its own, does not know how to handle desktop inputs like mouse clicks or keyboard shortcuts, window resizing, or operating-system-level events.

The project solves that gap by implementing Flutter's Embedding API, which is a specification for how any platform can plug into the Flutter engine. The implementation is written in Go, a programming language known for having consistent tooling across operating systems. For the actual screen rendering and input handling, it uses a library called GLFW, which provides a common interface over OpenGL graphics on all three platforms.

Developers use a companion tool called hover to set up, build, and run their Flutter apps on the desktop. Hover also supports hot reload, meaning you can change code and see the result on screen without restarting the app. The project ships a plugin system that lets Flutter's existing communication channels work on desktop, so code that talks to platform-native features can be extended to desktop as well.

Supported features include clipboard copy and paste, text input, mouse hovering and button clicks, standard keyboard shortcuts, and packaging your app into distribution formats like a Windows installer, a macOS disk image, or a Linux AppImage. Cross-compiling for a different platform using Docker is also supported.

The project tracks Flutter's beta release channel and targets the latest stable Go release. The license is BSD 3-Clause. Example apps and pre-built plugins live in separate companion repositories under the same GitHub organization.

Where it fits