π
<-
Chat plein-écran
[^]

Sortie du GUI Toolkit NF v1.0a pour TI Nspire & PC

:32tins: :32tinsktpb: :32tinsktpn: :32tinscas: :32tinstpkc: :32tinstpktpb: :32tinstp: :32tinscastp: :32tinscmc: :32tinscx: :32tinscxcas:

Sortie du GUI Toolkit NF v1.0a pour TI Nspire & PC

Unread postby SlyVTT » 27 Jan 2022, 17:40

Après de longs mois de dur labeur, nous sommes fiers et heureux de vous annoncer la sortie ce jour du
GUI Toolkit NF pour TI Nspire CX/CX II (CAS) et PC
en version
1.0Alpha
.
15135 15136


Le GUI Tool...Quoi ?!?
GUI Toolkit NF
?!? Mais kézako ?!?

Et bien, c'est simple : il s'agit d'une
bibliothèque de classes C++
permettant de développer très rapidement des
applications graphiques
sur
Nspire (avec Ndless) et sur PC
en utilisant des contrôles graphiques (Widgets), tels que des boutons, des listes déroulantes, des cases à cocher, des menus, etc.
Soit en gros, être capable d'avoir ça en un minimum de temps fonctionnant à la fois sur une TI Nspire ou sur un PC, juste en recompilant le programme et sans intervenir dans le code, la librairie se chargeant de gérer la création de l'exécutable dédié à la plateforme ciblée à la compilation :

15138 15143


Les TI Nspire CX/CX II sont de formidables machines, mais force est de constater qu'elles souffrent d'une grosse limitation concernant les langages de programmation Basic/Python. En effet, les fonctions de création d'interfaces homme-machine sont totalement absentes et il donc est particulièrement laborieux de créer des outils avec une belle interface de manière rapide.

Partant de ce constat, le projet GUI Toolkit a été initié en Février 2021 et visait à créer une bibliothèque (from scratch) permettant de combler ce manque pour des programmes écrits en C/C++ avec Ndless.

Le cahier des charges initial était alors relativement simple :
  • Offrir au programmeur une collection de contrôles graphiques lui permettant de coder rapidement des logiciels graphiques
  • Etre le plus simple possible à utiliser, via des appels à des fonctions au nom évocateur (In english of course, pour ne pas être trop limitatif)
  • Etre écrite en C/C++ sur la base de la toolchain Ndless pour offrir une ouverture du projet et une bonne rapidité d'exécution.

Une première version prototype a été écrite durant les premiers mois du printemps 2021, mais souffrait elle aussi de quelques limites fonctionnelles, notamment du fait de l'impossibilité de débugguer facilement les programmes destinés aux Nspire CX-II (pas d'émulation type Firebird disponible pour la Nspire CX II).


