Nomad – An example branded Fyne app

by | Jul 22, 2022 | Uncategorized | 0 comments

Here at Fyne Labs we wanted to show it’s possible to create a professionally designed app in a short amount of time with the Fyne toolkit. But what did we build?

We built Nomad, a time zone converter app which allows the user to select and save any number of global cities to compare the times and dates. Very handy when you have a team of open source developers spread across the world, you’ll never miss a meeting again!

Track time zones beautifully with Nomad
Approach

To create the app we followed a modern design including a tile based interface, background images, date time pickers, scrollers, a splash screen and more. The app was professionally designed for a polished user experience with a general feel of Material Design. Further to this a new calendar widget was created, utilising Fyne’s flexible ability to extend and adapt base functionality.

Take control with Theme

Using a custom theme gave us control of the aesthetics of the app, fonts and colours were matched to the design with a relatively small amount of code. For example, we can return different bundled fonts with unique styles using the Font method. A great way to make your app more unique.

type myTheme struct{}

func (m myTheme) Font(style fyne.TextStyle) fyne.Resource {
	if style.Bold && style.Italic {
		// Heavy with italics
		return resourceWorkSansBlackItalicTtf
	} else if style.Bold {
		// Heavy for bold
		return resourceWorkSansBlackTtf
	} else if style.Monospace {
		// Regularly spaced smaller font
		return resourceWorkSansRegularTtf
	}
	// Standard text is bold
	return resourceWorkSansBoldTtf

}

Using Fyne’s theme system the implementation was smooth with only minor changes necessary.

Extending Fyne

If all of Fyne’s current widget options are just not enough to satisfy a feature, fear not, you can make your own! Our design called for a date picker, and since one was not already available, we created it. Fyne’s BaseWidget type simplified this process, we only needed to add the missing functionality and a layout to realise our fancy new widget.

An awesome new calendar widget
A professional project

The nomad repository is publicly available so that you can learn from how we structured the project. From compartmentalisation and resource bundling, to widgets and layouts, you can delve in and hopefully be inspired by a considered approach to designing a Fyne app. We included tests too, showing that testing with a modern GUI toolkit can be a straight forward, stress free process. Check out the video tutorial to see for yourself!

We had a lot fun building the Nomad app and we are very excited to share it with you and as always, do not hesitate to get in touch with any questions or thoughts you may have when developing your next killer app.

0 Comments

Leave a Reply

%d bloggers like this: