// личный канал‑лог
gavrilovlog
← все записи

А вы знаете, что на Go можно разрабытвать интерфейсные приложения?

👁 4307💬 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 #DeveloperTools
73111

Комментарии · 8

  • @NadyaDekas
    Разработка в стиле Windows 98?
    • @gavrilovlog
      Дело же не в стилях 🙂 Но вообще кажется можно вполне современные интерфейсы делать.
  • @meafrank
    А ещё есть Wails, тоже интересная штука, правда сложно ответить подходят ли подобные инструменты под прод, вот сейчас занимаюсь одним проектом на Wails, и иногда некоторые проблемы решать трудновато, и приходится очень много искать информации которой может и не быть
    • @gavrilovlog
      О! прикольно, а fyne тоже пробовал?
      • @meafrank
        Не, я как истинный извращенец захотел засунуть React в нативное приложение
  • @gavrilovlog
    Похоже тут работает как WebView ?
  • @gavrilovlog
    это типа электрон на Го ?
    • @meafrank
      Да