The latest news from the Fyne community

1.2 Mobile Support

Dec 13, 2019

The 1.2 release of the fyne toolkit marks an exciting milestone in the project as we now support building for iOS and Android devices as well as macOS, Windows, Linux and BSD. We also vastly improved the developer experience for creating your own widgets and extending existing widgets to add custom functionality.

It’s been a massive journey to get to this point and nearly 500 commits of work from our community got us there. We hope that you are as excited as us to be able to easily build beautiful native apps for both desktop and mobile devices with simple Fyne code.

Along with all of the development work we are excited to have a great new logo for the project which you can see below in the desktop and mobile screenshots of our latest demo app.

We’re excited to see what apps our community comes up with whilst we get on with our next release. Happy Christmas!

The additional highlights of our release are as follows:


  • Mobile support - iOS and Android, including “fyne package” command
  • Support for OpenGL ES and embedded linux
  • New BaseWidget for building custom widgets
  • Support for diagonal gradients
  • Global settings are now saved and can be set using the new fyne_settings app
  • Support rendering in Go playground using playground.Render() helpers
  • “fyne install” command to package and install apps on the local computer
  • Add horizontal scrolling to ScrollContainer
  • Add preferences API
  • Add show/hide password icon when created from NewPasswordEntry
  • Add NewGridLayoutWithRows to specify a grid layout with a set number of rows
  • Add NewAdaptiveGridLayout which uses a column grid layout when horizontal and rows


  • New Logo! Thanks to Storm for his work on this :)
  • Input events now execute one at a time to maintain the correct order
  • FYNE_THEME and FYNE_SCALE are now overrides to the global configuration
  • The first opened window no longer exits the app when closed (unless none others are open or Window.SetMaster() is called)
  • “fyne package” now defaults icon to “Icon.png” so the parameter is optional
  • Calling ExtendBaseWidget() sets up the renderer for extended widgets
  • Bundled images optimised to save space
  • Optimise rendering to reduce refresh on TabContainer and ScrollContainer


  • Correct the colour of Entry widget cursor if theme changes
  • Error where widgets created before main() function could crash (#490)
  • App.Run apnics if called without a window (#527)
  • Support context menu for disabled entry widgets (#488)

Get In Touch!

We're excited to hear from anyone interested in the project. Whether it's to find out more, provide suggestions or to get involved - drop us a line!

If you would like to join the community for a chat you'll find us in the #fyne channel on gophers Slack or on our Discord server. If you are not already a member of the communities you can use a Slack invite or Discord invite.


(Slack sign up)
(Discord sign up)