Une réflexion a donc conduit à la refonte du projet pour devenir le projet GUI Toolkit NF,
NF signifiant "New Foundation"
(Nouvelle Fondation pour les non-anglophones), offrant en prime la possibilité de faire tourner les applications destinées à la TI Nspire (et écrites avec le Toolkit bien évidemment) sur PC par une simple re-compilation (pas ré-écriture, c'est important) du code. Les bibliothèques du GUI Toolkit NF se chargeant de faire la traduction au niveau du matériel de manière totalement transparente pour l'utilisateur (le programmeur).

Ainsi, il devient très aisé de créer un programme et de le debugguer efficacement sur un PC avec les outils classiques (GCC/GDB/SDL/Valgrind ...), puis une fois fonctionnel et validé, de recompiler le programme pour une Nspire sans changer une seule ligne de code.

Un petit exemple de programme démo réalisé avec le GUI Toolkit NF, ne faisant certes rien d'utile, mais illustrant les possibilités du Toolkit et fonctionnant sur PC fait l'objet d'une courte vidéo ici :


Mais quel contenu offre le Toolkit ? Et que peut-on faire avec ?


Le toolkit offre un ensemble de classes C++ (
donc nécessitant Ndless fonctionnel sur Nspire, attention donc au Firmware installé sur la machine
) permettant de coder des applications graphiques.
Du point de vue de l'utilisateur
, il s'agit de divers
Widgets
dont un certain nombre sont visibles dans les screenshots suivants et permettant d'interagir avec le programme :

15139 Image Image 15138

  • Boutons et cases à cocher :

      [o] Boutons textuel
      [o] Bouton avec icone
      [o] Case à cocher
      [o] Bouton Radio
      [o] Bouton "Slider"
      [o] ...
  • Entrée d'informations :

      [o] InputBox pour entrée de valeurs/text
      [o] Multiline Text Box pour entrée d'un texte long
      [o] Multiline Rich Text Box pour entrée d'un texte long avec mise en forme
      [o] ...
  • Menus :

      [o] Barre de menus avec possibilité de faire des sous-menus
      [o] Barre d'icones
      [o] ...
  • Fenêtres et dialogbox :

      [o] Fenêtres redimensionnables/déplaçables
      [o] DialogBox non redimensionnables
      [o] FileDialogBox pour selectionner/naviguer dans les fichiers/répertoires
      [o] ...
  • Contexte graphique :

      [o] visualisation d'images
      [o] dessins et rendu de primitives graphiques
      [o] SplashScreen pour le début d'un programme
      [o] ...
  • ... et bien plus encore ...

Les applications peuvent contenir de
multiples bureaux
(correspondant chacun à un écran) et pouvant être facilement "switchés", il devient alors possible d'avoir des programmes avec de multiples fenêtres affichées simultanément soit sur le même bureau ou si cela est plus simple visuellement, d'avoir une fenêtre par bureau et de changer de bureau pour commuter l'affichage. Chaque bureau pouvant avoir son propre fond d'écran.

Le positionnement des Widgets
dans une fenêtre par exemple ainsi que leur taille pouvant être statique, c'est à dire définis par le programmeur au départ et immuables, ou bien au contraire
gérés dynamiquement par le Toolkit
moyennant quelques contraintes (répartition homogène de l'espace ou taille imposée) afin de correctement se repositionner lors du redimensionnement de la dite fenêtre.

Mais le rôle du Toolkit ne s'arrête pas là, et
du point de vue du Toolkit
, beaucoup de choses supplémentaires sont intégrées. En effet le Toolkit embarque un certain nombre de fonctionnalités supplémentaires, dont certaines ont fait l'objet d'un Fork indépendant appelé lib nSpireLTE pour aider à programmer sur Nspire toute sorte d'applications.

Ces fonctionnalités supplémentaires sont constituées d'un ensemble de classes permettant de gérer le niveau d'abstraction matérielle pour permettre de fonctionner à la fois sur PC et sur Nspire sans avoir besoin de recoder quoi que ce soit :
  • KeyManager
    : contenant les fonctions de bas niveau permettant de lire l’état du clavier de la TI Nspire et/ou du PC (avec gestion de l'état des touches pressée ou non à un instant "t", venant d'être appuyée ou venant d'être relâchée )
  • MouseManager
    : contenant les fonctions de bas niveau permettant de lire l’état du touchpad de la TI Nspire (mouvement du curseur, click central et gestion des flèches) ou de la souris sur PC
  • TimeManager
    : permettant de gérer les fonctions liées au temps sur la Nspire (timer, sleep, heure actuelle)
  • Debugger
    : permettant de debugger des programmes en offrant un panel de fonctions pour réaliser des sorties de logs dans un fichier et tracker impitoyablement les bugs et plantages.

Ainsi qu'un "ramasse miettes" (ou
GarbageCollector
) permettant de contrôler l'absence de fuite de mémoire au niveau des Widgets gérés par le Toolkit. Cet élément étant totalement transparent, sans intervention de l'utilisateur, chaque Widget se déclare de manière autonome lors de sa création afin d'être effacé proprement à la fin du programme.

Mais il ne faut pas non plus oublier d'autres petits trucs sympas:
  • FontEngine
    : permettant de faire le rendu de polices de caractères (avec 6 polices intégrées et la possibilité d'avoir des polices utilisateurs supplémentaires)
    Image
  • ColorEngine
    : Permettant la gestion des couleurs des Widgets
  • ThemeEngine
    : Permettant d'avoir un thème graphique pour une application donnée (Fontes de caractères et couleurs de Widgets)
    Image Image Image

Toute la mécanique étant gérée par une "super classe" (appelée
WidgetApplication
) et permettant de faire office de chef d'orchestre et de gérer les divers événements (clicks sur les Widgets, mouvements de fenêtre, appuis des touches, ...).

Il devient alors très simple de récupérer l'information de réalisation d'un événement (par exemple savoir si on a cliqué sur un bouton, ou si une CheckBox est cochée) et d'ajuster le comportement du programme en conséquence.


Comme vous l'aurez compris, il est malheureusement compliqué de ne rien oublier, s'agissant d'un gros projet, qui plus est dont le développement n'est pas clos. Beaucoup de nouvelles fonctionnalités et de nouveaux Widgets seront notamment à développer, à ajuster et/ou à ajouter au fil du temps dans de futures révisions, nous ne pouvons donc qu'effleurer la surface des possibilités offertes à travers cette news de sortie ...


Mais ce n'est que partie remise, puisqu'il est prévu de créer un fil spécifique sous forme de mini-tutoriels (avec pourquoi pas des vidéos didactiques) permettant d'illustrer la réalisation d'applications avec le GUI Toolkit NF.

La version courante du
GUI Toolkit NF
fait très régulièrement l'objet de "commits" sur GitHub ici : GitHub GUI Toolkit NF.

La phase de développement du Toolkit étant désormais suffisamment avancée, une plus grosse quantité d'énergie pourra être consacrée à sa mise en pratique pour coder des applications pour Nspire ...
La documentation détaillée est aussi en cours de réactualisation de manière à bien refléter l'avancement de la version NF. Il s'agit là encore d'un gros chantier qui va avancer dans les semaines à venir, un tel projet n'étant pas très utile sans une bonne documentation sur laquelle se baser pour coder des applications.

Alors surtout n'hésitez pas à faire remonter vos idées, vos bugs, vos tests via TI Planet ou via GitHub.

So stay tuned ... More to come (very) soon


Tutoriels vidéo de mise en pratique du GUI Toolkit NF


(Cette liste sera mise à jour au fur et à mesure de leurs sorties.)


Pour les fans et les plus motivés, j'ai créé une playlist : Playlist GUI Toolkit NF

Abonnez-vous et lâchez un pouce bleu ;-) Ca fait toujours plaisir :'D
Last edited by SlyVTT on 01 Feb 2022, 20:57, edited 1 time in total.
Some works in progress :
The GUI Toolkit NF for nSpireMagic Light for nSpire CX/CX-IIMagic Light for Casio Graph 90+ESimple Text Editor for nSpireOutRun for Casio Graph 90+E
95%
100%
100%
75%
100%
And more to come ... stay tuned
User avatar
SlyVTTPremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 61.9%
 
Posts: 307
Images: 16
Joined: 19 Jan 2021, 09:41
Gender: Male
Calculator(s):
GitHub: SlyVTT

Re: Sortie du GUI Toolkit NF v1.0a pour TI Nspire & PC

Unread postby Adriweb » 27 Jan 2022, 18:56

Très belle présentation, on voit qu'il y a pas mal de features !
Mes félicitations de nouveau :)
Image
MyCalcs
: Help the community's calculator documentations by filling out your calculator info!
MyCalcs
: Aidez la communauté à documenter les calculatrices en donnant des infos sur votre calculatrice ![/url]
Inspired-Lua.org
: All about TI-Nspire Lua programming
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 73.5%
 
Posts: 13841
Images: 1133
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
Twitter: adriweb
GitHub: adriweb

Re: Sortie du GUI Toolkit NF v1.0a pour TI Nspire & PC

Unread postby Lionel Debroux » 27 Jan 2022, 19:24

Beau travail :)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
User avatar
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 10.9%
 
