TinyGo, Petit mais costaud 💪 🐮 Aurélie Vache - @aurelievache | 🐼 Thierry Chantier - @TitiMoby

Un Grand MERCI à nos sponsors 2025 ⭐ ❄

Aurélie Vache @aurelievache Developer Advocate chez Organisatrice de conférences Rédactrice d’articles & de livres tech Sketchnoteuse … & ❤ Retrogaming https://developers.events https://www.youtube.com/AurelieVache https://dev.to/aurelievache/ Les Productions de MOA

Thierry Chantier Developer Advocate OVHcloud TitiMoby@mamot.fr TitiMoby 🔗 https://noti.st/titimoby

La petite histoire 🐼

La petite histoire 🐼

La petite histoire 🐼

La petite histoire 🐮 - Wow!!! FOSDEM 2020

La petite histoire 🐮 - série d’Article sur Go

La petite histoire 🐮 - Expérimentations TinyGo @conejo

La petite histoire 🐮 - série d’Article sur Go

TinyGo 🐮 “Go compiler for small places” : - Microcontrollers - Web Assembly https://tinygo.org/docs/reference/microcontrollers/

🐮 TinyGo 7/06/2018 : Le tout premier commit grâce à Ayke van Laethem, TinyGo est né ! 🎉

🐮 TinyGo 01/02/2019 : Première release v0.1. 03/02/2019 : Au FOSDEM TinyGo est mis en avant & l’évangélisation est alors portée par Ron Evans (@deadprogram).

🐮 TinyGo 02/02/2020 : Toujours très visible au FOSDEM, TinyGo devient un projet sponsorisé officiellement par Google. L’arrivée de WASM en cible de compilation confirme le succès de TinyGo.

🐮 TinyGo Le projet sur GitHub a dépassé les 15K ⭐

🐼 Go vs TinyGo vs

🐼 Go vs TinyGo go build -o hello-go main.go 1,5M hello-go | tinygo build -o hello-tinygo 114K hello-tinygo

🐼 TinyGo: les petits secrets

🐼 TinyGo CLI: comment l’installer ? https://tinygo.org/getting-started/install/

Démos !

Microbit Création en 2016 à l’initiative du gouvernement UK Simple mais complète Programmable par bloc, Python… https://microbit.org/

GopherBadge Création en 2023 par Daniel “@conejo” Esteban Pensé pour promouvoir TinyGo Basé sur un Raspberry Pi RP2040 1 LED bleue 2 LEDs RGB Neopixel Accéléromètre LIS3DHTR Ecran 320x240 IPS TFT 6 boutons buzzer https://gopherbadge.com/

🐮 Game Boy Advance

🐮 Game Boy Advance Ecran 240x160px 32 768 couleur (15-bit) Un pad multidirectionnel, boutons “A”, “B”, “L”, “R”, “START” & “SELECT” Core ARM7TDMI 32 bits avec mémoire intégrée

🐮 Game Boy Advance > demo

🐮 Game Boy Advance > demo 2,7K 3 jan 18:42 06-Eyes/eyes.gba https://github.com/titimoby/tinygo-examples/tree/main/gba/06-Eyes

🐮 Game Boy Advance > demo

🐮 Game Boy Advance > demo 33K 4 jan 13:50 03-Gopher/gopher.gba https://github.com/titimoby/tinygo-examples/tree/main/gba/03-Gopher

🐮 Game Boy Advance > demo

🐮 Game Boy Advance > demo 14K 3 jan 20:55 08-LetsDraw/telecran.gba https://github.com/titimoby/tinygo-examples/tree/main/gba/08-LetsDraw

🐮 Game Boy Advance Commande : Emulateur : https://mgba.io/

Outils pratiques

🐮 TinyDraw Permet de dessiner des figures géométriques (basé sur la librairie Adafruit GFX). https://github.com/tinygo-org/tinydraw

🐮 TinyFont Permet d‘afficher du texte/d’utiliser des “fonts” (basé sur la librairie Adafruit GFX). https://github.com/tinygo-org/tinyfont

🐮 TinyFont > 2ttf playground Permet de tester des fonts avant de les utiliser. http://2ttf.com/typetest.php?id=HCQ3PvcaQ4U

🐮 TinyGBA Librairie pour TinyGo permettant de développer pour la Game Boy Advance. < Sans tinygba Avec tinygba > https://github.com/tinygo-org/tinygba

🐮 TinyGo playground https://play.tinygo.org/

🐮 VsCode extension

🐮 Ressources ● https://github.com/titimoby/tinygo-examples/ ● https://dev.to/aurelievache/learning-go-by-examples -part-5-create-a-game-boy-advance-gba-game-in-go-59 44 ● https://tontoncodeur.fr/tinygo/ ● https://k33g.hashnode.dev/wasi-first-steps https://gophers.slack.com/messages/CDJD3SUP6/

Conclusion

🐼 TinyGo, un monde parfait ? Débuter est un peu difficile : - Documentation en progrès mais pas encore parfaite

🐼 TinyGo, un monde parfait ? Débuter est un peu difficile : - Documentation en progrès mais pas encore parfaite - Des exemples … pas forcément mis à jour et clairs

🐼 TinyGo, un monde parfait ? Débuter est un peu difficile : - Documentation en progrès mais pas encore parfaite - Des exemples … pas forcément mis à jour et clairs - Mais, des progrès ont été fait grâce à Gopher Badge et @conejo 💪 https://github.com/conejoninja/gopherbadge/tree/main/tutorial/basics

🐼 TinyGo, un monde parfait ? Débuter est un peu difficile : - Certains drivers sont encore en version “expérimentales” donc soumis à changements (GBA…)

🐼 TinyGo, un monde parfait ? Débuter est un peu difficile : - Certains drivers sont encore en version “expérimentales” donc soumis à changements (GBA…) - Certaines fonctionnalités sont commencées mais pas terminées

🐼 TinyGo, un monde parfait ? Pourquoi c’est tellement cool de se lancer : - Apprendre un nouveau langage

🐼 TinyGo, un monde parfait ? Pourquoi c’est tellement cool de se lancer : - Apprendre un nouveau langage - Bricoler et s’amuser avec de l’ électronique

🐼 TinyGo, un monde parfait ? Pourquoi c’est tellement cool de se lancer : - Apprendre un nouveau langage - Bricoler et s’amuser avec de l’ électronique - … Faire vivre sa GBA c’est tellement cool !

TinyGo, un monde parfait ? A vous de jouer !

merci https://ovh.to/FEMVA66

Questions ?