- Notifications
You must be signed in to change notification settings - Fork282
Flutter on Windows, MacOS and Linux - based on Flutter Embedding, Go and GLFW.
License
go-flutter-desktop/go-flutter
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Flutter allows you to build beautiful native apps on iOS and Android from a single codebase.
Thisunofficial project brings Flutter to the desktop through the power ofGo andGLFW.
The flutter engine itself doesn't know how to deal with desktop platforms(eg handling mouse/keyboard input). Instead, it exposes an abstraction layer for whatever platform to implement. This project implements theFlutter's Embedding API using a single code base that runs on Windows, macOS, and Linux. For rendering,GLFW fits the job because it provides the right abstractions over the OpenGL's Buffer/Mouse/Keyboard for each platform.
The choice ofGolang comes from the fact that it has the same tooling on every platform. Plus Golang is a great language because it keeps everything simple and readable, which makes it easy to build cross-platform plugins.
The best way to get started is to installhover, the official go-flutter tool to set up, build and run Flutter apps on the desktop, including hot-reload.
Read thehover tutorial to run your app on the desktop, or start withone of our example apps.
If you want more in-depth information about go-flutter, read thewiki.
- Linux 🐧
- MacOS 🍎
- Windows 🏁
- Hot Reload
- Plugin system
- BinaryMessageCodec, BinaryMessageChannel
- StandardMessageCodec, JSONMessageCodec
- StandardMethodCodec,MethodChannel
- Plugin detection forsupported plugins
- Importable as Go library into custom projects
- UTF-8 Text input
- Clipboard copy & paste
- Window title and icon
- Standard keyboard shortcuts
- ctrl-cctrl-vctrl-xctrl-a
- HomeEndshift-Homeshift-End
- Leftctrl-Leftctrl-shift-Left
- Rightctrl-Rightctrl-shift-Right
- Backspacectrl-BackspaceDelete
- Mouse-over/hovering
- Mouse-buttons
- RawKeyboard events
- Distribution format (windows-msi, mac-dmg, linux-appimage, and more)
- Cross-compiling using docker 🐳
Are you missing a feature?Open an issue!
A separate repository contains example Flutter apps that also run on the desktop. Go togithub.com/go-flutter-desktop/examples to give them a try.
Some popular plugins are already implemented over atgithub.com/go-flutter-desktop/plugins.If you have implemented a plugin that you would like to share, feel free to open a PR on the plugins repository!
For a detailed tutorial on how to create a plugin, read thewiki.
Flutter itself is a relatively young project. Its framework and engine are updated often. The go-flutter project tries to stay compatible with thebeta channel of Flutter.
Updating Go is simple and Goseldomly has backwards-incompatible changes. This project remains compatible with thelatest Go stable release.
This project uses go-gl/glfw for GLFW v3.3.
About
Flutter on Windows, MacOS and Linux - based on Flutter Embedding, Go and GLFW.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.