Posts: 6829
Joined: 23 Dec 2009, 00:00
Location: France
Gender: Male
Calculator(s):
Class: -
GitHub: debrouxl

Re: Sortie du GUI Toolkit NF v1.0a pour TI Nspire & PC

Unread postby SlyVTT » 27 Jan 2022, 19:46

Merci beaucoup à tous les deux :-D
Some works in progress :
The GUI Toolkit NF for nSpireMagic Light for nSpire CX/CX-IIMagic Light for Casio Graph 90+ESimple Text Editor for nSpireOutRun for Casio Graph 90+E
95%
100%
100%
75%
100%
And more to come ... stay tuned
User avatar
SlyVTTPremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 61.9%
 
Posts: 307
Images: 16
Joined: 19 Jan 2021, 09:41
Gender: Male
Calculator(s):
GitHub: SlyVTT

Re: Sortie du GUI Toolkit NF v1.0a pour TI Nspire & PC

Unread postby Shadow » 27 Jan 2022, 22:02

J'ai corrigé une faute de BBcode.
Sinon, très belle annonce; bravo à toi SlyVTT :)
Shadow - Dirigeant Geometry Dash

Hey Anonymous !
Tu veux toi aussi devenir membre de la communauté Geometry Dash ?
Va voir les critères de recrutement sur le topic : viewtopic.php?t=24870.

Image
User avatar
ShadowModo
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 80.7%
 
Posts: 250
Images: 38
Joined: 26 Feb 2021, 12:46
Location: Paris
Gender: Male
Calculator(s):
Class: 1re générale : Spécialités Mathématiques - Physique-Chimie - SVT
YouTube: Geometry Dash CE
GitHub: Bryankaveen

Re: Sortie du GUI Toolkit NF v1.0a pour TI Nspire & PC

Unread postby SlyVTT » 27 Jan 2022, 22:55

Merci Shadow.

Voici un mini tuto vidéo pour le faire le classique et sempiternel Hello World



Il sert aussi à montrer la facilité d'utilisation B-)

Je ferai régulièrement des tutos pour expliquer le fonctionnement du GUI Toolkit.

Ciao

