Chapter 2 - Title and size
Updated to Gio 0.8.0 as of April 4th 2025
Goals
The intent of this section is to set a custom title and the size of the window.

Outline
This code is very similar to that of chapter 1. We add:
- two more imports
 - two parameters when calling 
app.NewWindow() 
Code
package main
import (
  "gioui.org/app"
  "gioui.org/unit"
)
func main() {
  go func() {
    // create new window
		w := new(app.Window)
		w.Option(app.Title("Egg timer"))
		w.Option(app.Size(unit.Dp(400), unit.Dp(600)))
    // listen for events in the window
    for {
        w.Event()
    }
  }()
  app.Main()
}
Comments
Where chapter 1 was the absolute bare minimum to open a window, we want to make some improvements here.
gioui.org/unit implements device independent units and values. The docs describe a handful of alternatives:
| Type | Description | 
|---|---|
| dp | Device independent pixel - independent of the underlying device | 
| sp | Scaled pixel - used for text sizes | 
| px | Pixels - used for precision for the actual device | 
In general, dp is the most widely used; we like to keep device independency when we can. Hence that’s what we use when we define the window size inside app.NewWindow().
The options of app are fairly self-explanatory, but take note of a few things:
- The size is set using 
app.Size(x, y). - The window can be freely resized. Try it! If you want to limit the size you can add: 
- MaxSize
 - MinSize
 - Or use both, effectively locking the window size
 
 - A fullscreen option is available in WindowMode if needed
 - If you’re building for Android, Status and Navigation colors can be set here.