Le premier article de cette série pour programmer avec LiveCode est ici, un dimanche évidemment.
Aujourd'hui nous essayerons de parler de la programmation pour des mobiles (téléphones, tablettes, phablettes et autres machins). Deux parties donc : En quoi c'est différent d'un programme pour un ordinateur "classique" ; et une fiche de lecture d'un nouveau livre dédié à ça et qui vient de paraître.
Pourquoi est-ce différent de programmer pour un "mobile" ?
Depuis le temps qu'existent les ordinateurs, il y a énormément de programmes qui ont été développés pour eux, et donc beaucoup de programmeurs. Il y a plusieurs sortes de programmeurs évidemment, mais en général ils ont certaines caractéristiques communes :
- un programmeur aime programmer et exercer ainsi son sens logique
- un programmeur est persuadé de programmer mieux que les autres et est toujours prêt à critiquer les programmes écrits par d'autres
- un programmeur préfère un langage de programmation, même s'il en connait plusieurs et a du mal à en changer
- un programmeur s'est construit avec le temps un ensemble de bouts de programmes utiles et un savoir-faire qui le rend plus performant dans ce langage, surtout s'il travaille en équipe avec des procédures complexes pour coordonner les développements
- un programmeur n'aime pas lire la documentation ou des livres (on dit RTFM pour pousser quelqu'un à lire le manuel qu'on ne lit pas soi-même - RTFM = Read the fucking manual, pas besoin de traduction)
- un programmeur aime aller chercher dans des forums spécialisés des solutions à ses problèmes
- un programmeur ne commente pas son code pour empêcher les autres de le lire
- un programmeur aime tout recommencer à zéro plutôt que de modifier un programme écrit par un autre programmeur forcément nul
- un programmeur aime réécrire un programme qui marche dans son langage préféré pour qu'il marche pareil.
Le mobile a changé ça de manière assez importante :
- d'abord, les mobiles existent depuis peu et font intervenir des des réflexes moins ancrés chez les développeurs
- l'utilisateur du mobile est très important. Il peut faire moins de choses que sur un ordinateur en règle générale et doit donc le faire bien, de son point de vue. L'interface utilisateur et l'ergonomie sont donc encore plus importantes que pour un programme standard
- comme il y a moins de fonctionnalités sur les appareils mobiles, souvent mais pas toujours, il faut simplifier l'expérience utilisateur pour qu'elle soit la plus directe possible
- il y a beaucoup d'applications mobiles qui font à peu près la même chose et il est très difficile de s'en distinguer. Une application moins "léchée" risque donc simplement de disparaître
- les applications pour mobiles se vendent moins cher que les applications pour ordinateurs et pourtant elles peuvent coûter plus cher pour les développer
- le mot mobile recouvre en fait plein de machins divers qui ont des caractéristiques très différentes : même s'il y a principalement des mobiles Apple (sous iOS) et des mobiles Androïd pilotés par Google, il y a des centaines de variantes en taille, en résolution, en capteurs, en capacités... et il est difficile de gérer toutes les combinaisons possibles d'un coup.
- la simple transposition sur un mobile d'une application traditionnelle ne marche pas. Personne n'en veut, ce qui est parfois dur à accepter pour un informaticien
- enfin, les mobiles ouvrent à toutes sortes d'applications qui n'existaient pas avant, du fait de la mobilité, de capteurs de proximité, du GPS, de caméras et d'appareils photos, et toutes sortes de choses liées à de nouveaux comportements des utilisateurs.
Il y a plusieurs questions clés à résoudre pour programmer sur mobile, importantes avant de s'y lancer :
- choisir ses cibles : Apple ou Androïd, ou les deux, ou tous les systèmes à la fois ? Ce choix est déterminant car il impacte le choix des outils. LiveCode permet tout, y compris la programmation de sites en HTML5 afin de développer non seulement des applications "indépendantes" mais aussi des "Web apps", c'est-à-dire des programmes qui seront visibles grâce au navigateur web de votre mobile
- choisir les tailles de mobiles visées : il y a de tout - moins chez Apple qui a bien standardisé les tailles des écrans, mais énormément chez les fabricants de terminaux Google. Etre capable de développer une application qui soit agréable à utiliser sur de multiples tailles d'écrans suppose une grande maîtrise de l'ergonomie et des outils pour calculer la place des objets sur l'écran en fonction de sa taille, dans certaines limites.
- idem pour le choix des "capteurs" que vous souhaitez utiliser : vérifier que le capteur est présent sur le mobile de l'utilisateur et le prévenir que cette application a besoin de tel ou tel capteur. Sinon l'utilisateur sera ou furieux ou frustré ou les deux, mon colonel.
- avoir compris comment "publier" son application, une fois terminée, afin que les utilisateurs puissent la trouver ou l'acheter, ou même pour en faire profiter sa famille ou ses amis (ou son entreprise/association). Il y a des "magasins" différents et chacun avec ses règles qui peuvent être complexes, et qui évoluent avec le temps. Mon conseil est simple : écrire une application toute simple et la publier pour tester la méthode. Une fois que votre application est sur le ou les magasins que vous avez identifiés, retirez-la (pour ne pas en avoir honte) et lancez-vous dans quelque chose de plus sérieux. Au moins vous saurez comment publier une application.
- bien choisir son système de développement : On parle ici de LiveCode évidemment, mais pour certaines fonctions avancées il faut faire appel à des extensions ou en écrire soi-même. Cela dépend des applications évidemment et c'est rare. Le fait de disposer d'un outil comme LC réellement multi-plateformes est un avantage certain.
- finalement, avoir compris que l'essentiel de l'application mobile est dans l'interface utilisateur. Le reste, les algorithmes et autres calculs logiques seraient les mêmes sur un ordinateur, donc ils ne sont pas propres aux mobiles. Or cette interface utilisateur a besoin d'être pilotée par l'utilisateur, avec des "gestes". Ces gestes sont devenus classiques, et l'utilisateur jettera votre application s'il ne peut pas utiliser les gestes habituels pour la piloter.On est ici dans le vrai domaine du mobile : les gestes et actions pour piloter l'application sont de plus en plus importants.
Choisissez bien votre approche. Quelques conseils pour LiveCode :
- Vous êtes débutant complet et vous apprenez à développer grâce à LiveCode : bon choix à mon avis. Lire les ressources de base sur LiveCode (voir prochain article), essayer les exemples et les "lessons" et lancez-vous dans une première application pour le fun, d'abord sur votre ordinateur (Mac, Windows ou Linux), puis seulement après sur mobile.
- Vous savez déjà programmer, mais ne connaissez rien à LiveCode : vous allez être surpris. Dépassez la surprise initiale et les critiques qui vous viendront à l'esprit (LC est verbeux, LC met des bouts de programme un peu partout). Ecrivez une première application et observez la magie lorsque vous la faites tourner sur plusieurs terminaux différents et lorsque vous voyez la facilité avec laquelle vous développez l'interface utilisateur. Puisque vous savez programmer déjà, vous savez ne pas lire les documentations (en ligne ou à coup de RTFM). Comme LC est un langage où il est facile de modifier un programme en temps réel, vous pourrez "déboguer" facilement vos premiers essais.
- Vous connaissez déjà LiveCode et voulez vous mettre au développement pour mobiles, en comprenant bien les différences avec les ordinateurs et les points sur lesquels vous devez vous concentrer. Mon conseil est simple : écrivez toute la logique de votre programme comme vous savez le faire et ensuite assemblez tout ça dans une interface utilisateur pour mobile (ce qui va vous demander du temps). Vous y gagnerez du temps. Vous chercherez des ressources pour vous aider. Il y en a dont le livre ci-dessous.
Le livre "LiveCode Mobile Development" (Collection Hotshot de Packt) - en anglais of course
Ce livre est intéressant à plusieurs points de vue :
- Il est issu d'une collection (Hotshot) où tous les livres sont basés sur le même plan, comme dans beaucoup d'autres collections, par exemple "... pour les nuls". Cette collection est centrée autour de livres pour programmeurs et autres informaticiens. Il y a donc un certain côté répétitif dans le plan pour chacun des 10 chapitres mais, après tout, la pédagogie, c'est la répétition !
Ca ne m'a pas gêné : il s'agit d'un livre de référence, pas d'un roman d'Alexandre Dumas.
- le plan type d'un chapitre est très américain : Un sujet (pourquoi ce chapitre), un "mission briefing" (ce qu'on va faire dans le chapitre), un "why" (quelles techniques on va y apprendre), une "mission checklist" pour les pré-requis éventuels à ce chapitre. Ensuite pour chacun des grands sujets du chapitre : une partie "engage thrusters" qui comprend les explications, les lignes de code et qui constitue le coeur du chapitre ; puis un "mini-debriefing" pour montrer des copies d'écran et éventuellement une partie "Classified Intelligence" pour quelques idées autres et avancées. Le chapitre se termine par un résumé de ce qui a été fait et un "hotshot challenge" pour aller plus loin avec un exercice avancé. A noter que sur le site de l'éditeur, on peut charger tous les éléments nécessaires, une fois acheté le livre : lignes de code, piles LiveCode et éléments d'accompagnement comme des images ou des sons.
La vraie plus-value est évidemment dans les annexes qu'on peut charger, car cela permet de récupérer des piles déjà faites et des les comprendre plus facilement, ainsi que de les adapter. Le développeur plus avancé se contentera presque des annexes, le débutant lira avec intérêt les chapitres.
- le niveau pré-requis n'est pas évident. Il est dit dès le début qu'il faut déjà connaître LiveCode pour rentrer dans le livre. C'est vrai en ce sens que le parfait débutant en LiveCode ne doit pas lire ce livre en premier. Il faut au moins avoir installé LC et commencé à comprendre les premiers exemples et leçons de base. Mais le livre consacre parfois des pages et des pages à savoir comment paramétrer tel ou tel bouton, y compris dans son apparence, comme si on était des enfants, alors qu'à d'autres moments il présente des techniques plus avancées de LC, et qu'enfin à d'autres moments il montre des techniques réservées aux mobiles.
Mon conseil est donc de lire ce livre, soit si vous êtes un débutant en LC avec un peu d'expérience en programmation et quelques essais en LC au préalable, soit si vous connaissez bien LC et que vous souhaitez y découvrir quelques techniques utiles pour le développement d'applications mobiles.
- sur le plan "mobile" en effet, le livre n'est pas très avancé mais il donne quelques bons conseils. Je trouve que c'est son point faible. Il devrait plutôt s'appeler "LiveCode development : des exemples simples pour mobile". Ce n'est pas une critique fondamentale. J'y ai appris des choses, mais suis ressorti déçu par le fait que les fonctions avancées ne sont même pas abordées.
Je suis particulièrement frustré par le chapitre 4 (créer des menus adaptés à votre mobile) qui n'entre pas assez dans les détails et qui fait appel à une extension payante de LC, appelée MobGUI, qui ne me parait pas la meilleure manière de réaliser une application.
- parmi les choses intéressantes qu'on trouve dans ce livre je citerai : développer sa propre interface et ses propres "boutons" plutôt que d'utiliser les boutons standards ; privilégier des graphiques plutôt que des images, car ils sont plus rapides à afficher et plus faciles en cas de changement de résolution ; utiliser la notion de "state machine" ou automate comme moyen simple de programmer des choix ; optimiser la taille de l'application en utilisant des images dans les boutons ; utiliser simplement une petite base de données SQL avec le moteur de base de données inclus dans LC...
Evidemment la plupart de ces fonctionnalités peuvent aussi être utilisées sur un appareil non mobile, mais le fait de penser "mobile" introduit à mon avis un bon état d'esprit chez le programmeur (vous ;)
- sans revenir à Alexandre Dumas qui était payé à la ligne lorsque ses romans paraissaient en feuilleton, il y a plusieurs cas où l'auteur fait du remplissage en détaillant ligne par ligne des instructions répétées pour plusieurs cartes ou boutons. C'est un peu trop ! D'autant plus que dans certains cas le programme proposé pourrait être simplifié avec une logique un peu poussée qui permettrait de minimiser le nombre de lignes à taper. Un programmeur est un paresseux et a tendance à préférer économiser le temps passé à taper. Souvent c'est pourquoi il préfère des langages réputés moins verbeux, mais illibles après coup. LiveCode, mieux programmé, peut être plus attrayant.
(Voilà ! J'ai fait comme tout programmeur, j'ai critiqué les lignes de programme de l'auteur !!!)
- le chapitre 10 est le seul vraiment "mobile" puisqu'il est consacré aux achats "in-app", c'est-à-dire à la manière pour votre application mobile de proposer aux utilisateurs des achats payants à l'intérieur de votre application, et aussi aux publicités si vous désirez en inclure. C'est une des grandes caractéristiques des applications pour mobiles.
Le chapitre est une bonne introduction à ces sujets. Il est suivi d'une annexe sur la manière de paramétrer LiveCode pour développer sur mobiles : partiel mais utile !
Tout dépend en fait de votre envie de lire. Si vous êtes du genre à préférer musarder sur l'Internet et à chercher dans les forums et listes de discussion des réponses précises à des questions, vous ne trouverez rien de nouveau dans un tel livre (et dans la plupart des livres d'ailleurs). Si vous êtes en train de commencer à utiliser LiveCode, ce livre vous donnera l'envie de programmer une application pour mobile et couvrira les points qui vous permettront de démarrer. Si vous êtes déjà sur un projet avancé, spécialement un jeu, ce livre ne vous servira à rien mais il vous est nécessaire dans votre bibliothèque (numérique), car les informaticiens adorent montrer les livres qu'ile ne lisent pas.
Je pense que l'éditeur devrait publier d'autres livres sur LC, plus avancés : comment réaliser un jeu pour mobile avec LiveCode par exemple...
Finalement
Ceci conclut notre billet d'aujourd'hui. Dimanche prochain, on reviendra aux débutants pour les accompagner, notamment en regardant comment se dépatouiller dans la galaxie des sites qui donnent des conseils sur LC.
Exercice aujourd'hui (pour ceux qui ont le livre) : Le lire et proposer une liste des chapitres que vous auriez aimé y voir !
Depuis le premier septembre 2026 et jusqu'aux élections de 2027, un blog hebdomadaire
(du 6 mai 2012 au 7 mai 2017 ? le quinquennat de François Hollande au jour le jour) : International, France, politique, science, francophonie, et même du temps de cerveau disponible de temps en temps pour des nouvelles
Lire le billet du jour
Affichage des articles dont le libellé est Livecode. Afficher tous les articles
Affichage des articles dont le libellé est Livecode. Afficher tous les articles
dimanche 24 novembre 2013
dimanche 17 novembre 2013
Du temps de cerveau pour... programmer - 1 - introduction
Sur ce blog, vous le savez, les dimanches sont consacrés à vous occuper le cerveau sans parler d'actualités. J'entame cette semaine un cycle pour parler de programmation (informatique). Pas d'affolement, le niveau nécessaire sera signalé dans la mesure du possible, même si l'ordre des articles sera un peu aléatoire. A relire après à tête reposée, avec le tag "Livecode" (pourquoi Livecode ? réponse en bas).
Introduction - Pour tous niveaux
Eh oui, pour programmer un ordinateur, dans presque tous les cas, il faut maîtriser l'anglais écrit. Les langages utilisent des mots-clés anglais plus ou moins intensivement et les documentations (que personne ne lit jamais, RTFM comme disent les anglophones - Read the fucking manual) sont en anglais, ainsi que les sites d'aide ou les livres disponibles sur le marché. Il y a plein de ressources en français et on pointera dessus chaque fois que possible, mais vous êtes prévenus.
Il y a donc trois pré-requis pour lire ces articles. Si vous ne les avez pas, passez votre dimanche à faire autre chose, comme par exemple relire les excellents articles de ce blog que vous auriez ratés, honte à vous. Les trois pré-requis sont :
- Avoir envie de programmer un ordinateur, un téléphone, un robot ou un machin électronique ; ou savoir déjà le faire (un peu, beaucoup, passionnément, à la folie) et vouloir découvrir d'autres horizons ; ou n'en rien savoir mais avoir juste un bon sens logique et de la curiosité pour répondre à la question "comment ça marche ?"
- Avoir suffisamment de connaissances en anglais de base pour comprendre des textes simples, mais un peu techniques.
- Avoir de la patience, tous les développeurs vous le diront. Accessoirement, si ça vous intéresse, avoir un ordinateur pas loin pour tester en installant des outils et du temps disponible. On apprend par la pratique. Il y a une loi bien connue, la loi d'Hofstadter (le génie qui a écrit le livre Gödel, Escher, Bach), qui peut s'énoncer ainsi : "En informatique, tout prend toujours plus de temps que prévu, même en prenant en compte cette loi". C'est une loi pessimiste mais réaliste. C'est aussi une loi récursive et on peut avoir l'impression qu'elle débouche sur un océan infini d'incertitude. Mais non, mais non...
En français on dit indifféremment programmer ou développer. Il y a plein de métiers derrière tout ça, et beaucoup de formations pour y arriver. Mais il y a aussi beaucoup de personnes qui aimeraient développer (un peu) pour réaliser des applications qui les intéressent, sans trop se prendre le chou. On trouvera dans cette catégorie des utilisateurs avancés, c'est-à-dire des personnes capables de se servir d'un ordinateur suffisamment bien pour qu'on vienne leur demander des conseils ; des enseignants (parents) qui veulent développer des petites applications pédagogiques pour leurs élèves (enfants) ; des enseignants qui souhaitent apprendre à leurs élèves les bases de la programmation plutôt que de les laisser confondre ordinateur et console de jeu ; des spécialistes de métiers divers qui aimeraient avoir des outils à utiliser au quotidien et dont seuls eux ont besoin ; des hobbyistes, passionnés par quelque chose et qui veulent aller plus loin en fabriquant leurs propres outils informatiques.
Personne ne devrait avoir peur de programmer, en fait. Il y a plusieurs avantages à ça d'ailleurs :
- en programmant, même un peu, on passe du statut de simple consommateur esclave à celui d'une personne qui a le contrôle de la machine. Cela peut paraître dérisoire, mais c'est immense. Pour une fois la machine vous obéit à vous, et à vous seul.On ne regarde plus les ordinateurs comme avant, une fois cette expérience vécue.
- en programmant soi-même, on exerce son cerveau à ne pas s'endormir. A tout âge, il s'agit d'une activité très stimulante qui mobilise beaucoup de cases différentes de notre cerveau.
- en programmant, on atteint un résultat facilement visible, ce qui est très gratifiant. C'est un vrai processus de création. Il y en a beaucoup d'autres évidemment, mais aucun n'est plus noble qu'un autre. Une création est une création et la créativité est ce qui nous différencie d'une table de salle à manger ou d'un paquet de pop-corn sur un canapé.
De manière générale, vous trouverez des ressources pour programmer à plusieurs endroits : Attention, tout ceci peut vite devenir compliqué.
- Comment passer de non-programmeur à programmeur ? (Le Monde)
- Lins Wikipedia à partir de cette page (comme une référence au cas où)
- petits exercices à lire en premier pour voir de quoi on parle (pseudocode - lisible)
- initiation aux algorithmes (Clermont-Ferrand - lisible)
- initiation à partir de la pâte à crêpes, si, si (Belgique - lisible, puis trop ardu)
- c'est quoi un algorithme, pour non-matheux (Pise - lisible mais un peu ardu)
- initiation à Java pour les enfants, ls parents et les grands parents (Ici - ardu)
- initiation à la programmation (Université Lille I - ardu)
En particulier sur ce blog, je vous parlerai d'un seul langage de programmation, pour éviter de mélanger les torchons et les serviettes. Je l'aime bien et le connais bien. Il peut parfaitement servir à la fois au pur débutant, au développeur très occasionnel ou au développer professionnel et régulier. On peut y faire facilement une application d'un papa pour son fils, un petit jeu aussi, mais plus difficilement une université en entier a utilisé ce système pour développer toute sa gestion par exemple.
Programmer, c'est du concret, donc installez un machin et allez-y.
Je vous propose d'installer Livecode :
- Allez ici pour télécharger la version que vous souhaitez : c'est gratuit et libre (open source). Il y a une version commerciale mais vous n'en aurez pas besoin. Entrez une adresse électronique et choisissez "Community édition". C'est un peu fatigant mais après quelques mails vous pourrez télécharger Livecode ici (une fois votre compte créé) et choisir la version que vous voulez : PC-Windows, PC-Linux ou Mac. Moi je travaille sur Mac.
- Installez-la et jouez avec. Dans le menu Help il y a des exemples et des tutoriels (en anglais, rappelez-vous).
- Si vous n'y arrivez pas, mettez un commentaire ou écrivez-moi.
- Si vous n'y arrivez pas, mettez un commentaire ou écrivez-moi.
La semaine prochaine, pour contrebalancer et parler à ceux qui connaissent , je vous ferai une fiche de lecture d'un livre qui vient de paraitre (en anglais) et qui s'adresse à des programmeurs connaissant déjà Livecode qui souhaitent développer des applications pour mobiles (iPhone ou Androïd). Niveau avancé donc, mais ça donnera aux autres un parfum de ce qu'on peut faire. Le niveau sera avancé, mais on reviendra ensuite en arrière et on repartira en avant ;)
Juste avant, une explication : je ne suis pas un développeur professionnel, mais Livecode et le "Livecode programming" est un choix que je vous recommande pour plusieurs raisons :
- C'est un système simple à l'usage, après un temps d'acclimatation, et qui peut servir à des développement rapides ou à des machins très compliqués, dans la même logique. Tout se passe comme si le système vous accompagnait au fur et à mesure, sans avoir besoin de changer de système.
- C'est un système multiplateformes comme on dit : vous développez un petit (ou gros) programme et il fonctionnera sur Windows, Linux, Mac, iPhones et iPads et Androïd. Evidemment il y aura des différences mais pour des programmes simples, tout fonctionne pareil. C'est rassurant !
- C'est un système qui combine agréablement le graphisme et le langage. Programmer, c'est toujours écrire des lignes de "code". Mais c'est aussi concevoir de jolis écrans, réaliser une interface ergonomique pour l'utilisateur, pouvoir facilement modifier les choses car on ne sait pas toujours (en fait jamais) où on va... La partie "écriture de lignes de programme" n'est pas la plus importante et Livecode est très agréable pour ça.
- C'est devenu un système libre et ouvert depuis quelques mois. On peut imaginer des évolutions intéressantes à l'avenir, y compris même, pourquoi pas - rêvons un peu - une traduction du langage lui-même en français.
- Et surtout, Livecode est l'héritier vivant d'un des mythes de l'informatique, appelé Hypercard. Inventé par Apple pour le lancement du Macintosh, il y a presque 30 ans maintenant, Hypercard a révolutionné le monde de ce que l'on pouvait faire avec un ordinateur. Il y a eu un avant et un après Hypercard. Les informaticiens purs et durs contestent cela évidemment, mais les êtres humains normaux le savent. Hypercard permettait à tous ou presque de développer plein de petits machins. Livecode est maintenant beaucoup plus sophistiqué et riche, mais c'est la même famille. On peut ouvrir beaucoup de vieilles piles Hypercard avec Livecode. Exemples en français ici.
Donc ici, certains dimanches, je vous proposerai un voyage dans la programmation avec Livecode, avec des niveaux différents suivant les dimanches.
Bienvenue dans les commentaires à ceux qui veulent en parler. Et pas seulement ceux qui savent déjà développer.
Exercice :
- Lancer Livecode
- Créez une nouvelle pile (Menu File/New Mainstack)
- Clic droit dans la fenêtre puis "Edit card script" pour modifier le script (programme)
- Lancer Livecode
- Créez une nouvelle pile (Menu File/New Mainstack)
- Clic droit dans la fenêtre puis "Edit card script" pour modifier le script (programme)
- tapez ça, puis validez (bouton "Apply") :
on opencard
answer "Hello"
end opencard
on opencard
answer "Hello"
end opencard
Vous venez d'écrire votre premier programme, celui qu'écrivent tous les programmeurs pour débuter : afficher "Hello" pour vérifier que votre système est fonctionnel.
Pour tester votre programme, plusieurs solutions :
- quitter Livecode en enregistrant votre programme/pile et relancez le
- faire un clic droit dans la fenêtre et "Send card message" puis "opencard"
- ou plein d'autres que je vous laisse découvrir.
Inscription à :
Articles (Atom)
