Sobre el proyecto

go-flutter es un proyecto de código abierto no oficial que lleva Flutter a las plataformas de escritorio. Flutter está diseñado para crear aplicaciones nativas en iOS y Android a partir de una única base de código; este proyecto extiende ese enfoque a Windows, macOS y Linux usando Go y GLFW. El motor de Flutter no se encarga por sí mismo de cuestiones de las plataformas de escritorio como la entrada de ratón y teclado. Expone una capa de abstracción para que las plataformas la implementen. go-flutter implementa la API de Embedding de Flutter con una única base de código que se ejecuta en Windows, macOS y Linux. Se usa GLFW para el renderizado porque proporciona abstracciones adecuadas sobre los búferes de OpenGL, el ratón y el teclado para cada plataforma. Se eligió Go porque ofrece herramientas coherentes entre plataformas y mantiene el código simple y legible, lo que ayuda al crear plugins multiplataforma. Primeros pasos: la ruta recomendada es instalar hover, la herramienta oficial de go-flutter para configurar, compilar y ejecutar aplicaciones Flutter en el escritorio, incluido el hot reload. El proyecto remite a un tutorial de hover y a un repositorio de ejemplos aparte. Hay información más detallada disponible en la wiki. Las características admitidas incluyen Linux, macOS y Windows; hot reload; un sistema de plugins con BinaryMessageCodec, BinaryMessageChannel, StandardMessageCodec, JSONMessageCodec, StandardMethodCodec y MethodChannel; detección de plugins compatibles; posibilidad de importarse como biblioteca Go en proyectos personalizados; entrada de texto UTF-8; copiar y pegar del portapapeles; título e icono de la ventana; atajos de teclado estándar como ctrl-c, ctrl-v, ctrl-x, ctrl-a, Home, End, shift-Home, shift-End, navegación con flechas con modificadores ctrl y shift, Backspace, ctrl-Backspace y Delete; mouse-over/hovering; botones del ratón; eventos de teclado sin procesar; formatos de distribución como windows-msi, mac-dmg, linux-appimage y más; y compilación cruzada usando Docker. Los ejemplos están en un repositorio aparte, y algunos plugins populares ya están implementados en un repositorio de plugins dedicado. La wiki contiene un tutorial sobre cómo crear un plugin. Compatibilidad de versiones: el proyecto intenta mantenerse compatible con el canal beta de Flutter; sigue siendo compatible con la última versión estable de Go; y usa go-gl/glfw para GLFW v3.3. El proyecto está licenciado bajo la Licencia BSD de 3 cláusulas.