À propos du projet

go-flutter est un projet open source non officiel qui amène Flutter sur les plateformes de bureau. Flutter est conçu pour créer des applications natives sur iOS et Android à partir d'une base de code unique ; ce projet étend cette approche à Windows, macOS et Linux en utilisant Go et GLFW. Le moteur Flutter ne gère pas lui-même les problématiques propres aux plateformes de bureau telles que la souris et le clavier. Il expose une couche d'abstraction que les plateformes doivent implémenter. go-flutter implémente l'API d'Embedding de Flutter avec une base de code unique qui fonctionne sur Windows, macOS et Linux. GLFW est utilisé pour le rendu car il fournit des abstractions adaptées aux tampons OpenGL, à la souris et au clavier pour chaque plateforme. Go a été choisi car il offre un outillage cohérent entre les plateformes et garde le code simple et lisible, ce qui aide lors de la création de plugins multiplateformes. Pour commencer : la voie recommandée est d'installer hover, l'outil officiel de go-flutter pour configurer, compiler et exécuter des applications Flutter sur le bureau, y compris le hot reload. Le projet renvoie à un tutoriel hover et à un dépôt d'exemples distinct. Des informations plus approfondies sont disponibles dans le wiki. Les fonctionnalités prises en charge incluent Linux, macOS et Windows ; le hot reload ; un système de plugins avec BinaryMessageCodec, BinaryMessageChannel, StandardMessageCodec, JSONMessageCodec, StandardMethodCodec et MethodChannel ; la détection des plugins pris en charge ; l'importabilité en tant que bibliothèque Go dans des projets personnalisés ; la saisie de texte UTF-8 ; le copier-coller via le presse-papiers ; le titre et l'icône de la fenêtre ; les raccourcis clavier standard tels que ctrl-c, ctrl-v, ctrl-x, ctrl-a, Home, End, shift-Home, shift-End, la navigation par flèches avec les modificateurs ctrl et shift, Backspace, ctrl-Backspace et Delete ; le survol de la souris ; les boutons de la souris ; les événements clavier bruts ; les formats de distribution incluant windows-msi, mac-dmg, linux-appimage et d'autres ; et la compilation croisée à l'aide de Docker. Les exemples se trouvent dans un dépôt distinct, et certains plugins populaires sont déjà implémentés dans un dépôt de plugins dédié. Le wiki contient un tutoriel sur la création d'un plugin. Compatibilité des versions : le projet s'efforce de rester compatible avec le canal beta de Flutter ; il reste compatible avec la dernière version stable de Go ; et il utilise go-gl/glfw pour GLFW v3.3. Le projet est sous licence BSD 3-Clause.