Sur la toile, libui tombe dans cette catégorie de projets ; du moins, pour le moment. Pour le peu qu’on puisse grappiller du dépôt GitHub, il ressort qu’il s’agit d’une bibliothèque portable C dédiée à la conception d’interfaces graphiques. Le projet publié sous licence MIT est compatible avec Windows, Unix, OS X et s’appuie sur les technologies d’interfaces graphiques natives des plateformes mentionnées. Indépendamment du système d’exploitation concerné, Cmake 3.1.0 est le minimum requis pour mener à bien le processus de build. Sous Windows, il est possible d’obtenir la bibliothèque en version statique ou dynamique en faisant usage de Visual Studio 2013. Sur cette même plateforme, MinGW-w64 permet d’obtenir la version statique uniquement.
Malheureusement, pour aller plus loin dans la connaissance de cette bibliothèque, il faudra posséder l’un des « supers pouvoirs de la taupe », à savoir : sa capacité à fouiner. À ce jour, la documentation du projet est inexistante. Les auteurs du projet ont néanmoins publié des exemples dont celui de l’utilisation de uiTimer (), une fonction introduite à la lib le mois dernier.
Code cpp : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | #include <string.h> #include <stdlib.h> #include <time.h> #include "../../ui.h" uiMultilineEntry *e; int sayTime(void *data) { time_t t; char *s; t = time(NULL); s = ctime(&t); uiMultilineEntryAppend(e, s); return 1; } int onClosing(uiWindow *w, void *data) { uiQuit(); return 1; } void saySomething(uiButton *b, void *data) { uiMultilineEntryAppend(e, "Saying something\n"); } int main(void) { uiInitOptions o; uiWindow *w; uiBox *b; uiButton *btn; memset(&o, 0, sizeof (uiInitOptions)); if (uiInit(&o) != NULL) abort(); w = uiNewWindow("Hello", 320, 240, 0); uiWindowSetMargined(w, 1); b = uiNewVerticalBox(); uiBoxSetPadded(b, 1); uiWindowSetChild(w, uiControl(b)); e = uiNewMultilineEntry(); uiMultilineEntrySetReadOnly(e, 1); btn = uiNewButton("Say Something"); uiButtonOnClicked(btn, saySomething, NULL); uiBoxAppend(b, uiControl(btn), 0); uiBoxAppend(b, uiControl(e), 1); uiTimer(1000, sayTime, NULL); uiWindowOnClosing(w, onClosing, NULL); uiControlShow(uiControl(w)); uiMain(); return 0; } |
Ils ont en sus laissé la possibilité additionnelle de consulter le fichier d’en-tête ui.h pour aller plus en avant. D’avis d’observateurs, le projet est prometteur ; de la trempe de wxWidgets. Aussi, comme son illustre prédécesseur, la bibliothèque est dotée de bindings vers une vingtaine d’autres langages dont C++, C#, JavaScript et Python.
L’équipe du projet a procédé à une extension de la galerie de contrôles offerte par la bibliothèque il y a deux ans. En voici un visuel sous Windows.
Source : GitHub
Et vous ?
Avez-vous consulté les ressources disponibles ? Pensez-vous que le projet soit prometteur ? Si oui, pour quelles raisons ?
Le fait que les sources du projet soient disponibles dédouane-t-il les auteurs de la nécessité de produire la documentation de la bibliothèque (de façon générale) ?
Pensez-vous qu’il soit logique de soumettre un pull request pour aider à documenter le projet alors que la doc nécessaire pour comprendre le code source est absente ?
Est-il possible de rédiger efficacement de la documentation pour un projet dont on n’est pas l’auteur ? Si oui, quel pourrait être le temps requis pour cette bibliothèque ?
Y a-t-il des exemples de projet open source pour lesquels vous avez dû plonger dans le code source pour essayer de rédiger la documentation ? Partagez vos anecdotes
Voir aussi :
Que faire pour minimiser l'impact des interruptions sur l'activité de développement de logiciels ? Appliquer les méthodes Agile ?
A-t-on besoin d'apprendre la programmation pendant 10 ans avant d'être un développeur accompli ? Partagez votre expérience
Y a-t-il une corrélation entre diplôme et succès en tant que développeur de logiciels ? Un acteur de la sphère donne son avis
Comment devenir un meilleur développeur ? La formation et l'expérience sont-elles suffisantes ? Vous êtes invités à partager votre avis