Fyne - это open-source библиотека для очень простого и быстрого создания кросс-платформенных приложений на Golang Здесь можно вполне понять для чего нужен fyne, от себя могу сказать, что это очень простая библиотека для пользования, чтобы начать писать на ней программы с графическим интерфейсом не нужно никаких знаний  Можно глянуть одним глазком там довольно медленно и только совсем про базу рассказано, поэтому использовать можно как справочник, когда быстро набрасываешь свой первый интерфейс: Тут очень хорошо на примере показано как делать, прикол fyne не в том чтобы использовать стандартный набор инструментов представленный в библиотеке, а в том чтобы на их основе писать под нужные интерфейсы соответствующие классы, плюс могу добавить, что код в библиотеке читается очень легко (не то что stl c++😩) и этого кода не очень много, довольно быстро в нем разобраться: Если ты не любишь смотреть, а любишь читать, то на хабре есть пару статей, про то, как писать под fyne, там тоже можно получить некоторую базу, но советую все же посмотреть вторую ссылку на ютубе, хотя бы на скорости 2 и пропуская большую часть для ознакомления, там самый лучший материал, который я нашел в инете Теперь когда мы с тобой ознакомились с базой, и написали что-то, встает вопрос куда нажать, чтобы мы могли скинуть штуку, которую накодили, но тут возникает проблема, у всех разные системы, могу выделить три основных под которые можно скомпилить windows, linux (я все проверял на ubuntu, но вроде у одного моего друга какой-то хакерский linux, но он запустил мой бинарник под linux) и macOS (самая проблемная😩) ну и может быть андроид, но у меня его нет, предполагаю там не сложно, про iOS можно забыть ведь там только через App Store, а мы не серьезные дядьки делающие серьезные приложения, мы с тобой два абобуса, и хотим друзьям скинуть приколюху (если ты серьезный дядька, иди лучше gotk4 поизучай, fyne не очень оптимально) Сначала скачаем Go macOS linux Напишем первый hello main, https://developer.fyne.io/started/hello Далее генерируем go.mod (эту команду напишем в директории проекта) Теперь скачаем все нужные зависимости Должно получится сейчас что-то вроде такого Теперь запустим Ура победа Ну вот и все, мы научились, хотя я вроде что-то говорил про разные системы и так далее, что все сложно, а тут так просто, что-то не так. Вспомним на базовом уровне как мы запускаем приложения Мы использовали флаг -o чтобы сообщить в каком виде будет бинарник Вот и наш бинарник hello_world, он запускается с ./hello_world, это не очень удобно, плюс не у всех такая же os и архитектура процессора, как у тебя, поэтому не все смогут запустить, да и большая часть людей на windows  и они не знакомы с терминалом, поэтому нам надо собрать под разные системы и в итоге мы получим несколько бинарников.  Go кросс-платформенный и это его плюс, можно из одной платформы собрать под другую. Обычно на Go собирают под другие платформы следующим образом: И все? Так просто? Конечно нет Значит надо придется собирать через докер, но там еще и еще копать, а мы с тобой не хотим заморачиваться, мы хотим быстро написать и отправить друзьям. fyne предлагает свое решение этой проблемы Далее по идее разработчиков мы должны сразу писать через команду fyne, но так не везде и не всегда работает Теперь нам доступна команда fyne, скачаем и закинем любой .png в проект и назовем ее Icon.png И все, теперь оно установилось, //дописать Но мы получим примерно это Поэтому нам придется загрузить все зависимости для других OS, но это не самое лучшее решение, лучше всего через докер компилировать, в fyne есть туториал как это делать fyne-cross Теперь мы можем пользоваться командой fyne-cross (не забудь скачать docker) fyne-cross создал папку fine-cross, что по-моему выглядит неэстетично, ниже мы избавимся от этой папки и будем все сохранять в директорию download Теперь перейдем к macOS (к сожалению сборка под нее поддерживается только если у тебя эта os) Вообще чтобы приложение нормально работало на macOS его нужно подписывать и нотариализовывать, но это может занять много времени, поэтому я нашел небольшой hack, сначала мы сделаем dmg образ, как обычно это делают разработчики под macOS Вообще под arm можно отдельно не собирать, потому что Mac на apple silicon умеет запускать приложения для x86-64, теперь почистим мусор Ура победа? А вот и нет еще, теперь загрузим в интернет, скачаем от туда .dmg и установим приложение Такое возникает на современных macOS, потому что при первом запуске приложения система проверяет подписано и нотариализованно оно, и если нет, то помещает его в карантин Так можно снять карантин, и в итоге мы получили все что нужно, но каждый раз так муторно делать - тяжело, неприятно, поэтому я написал Makefile для того, чтобы все это автоматизировать.