А вы знаете, что на Go можно разрабытвать интерфейсные приложения?
👁 430↗ 7💬 8
Появилась у меня идея сделать собственное мультиплатформенное приложение и когда я изучал какие есть варианты, от Flatter, React Native до суровых СИшных вариантов.
Мое удивление, когда я узнал, что есть возможность писать интерфейсные программы на Go и при этом делать сборку под все виды ОСей: MacOs, Windows, Linux, IOs, Android, WebApp. Я просто должен был это попробовать.
Библиотека называется Fyne: https://developer.fyne.io/started/
Самое приятное, что с Fyne код является универсальным - пишете один раз и запускаете на любых устройствах.
Для того чтобы начать работать с Fyne: нужен Go версии 1.17 или новее, а лучше начинать с 1.19 и новее, также важно чтобы был компилятор Си и системные инструменты разработки, такие как XCode если вы работаете на MacOs.
Установка проходит в пару команд, и все готово к созданию первого приложения.
Для примера, вот простейший код, который создаёт окно с кнопкой и приветственным текстом:
package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New()
w := a.NewWindow("Hello")
hello := widget.NewLabel("Hello Fyne!")
w.SetContent(container.NewVBox(
hello,
widget.NewButton("Hi!", func() {
hello.SetText("Welcome :)")
}),
))
w.ShowAndRun()
}
Запускаем и... вуаля! У вас есть рабочее приложение с GUI на Go.
НО! Конечно же Go не был задумал под подобного рода разработку, поэтому есть некоторые шероховатости с которыми вы явно столкнетесь, но fyne определенно движется в интересном направлении и постоянно улучшается.
Ну и если вы до сих пор думали, что Go не подходит для интерфейсных приложений, Fyne определённо заставит вас пересмотреть свои взгляды. Попробуйте, экспериментируйте и, возможно, ваше следующее приложение будет написано на Go с помощью Fyne, как и мое 🙂
@knowyourbackend
@kyb_chat
#PetProject #Backend #DeveloperTools73111
Комментарии · 8
- @NadyaDekasРазработка в стиле Windows 98?
- Дело же не в стилях 🙂 Но вообще кажется можно вполне современные интерфейсы делать.
- @meafrankА ещё есть Wails, тоже интересная штука, правда сложно ответить подходят ли подобные инструменты под прод, вот сейчас занимаюсь одним проектом на Wails, и иногда некоторые проблемы решать трудновато, и приходится очень много искать информации которой может и не быть
- О! прикольно, а fyne тоже пробовал?
- @meafrankНе, я как истинный извращенец захотел засунуть React в нативное приложение
- Похоже тут работает как WebView ?
- это типа электрон на Го ?
- @meafrankДа