Sly
Some works in progress :
The GUI Toolkit NF for nSpireMagic Light for nSpire CX/CX-IIMagic Light for Casio Graph 90+ESimple Text Editor for nSpireOutRun for Casio Graph 90+E
95%
100%
100%
75%
100%
And more to come ... stay tuned
User avatar
SlyVTTPremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 61.9%
 
Posts: 307
Images: 16
Joined: 19 Jan 2021, 09:41
Gender: Male
Calculator(s):
GitHub: SlyVTT

Re: Sortie du GUI Toolkit NF v1.0a pour TI Nspire & PC

Unread postby Bobb » 28 Jan 2022, 14:03

MA-GNI-FI-QUE !

Tous mes programmes sont disponibles
ici

↳ Testez mon simulateur Android sur Ti-83 Premium CE et / ou Édition Python

Mon comte Instagram :
raphael.lp_


Image
User avatar
BobbProgrammeur
Niveau 10: GR (Guide de Référence)
Niveau 10: GR (Guide de Référence)
Level up: 76.9%
 
Posts: 253
Joined: 19 Apr 2020, 12:37
Location: Morbihan
Gender: Male
Calculator(s):
Class: Terminale Générale

Re: Sortie du GUI Toolkit NF v1.0a pour TI Nspire & PC

Unread postby SlyVTT » 01 Feb 2022, 13:30

Hello,

voici le deuxième tuto, pour mieux maîtriser les notions de contraintes de positionnement et taille ... et avoir un rendu des applications plus sympa.



Je posterai ainsi régulièrement des tutos pour montrer comment utiliser le GUI Toolkit NF.

Bien entendu, je profite aussi de ces tutos pour optimiser/corriger/développer le GUI Toolkit.

Ciao

Sly
Some works in progress :
The GUI Toolkit NF for nSpireMagic Light for nSpire CX/CX-IIMagic Light for Casio Graph 90+ESimple Text Editor for nSpireOutRun for Casio Graph 90+E
95%
100%
100%
75%
100%
And more to come ... stay tuned
User avatar
SlyVTTPremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 61.9%
 
Posts: 307
Images: 16
Joined: 19 Jan 2021, 09:41
Gender: Male
Calculator(s):
GitHub: SlyVTT

Re: Sortie du GUI Toolkit NF v1.0a pour TI Nspire & PC

Unread postby critor » 01 Feb 2022, 13:55

Mince, complètement oublié de le publier lundi matin comme promis et prévu, c'est vrai que tu n'es pas encore au courant de ce qui m'est tombé dessus... Toutes mes excuses.

En passant, suite à ton travail répété de qualité, je t'ai rajouté au groupe rédacteurs. Donc tu peux publier ce que tu veux quand tu veux en page d'accueil, c'est largement mérité.

Il devrait y avoir 2 grosses annonces qui arrivent
(dont une qui ne dépend pas que de moi, donc pas sûr)
. Niveau visibilité, c'est peut-être mieux d'attendre à demain matin ou jeudi matin. Je tente de ne pas oublier cette fois-ci.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 28.3%
 
Posts: 39626
Images: 11666
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti
GitHub: critor

Re: Sortie du GUI Toolkit NF v1.0a pour TI Nspire & PC

Unread postby SlyVTT » 01 Feb 2022, 14:11

Pas de problème Critor, ne t'inquiète pas.
J'espère que le problème que tu évoques n'est pas en lien avec le précédent et que tu n'as pas encore des problèmes familiaux. En tout cas je suis de tout cœur avec toi et sache que le Toolkit peut attendre, il n'est pas à 5minutes près.

Je n'étais pas tellement sur le site ces quelques derniers jours car bien occupé par ailleurs (vive le COVID dans les écoles ...). Donc tu pourras transférer en page d'accueil quand tu juges que c'est le mieux et surtout quand tu as le temps.

Bon courage et comme d'habitude, haut les cœurs !!

Sly
Some works in progress :
The GUI Toolkit NF for nSpireMagic Light for nSpire CX/CX-IIMagic Light for Casio Graph 90+ESimple Text Editor for nSpireOutRun for Casio Graph 90+E
95%
100%
100%
75%
100%
And more to come ... stay tuned
User avatar
SlyVTTPremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 61.9%
 
Posts: 307
Images: 16
Joined: 19 Jan 2021, 09:41
Gender: Male
Calculator(s):
GitHub: SlyVTT

Next

Return to News TI-Nspire

Who is online

Users browsing this forum: No registered users and 38 guests

-
Search
-
Social
-
Featured topics
Reprise de ton ancienne fx-92 Collège ou Graph 25/35/90 à 5€. Même non fonctionnelle ou ancien modèle. Etiquette de retour fournie, pas de frais de port à payer.
Coque NumWorks édition limitée Mai 2022 à gagner.
Comparaisons des meilleurs prix pour acheter sa calculatrice !
123
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
579 utilisateurs:
>569 invités
>3 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)

-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)