Hover helps developers to release Flutter applications on desktop.
Hover is a simple build tool to create Flutter desktop applications.
Hover is brand new and under development, it should be considered alpha. Anything can break, please backup your data before using hover
go versionand make sure that your Go version is 1.13 or higher.
Then install hover by running this in your home directory:
GO111MODULE=on go get -u -a github.com/go-flutter-desktop/hover
set GO111MODULE=on go get -u -a github.com/go-flutter-desktop/hoverOr for powershell:
powershell $env:GO111MODULE="on"; go get -u -a github.com/go-flutter-desktop/hoverMake sure the hover binary is on your
Run the same command to update when a newer version becomes available.
Install these dependencies:
You need to make sure you have a C compiler.
The recommended C compiler are documented here.
You need to make sure you have dependencies of GLFW:
xcode-select --install) for required headers and libraries.
libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel mesa-libGL-devel libXi-develpackages.
This assumes you have an existing flutter project which you want to run on desktop. If you don't have a project yet, follow the flutter tutorial for setting up a new project first.
cd into a flutter project.
The first time you use hover for a project, you'll need to initialize the project for use with hover. An argument can be passed to
hover initto set the project path. This is usually the path for your project on github or a self-hosted git service. If you are unsure use
hover initwithout a path. You can change the path later.
hover init github.com/my-organization/simpleApplication
This creates the directory
goand adds boilerplate files such as Go code and a default logo.
Optionally, you may add plugins to
go/assets/logo.png, which is used as icon for the window.
To run the application and attach flutter for hot-reload support:
The hot-reload is manual because you'll need to press 'r' in the terminal to hot-reload the application.
By default, hover uses the file
lib/main_desktop.dartas entrypoint. You may specify a different endpoint by using the
Please try the experimental Hover extension for VSCode.
If you want to manually integrate with VSCode, read this issue.
Check hover.el packge for emacs integration.
To create a standalone release (JIT mode) build run this command:
hover build linux # or darwin or windows
You can create a build for any of the supported OSs using cross-compiling which needs Docker to be installed. Then run the command from above and it will do everything for you.
The output will be in
go/build/outputs/linuxor windows or darwin.
To start the binary: (replace
yourApplicationNamewith your app name)
It's possible to zip the whole dir
go/build/outputs/linuxand ship it to a different machine.
You can package your application for different packaging formats.
First initialize the packaging format:
hover init-packaging linux-appimage
Update the configuration files located in
go/packaging/linux-appimage/to your needs.
hover build linux-appimage
The packaging output is placed in
To get a list of all available packaging formats run:
hover build --help
Hover supports different application flavors via
--flavor MY_FLAVORcommand. If you wish to create a new flavor for you application, simply copy
go/hover-MY_FLAVOR.yamland modify contents as needed. If no flavor is specified, Hover will always default to
hover run --flavor develop || hover build --flavor develop // hover-develop.yaml
Please report issues at the go-flutter issue tracker.