fyne @ v2.0.0
integrity
- size
- 9.3 MiB
- downloaded
- last checked
- overlays
- go
- detected
- go module fyne.io/fyne/v2
release notes
The v2.0.0 release of Fyne marks a big step in the development of the project. It was a chance to step back, see what was working well and what could be improved - and then make the changes in a way that had not been possible whilst maintaining 1.0 compatibility. As a result there are some breaking changes to point the APIs in a better direction for the future. Additionally this means that the import path has now changed to fyne.io/fyne/v2 following the go module convention.
This release also sees the introduction of data binding (that keeps widgets in sync with a data source), storage repositories (allowing developers to connect different types of file stores to our APIs), animation (to give some motion to elements of an application) and a new theme API (that allows more flexible theming of standard components).
The full list of changes follow. Before upgrading an existing project please be sure to read the upgrading doc for information about relevant changes.
Changes that are not backward compatible
The import path is now fyne.io/fyne/v2 - be sure to update all files when you are ready to make the update.
-
Coordinate system to float32
- Size and Position units were changed from int to float32
Text.TextSizemoved to float32 andfyne.MeasureTextnow takes a float32 size parameter- Removed
Size.Union(useSize.Maxinstead) - Added fyne.Delta for difference-based X, Y float32 representation
- DraggedEvent.DraggedX and DraggedY (int, int) to DraggedEvent.Dragged (Delta)
- ScrollEvent.DeltaX and DeltaY (int, int) moved to ScrollEvent.Scrolled (Delta)
-
Theme API update
fyne.Thememoved tofyne.LegacyThemeand can be load to a new theme usingtheme.FromLegacy- A new, more flexible, Theme interface has been created that we encourage developers to use
-
The second parameter of
theme.NewThemedResourcewas removed, it was previously ignored -
The desktop.Cursor definition was renamed desktop.StandardCursor to make way for custom cursors
-
Button
StyleandHideShadowwere removed, useImportance -
iOS apps preferences will be lost in this upgrade as we move to more advanced storage
-
Dialogs no longer show when created, unless using the ShowXxx convenience methods
-
Entry widget now contains scrolling so should no longer be wrapped in a scroll container
-
Removed deprecated types including:
dialog.FileIcon(nowwidget.FileIcon)widget.Radio(nowwidget.RadioGroup)widget.AccordionContainer(nowwidget.Accordion)layout.NewFixedGridLayout()(nowlayout.NewGridWrapLayout())widget.ScrollContainer(nowcontainer.Scroll)widget.SplitContainer(nowcontainer.Spilt)widget.Group(replaced bywidget.Card)widget.Box(nowcontainer.NewH/VBox, withChildrenfield moved toObjects)widget.TabContainerandwidget.AppTabs(nowcontainer.AppTabs)
-
Many deprecated fields have been removed, replacements listed in API docs 1.4
- for specific information you can browse https://developer.fyne.io/api/v1.4/
Added
- Data binding API to connect data sources to widgets and sync data
- Add preferences data binding and
Preferences.AddChangeListener - Add bind support to
Check,Entry,Label,List,ProgressBarandSliderwidgets
- Add preferences data binding and
- Animation API for handling smooth element transitions
- Add animations to buttons, tabs and entry cursor
- Storage repository API for connecting custom file sources
- Add storage functions
Copy,DeleteandMoveforURI - Add
CanRead,CanWriteandCanListto storage APIs
- Add storage functions
- New Theme API for easier customisation of apps
- Add ability for custom themes to support light/dark preference
- Support for custom icons in theme definition
- New
theme.FromLegacyhelper to use old theme API definitions
- Add fyne.Vector for managing x/y float32 coordinates
- Add MouseButtonTertiary for middle mouse button events on desktop
- Add
canvas.ImageScaleFastestfor faster, less precise, scaling - Add new
dialog.Formthat will phase outdialog.Entry - Add keyboard control for main menu
- Add
Scroll.OnScrolledevent for seeing changes in scroll container - Add
TextStyleandOnSubmittedtoEntrywidget - Add support for
HintTextand showing validation errors inFormwidget - Added basic support for tab character in
Entry,LabelandTextGrid
Changed
- Coordinate system is now float32 - see breaking changes above
- ScrollEvent and DragEvent moved to Delta from (int, int)
- Change bundled resources to use more efficient string storage
- Left and Right mouse buttons on Desktop are being moved to
MouseButtonPrimaryandMouseButtonSecondary - Many optimisations and widget performance enhancements
- Moving to new
container.New()andcontainer.NewWithoutLayout()constructors (replacingfyne.NewContainerandfyne.NewContainerWithoutLayout) - Moving storage APIs
OpenFileFromURI,SaveFileToURIandListerForURItoReader,WriterandListfunctions
Fixed
- Validating a widget in widget.Form before renderer was created could cause a panic
- Added file and folder support for mobile simulation support (#1470)
- Appending options to a disabled widget.RadioGroup shows them as enabled (#1697)
- Toggling toolbar icons does not refresh (#1809)
- Black screen when slide up application on iPhone (#1610)
- Properly align Label in FormItem (#1531)
- Mobile dropdowns are too low (#1771)
- Cursor does not go down to next line with wrapping (#1737)
- Entry: while adding text beyond visible reagion there is no auto-scroll (#912)
download
curl -fL -o v2.0.0.zip https://ratatoskr.space/pkg/fyne/v2.0.0.zip
printf '%s %s\n' 'e1331b8c85210921f0ca6025f626f8e6db7e96c182f8f5cf808625e6c85ffcbf' 'v2.0.0.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/fyne/v2.0.0.zip"
$out = "v2.0.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "e1331b8c85210921f0ca6025f626f8e6db7e96c182f8f5cf808625e6c85ffcbf") { throw "sha256 mismatch" }
curl -fL -o v2.0.0.tar.gz https://ratatoskr.space/pkg/fyne/v2.0.0.tar.gz
printf '%s %s\n' '16bcf58c446ce9bde9841b52789f6b574e3dc49f921558b8c2d6cbbfb5fb3d47' 'v2.0.0.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/fyne/v2.0.0.tar.gz"
$out = "v2.0.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "16bcf58c446ce9bde9841b52789f6b574e3dc49f921558b8c2d6cbbfb5fb3d47") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o v2.0.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fyne/v2.0.0.zip
printf '%s %s\n' 'e1331b8c85210921f0ca6025f626f8e6db7e96c182f8f5cf808625e6c85ffcbf' 'v2.0.0.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fyne/v2.0.0.zip"
$out = "v2.0.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "e1331b8c85210921f0ca6025f626f8e6db7e96c182f8f5cf808625e6c85ffcbf") { throw "sha256 mismatch" }
curl -fL -o v2.0.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fyne/v2.0.0.tar.gz
printf '%s %s\n' '16bcf58c446ce9bde9841b52789f6b574e3dc49f921558b8c2d6cbbfb5fb3d47' 'v2.0.0.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fyne/v2.0.0.tar.gz"
$out = "v2.0.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "16bcf58c446ce9bde9841b52789f6b574e3dc49f921558b8c2d6cbbfb5fb3d47") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v2.0.0.zip | zip | 9.4 MiB |
blake3-24 01c4ea388561b881514c472f7c31d90baa9113666ef0c00f
sha256 e1331b8c85210921f0ca6025f626f8e6db7e96c182f8f5cf808625e6c85ffcbf
sha1 6993d5cc2b6b51b9e85f9355745cd3fdf6243c86
|
| v2.0.0.tar.gz | tar.gz | 8.3 MiB |
blake3-24 e0c62631eb5328f2c6e9805c30995f9cb44591dbf1ba2b47
sha256 16bcf58c446ce9bde9841b52789f6b574e3dc49f921558b8c2d6cbbfb5fb3d47
sha1 829c2737c0b133c26b1ff28c2914ee1042e0aace
|
go module archive
module zip with the module path rewritten to this mirror; fetched by go get through the
GOPROXY route
| artifact | format | size | hashes |
|---|---|---|---|
| v2.0.0.zip | zip | 5.7 MiB |
blake3-24 caf1598bc5d0542511096f953b0dabf7b79137887985c547
sha256 772cebd4e08f0b5d0b14250c76f3bbf710401490c7897b67f4d24e6b981b1422
sha1 c8036afc7016ad0791374641b4939c181109d413
|
install
http_archive(
name = "fyne",
urls = ["https://ratatoskr.space/pkg/fyne/v2.0.0.tar.gz"],
integrity = "sha256-Frz1jERs6b3phBtSeJ9rV049xJ+SFVi4wtbLv7X7PUc=",
strip_prefix = "fyne-v2.0.0",
)
.url = "https://ratatoskr.space/pkg/fyne/v2.0.0.tar.gz",
GOPROXY=https://ratatoskr.space GOSUMDB=off go get ratatoskr.space/pkg/fyne/v2@v2.0.0
install via yggdrasil mesh
http_archive(
name = "fyne",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fyne/v2.0.0.tar.gz"],
integrity = "sha256-Frz1jERs6b3phBtSeJ9rV049xJ+SFVi4wtbLv7X7PUc=",
strip_prefix = "fyne-v2.0.0",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fyne/v2.0.0.tar.gz",
GOPROXY=http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg GOSUMDB=off GOINSECURE=14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/* go get 14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/fyne/v2@v2.0.0