Planète LiveCode
freewares, conseils de développement et astuces.

Vous trouverez sur ma planète des piles LiveCode et des conseils de programmation, ainsi que des petites astuces pour Mac OS X.
En résumé (pour plus de détails, regardez dans le menu…) Vous trouverez :
- des piles LiveCode à télécharger librement,
- l'éditeur de styles CSS HTML Styles, tous les outils pour créer un site HTML.
- une pile contenant des astuces de programmation LiveCode, exemples et scripts multi-plateformes,
- une pile pour gérer votre compte bancaire,
- un outil de sauvegarde des données utilisateur Mac,
- une base Trousseaux d'accès pour mémoriser les comptes Internet et les mots de passe qui permet de lancer directement la page concernée,
- un Carnet d'adresses associé à des codes postaux pour la France et d'autres pays. Pour archiver vos anciens contacts ou saisir les nouveaux de manière plus rapide. Compatible avec un carnet d'adresses système (OutLook, Carnet Mac…).
Pour Mac OS X, je propose :
- pour l'application Mail, une icone de timbre français en expliquant comment l'installer,
- un script permettant de préparer un mail stylé avec Safari,
- un tutoriel sur la gestion des images disque,
- et comment faire un Diaporama iPhoto sur DVD.
HyperCard est mort.
Vive Revolution LiveCode !
Date: 2 janvier 2007
Après utilisé HyperCard pendant des années, j'ai acquis Revolution Studio en novembre 2006 et viens vous faire un rapide retour de l'expérience de son utilisation pour transposer mes piles les plus indispensables.
En mettant de côté quelques petits détails agaçants, LiveCode représente la continuité des évolutions qu'Apple aurait dû donner à HyperCard : graphisme modernisé, ouverture à l'internet et aux autres plateformes, accès aux bases de données.
Le produit
Revolution s'appelle désormais LiveCode, mais c'est le même produit : le marketing n'est pas une chose bien claire…
Si vous connaissez HyperCard et que vous l'aimiez, vous retrouverez toute la richesse fonctionnelle que l'on avait dans HyperCard : réalisation de mini-applications « maison », prototypage de vraies applications, design rapide d'une interface homme-machine, mini-bases de données, etc.
- Le produit est tout à fait fiable, mais il n'est cependant pas aussi facile à aborder qu'HyperCard;
- Le langage est quasiment le même, il s'est enrichi de nouvelles fonctions et commandes couvrant tous les besoins de programmation;
- Il est possible d'importer d'anciennes piles HyperCard, mais un travail de transposition est tout de même à prévoir.
Les principales améliorations fonctionnelles portent sur les aspects suivants :
- une véritable gestion de la couleur (fond des cartes, textes, objets) et des éléments graphiques : au lieu d'affecter une icone noir et blanc à un bouton, on peut importer une image (JPEG,PNG ou GIF) ou un clip vidéo et en faire un élément actif de l'interface.
- un fonctionnement multi-plateformes : tout a été fait pour banaliser l'accès aux fichiers, de sorte que la même pile LiveCode peut fonctionner sur n'importe quelle machine avec le player « ad hoc ».
- les piles peuvent dialoguer avec des systèmes de bases de données (Oracle, mySQL…) et devenir ainsi des clients applicatifs légers émettant des requêtes sur des serveurs.
- l'accès internet est banalisé : une pile peut lire des pages HTML et en générer, télécharger en FTP vers un serveur, etc.
- une pile peut invoquer un script en lignes de commande (Terminal) ce qui permet d'accéder aux routines du système. Ceci remplace ce que l'on faisait au moyen des XCMD/XFCN d'HyperCard.
Principales difficultés
Documentation aride
Le produit est commercialisé avec une documentation que je trouve vraiment trop rustique. Il y a un manuel décrivant l'interface des outils de développement et un dictionnaire de toutes les commandes et fonctions, mais pas de didacticiel permettant d'apprendre « pas à pas » la programmation d'une pile.
Il existe un forum web donnant un certain nombre d'astuces et de solutions à des problèmes de programmation, encore faut-il savoir les trouver ! Tout est en anglais, ce qui n'est pas très grave, mais surtout, la présentation de ce forum n'est pas organisée de manière thématique. On aimerait avoir davantage de « modèles » de pile et une documentation plus complète, comme HyperCard 🙂…
L'interface est un peu déroutante au début :
Les piles contiennent une pile maître et des piles "filles", chacune composées de cartes : cette architecture permet de créer des cartes spécialisées dans l'affichage d'une boîte de dialogue, chose que l'on devait faire avec une commande externe dans HyperCard. Mais il n'y a plus de fond ! Les éléments - champs, boutons - peuvent être regroupés, ce qui équivaut à un fond.
- un inspecteur permet d'accéder aux principales propriétés de chaque objet : nom, script, dimensions, couleurs, etc. Au début, il paraît bien plus compliqué que son équivalent sur HyperCard. Certaines propriétés doivent être réglées par script car elles ne sont pas affichées dans l'inspecteur (titlewidth d'un bouton).
- un "Application Browser" permet de visualiser en liste tous les objets, d'accéder à l'inspecteur de chacun et à son script.
- le seul point vraiment empoisonnant est l'erreur de compilation à l'exécution d'un script, notamment dans un handle "on idle" : l'erreur s'affiche, mais vous ne pouvez plus la corriger car ceci n'arrête pas le programme. On s'en sort finalement en cliquant le bouton "suppress messages" qui permet à l'éditeur de script de reprendre la main.
Les principales évolutions de la programmation
- Il n'y a plus de limite à la taille d'un script : précieux pour les piles volumineuses ! Les mots-clés du script sont colorisés ce qui facilite la lecture, ainsi qu'une liste des alphabétique des handlers à gauche.
- Les variables globales peuvent être définies au niveau du script et n'ont pas être replacées au niveau de chaque handler : c'est plus simple. Il existe aussi des "locales" et des constantes partagée par tous les handlers du script qui disparaissent toutes seules lorsque les handlers sont exécutés.
- L'itemdelimiter n'est valable qu'à l'intérieur d'un handler : beaucoup plus simple aussi, car on n'a plus à tenir compte de l'état de cette propriété dans les autres handlers.
- une intéressante nouveauté est les "custom properties" : vous pouvez créer pour chaque objet une propriété spécifique dont vous réglez vous même le contenu. Ces propriétés peuvent être lues et renseignées par les scripts : plus besoin de champs cachés dans lesquels on stockait des choses…
- La gestion des menus est à la fois plus simple et plus compliquée : un éditeur permet de les créer, mais il n'est pas très fiable. Il fabrique un groupe de boutons "menus" placés sur la carte. Ce point est la principale incompatibilité pour importer des piles HyperCard qui créent un menu.
- Ma principale difficulté a été l'appel de cartes en mode « modal » pour une boîte de dialogue : la documentation est d'ailleurs trop imprécise sur ce sujet. Il s'agit de cartes que l'on appelle au milieu d'un handler pour demander à l'utilisateur d'entrer les données nécessaires à la suite. Cela marchait très bien en mode développement, mais pas avec un Player ! Le problème venait du fait que le Player ne gère pas complètement le mode modal.
LiveCode mettait à disposition sur son site différents Players, mais ils posaient quelques problèmes.
Sons of Thunder Software propose gratuitement sur son site StackRunner, un Player beaucoup plus complet, avec une version pour chaque plateforme : à préférer car il fonctionne comme Revolution Studio. - Les XCMD et XFCN peuvent fonctionner, mais uniquement sur un Mac : en réalité, le langage a tellement été enrichi qu'il existe toujours une solution en langage standard pour répondre à un besoin particulier.
En bref, hormis quelques détails agaçants pour le novice, LiveCode est la solution pour programmer de manière solide des applications spécifiques. Et il est extrêmement rapide à l'exécution : quand est-ce qu'on remplace toutes les saletés actuelles - JavaScript, Java, VisualMachin par LiveCode ?