This is a great way to develop truly cross platform desktop and mobile applications rapidly, and beautifly.
It’s an intersection between:
Powered by the go-flutter project
This is for anyone who wants to build an application with a modern UI.
This could range from any of the following situations:
Flutter is a great UI oriented language, for rapidly getting to production across all platforms.
Has a great UI standard that renders natively on everythin from linux to IOS.
Desktop support for dart/flutter is spotty, and unofficially in beta.
Golang is a great system oriented language, for getting robust and fast (enough) code onto all platforms.
Has no real official UI tooling or even officially recommened UI.
Has primarily been developed with cli and server based applications in mind.
Please note this is a list of packages I’ve used personally.
For a more exaustive list please go to https://github.com/avelino/awesome-go#gui
Great workflow, can build and package a release for any platform (desktop, mobile, embedded) in moments.
Flutters UI is declaritive and a part of the business logic. No need to fuss with widget declarations, complex callbacks, async threads, etc.
Can target any desktop specific features with golang, and provide any mobile specific features with flutter/golang-mobile.
Flutter has been proven to be a stable platform for many of the large companies seen at https://flutter.dev/showcase
go-flutter is unofficial.
Flutter is less popular than kotlin, swift, and react-native, leading to a smaller community (currently)
Flutter is a new technology. Sometimes that’s scary, and a hard sell.
Google occasionally likes to kill nice things
Flutter FFI (c/c++ engine)
Flutter Embedders
Go-Flutter Summary
Comparison to official flutter bindings
Golang GLFW layer
Install go 1.13+
Install flutter
Install go-flutter
GO111MODULE=on go get -u -a github.com/go-flutter-desktop/hover
Install dependencies
Enable desktop builds
flutter config --enable-macos-desktop
flutter config --enable-linux-desktop
flutter config --enable-windows-desktop
Flutter provides a CLI tool to build and package mobile & web applications.
List of commonly used commands:
# create your flutter app
$ flutter create golang_flutter_demo
# run your flutter app (android/ios)
$ flutter run
# build your bundled flutter app (android/ios)
# stores builds in golang_flutter_demo/build/app/outputs
$ flutter build apk
$ flutter build ios
Hover is the CLI tool that implements basic running, building and packaging a go-flutter application.
The options below match those provided by flutter:
# add desktop support to your flutter app
$ hover init
# run your golang flutter app (in native env)
$ hover run
# build your bundled go-flutter app
# stores builds in golang_flutter_demo/go/build/outputs
$ hover build linux
$ hover build macos
$ hover build windows
What is a “plugin” ?
https://github.com/go-flutter-desktop/examples/tree/master/plugin_tutorial/go-plugin-example/complex
hover run
Author: kjcodeacct
GitHub: https://github.com/kjcodeacct/golang_flutter_demo
#flutter #dart #mobile-apps