Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/go-flutter-desktop/hover
Hover helps developers to release Flutter applications on desktop.
https://github.com/go-flutter-desktop/hover
cli flutter go-flutter tool
Last synced: 4 days ago
JSON representation
Hover helps developers to release Flutter applications on desktop.
- Host: GitHub
- URL: https://github.com/go-flutter-desktop/hover
- Owner: go-flutter-desktop
- License: bsd-3-clause
- Created: 2019-03-21T19:16:04.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-12-03T22:59:50.000Z (20 days ago)
- Last Synced: 2024-12-12T12:04:40.379Z (11 days ago)
- Topics: cli, flutter, go-flutter, tool
- Language: Go
- Homepage: https://hover.build/
- Size: 790 KB
- Stars: 1,004
- Watchers: 23
- Forks: 81
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Hover - Run Flutter apps on the desktop with hot-reload
Hover is a simple build tool to create [Flutter](https://flutter.dev) desktop applications.
**Hover is brand new and under development, it should be considered alpha. Anything can break, please backup your data before using hover**
Hover is part of the [go-flutter](https://github.com/go-flutter-desktop/go-flutter) project. Please report issues at the [go-flutter issue tracker](https://github.com/go-flutter-desktop/go-flutter/issues/).
## Install
Hover uses [Go](https://golang.org) to build your Flutter application to desktop. Hover itself is also written using the Go language. You will need to [install go](https://golang.org/doc/install) on your development machine.
Run `go version` and make sure that your Go version is 1.13 or higher.
Then install hover by running this in your home directory:
```bash
GO111MODULE=on go install github.com/go-flutter-desktop/hover@latest
```
Or windows:
```
set GO111MODULE=on
go install github.com/go-flutter-desktop/hover@latest
```
Or for powershell:
```powershell
$env:GO111MODULE="on"; go get -u -a github.com/go-flutter-desktop/hover@latest
```
Make sure the hover binary is on your `PATH` (defaults are `$GOPATH/bin` or `$HOME/go/bin`)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](https://github.com/golang/go/wiki/InstallFromSource#install-c-tools).* You need to make sure you have dependencies of GLFW:
* On macOS, you need Xcode or Command Line Tools for Xcode (`xcode-select --install`) for required headers and libraries.
* On Ubuntu/Debian-like Linux distributions, you need `libgl1-mesa-dev xorg-dev` packages.
* On CentOS/Fedora-like Linux distributions, you need `libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel mesa-libGL-devel libXi-devel` packages.
* See [here](http://www.glfw.org/docs/latest/compile.html#compile_deps) for full details.## Getting started with an existing Flutter project
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.
### Init project for hover
cd into a flutter project.
```bash
cd projects/simpleApplication
```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 init` to 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 init` without a path. You can change the path later._
```bash
hover init github.com/my-organization/simpleApplication
```This creates the directory `go` and adds boilerplate files such as Go code and a default logo.
Optionally, you may add [plugins](https://github.com/go-flutter-desktop/plugins) to `go/cmd/options.go`
Optionally, change the logo in `go/assets/logo.png`, which is used as icon for the window.### Run with hot-reload
To run the application and attach flutter for hot-reload support:
```bash
hover run
```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.dart` as entrypoint. You may specify a different endpoint by using the `--target` flag.
#### IDE integration
##### VSCode
Please try the [experimental Hover extension for VSCode](https://marketplace.visualstudio.com/items?itemName=go-flutter.hover).
If you want to manually integrate with VSCode, read this [issue](https://github.com/go-flutter-desktop/go-flutter/issues/129#issuecomment-513590141).
##### Emacs
Check [hover.el](https://github.com/ericdallo/hover.el) packge for emacs integration.
### Build standalone application
To create a standalone release (JIT mode) build run this command:
```bash
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](https://docs.docker.com/install/).
Then run the command from above and it will do everything for you.The output will be in `go/build/outputs/linux` or windows or darwin.
To start the binary: (replace `yourApplicationName` with your app name)
```bash
./go/build/outputs/linux/yourApplicationName
```It's possible to zip the whole dir `go/build/outputs/linux` and ship it to a different machine.
### Packaging
You can package your application for different packaging formats.
First initialize the packaging format:```bash
hover init-packaging linux-appimage
```Update the configuration files located in `go/packaging/linux-appimage/`to your needs.
Then create a build and package it using this command:```bash
hover build linux-appimage
```The packaging output is placed in `go/build/outputs/linux-appimage/`
To get a list of all available packaging formats run:
```bash
hover build --help
```### Flavors
Hover supports different application flavors via `--flavor MY_FLAVOR` command.
If you wish to create a new flavor for you application,
simply copy `go/hover.yaml` into `go/hover-MY_FLAVOR.yaml` and modify contents as needed.
If no flavor is specified, Hover will always default to `hover.yaml````
hover run --flavor develop || hover build --flavor develop
// hover-develop.yaml
```## Issues
Please report issues at the [go-flutter issue tracker](https://github.com/go-flutter-desktop/go-flutter/issues/).