Blog Pro de Jean-Baptiste HEREN - Tag - cappuccinoNotes d'un consultant Freelance en Informatique2015-11-03T21:34:19+01:00JB HERENurn:md5:e39389b5ec134d99645112fce3d957dfDotclearConvergence des applications Bureau / Web / Mobileurn:md5:9bc165d6ed800daaf7c7af5e4ff546512010-07-21T22:53:00+02:002010-07-23T15:48:47+02:00Jean-Baptiste HerenVeille technocappuccinodéveloppement webFramework WebMacOSX<p>Il se passe quelque chose du côté des outils de développement. ce n'est pas
une nouveauté. La convergence progresse et l'on trouve de plus en plus de
sociétés allant dans ce sens.</p>
<h1>Un peu d'histoire</h1>
<p>Sur le terrain des outils de développement "universels", on a constaté
l'évolution suivante :</p>
<ul>
<li>il y a JAVA, bien sûr, avec son énorme API et sa machine virtuelle, capable
de fonctionner sur une multitude de plateformes.</li>
<li>puis il y a eu les API multi-plateforme comme mono, GTK ou QT. L'idée étant
de développer une fois, compiler partout (pour le bureau)</li>
<li>on a eu Adobe (Macromedia) avec Flash, l'arrivée de ActionScript 3, puis
Flex pour le web, et enfin, AIR. AIR est le véritable résultat de la
convergence. Prenez un développeur Actionscript ou HTML/Javascript, il sera
capable de développer des applications Web ou de bureau avec un outil Unique.
Pour aller plus loin, Adobe a même été jusqu'à permettre la compilation
d'applications Flash sous la forme d'apps natives pour l'iphone.</li>
</ul> <h1>Et après ?</h1>
<img title="atlas-icon-png.png, juil. 2010" style="float: right; margin: 0 0 1em 1em;" alt="" src="http://blog.jbheren.com/public/tuto/cappuccino/.atlas-icon-png_s.jpg" />L'exemple le plus intéressant
de convergence, à mon sens, est celui de <a href="http://cappuccino.org/">cappuccino</a> (et peut-être le futur Framework
d'applen <a hreflang="en" href="http://www.appleinsider.com/articles/10/05/07/apple_developing_flash_alternative_named_gianduia.html">
Gianduia</a> ).
<p>Déjà évoqué sur ce blog, Cappuccino est un Framework permettant le
développement d'applications Web, calqué sur le mode de développement
d'applications Apple. Sur MacOS, et maintenant iOS, les applications sont
développées a l'aide de l'outil XCode. l'API Apple est nommée <a href="http://fr.wikipedia.org/wiki/Cocoa_%28Apple%29">cocoa</a> et le langage de
prédilection est <a href="http://fr.wikipedia.org/wiki/Objective-C">Objective-C</a>.</p>
<p>Pour cappuccino, le langage est Objective-J (une déclinaison de javascript,
utilisant un formalisme proche de objective-C et créée pour l'occasion) et
l'API se calque sur cocoa. de cette manière, un développeur Mac pourra être
rapidement productif avec Cappuccino.</p>
<p>La cible initiale de Cappuccino était le développement de véritables
applications prenant place dans le navigateur. Pour exemple, voici deux
applications développées avec cappuccino :</p>
<ul>
<li><a href="http://280slides.com/">280slides</a> : Application de démo, aux
fonctionnalités équivalentes à Keynote, le powerpoint d'Apple.</li>
<li><a href="http://gomockingbird.com/">MockingBird</a> : Outils de création de
maquettes en ligne, équivalent de <a href="http://blog.jbheren.com/post/2009/12/14/Maquettes-d-applications-avec-Balsamiq-Mockup">
balsamiq Mockup</a>, mais Sans Flash !</li>
</ul>
Cappuccino continue sa progression et nous avons vu apparaître récemment la
possibilité de compiler les applications pour le bureau, par l'intermédiaire du
module <a href="http://cappuccino.org/discuss/2010/05/13/nativehost-run-your-cappuccino-applications-on-the-desktop/">
NativeHost</a>.<br />
A cela s'ajoute le développement d'un IDE complet dédié au Framework et calqué
sur le célèbre Xcode : <a href="http://280atlas.com/what.php">Atlas</a>. Je
vous invite à visiter le site web de l'application et à visionner la <a href="http://280atlas.com/what.php">vidéo de présentation</a>.<br />
<br />
<br />
<object classid="http://blog.jbheren.com/?post/2010/07/21/Convergence-des-applications-Bureau-/-Web-/-Mobile#" id="viddler" width="437" height="315"><param name="movie" value="http://www.viddler.com/player/1db9bf4d/" />
<param name="allowScriptAccess" value="always" />
<param name="allowFullScreen" value="true" />
<param name="flashvars" value="fake=1" /></object>Ces Frameworks qui laissent entrevoir l'avenir du Web.urn:md5:6e8583655b41c71a3efd20704a7b2cbe2010-03-17T11:35:00+01:002010-07-21T13:50:01+02:00Jean-Baptiste HerenVeille technocappuccinodéveloppement webFramework Web<p>Dans le cadre de recherches sur les technologies web et donc les Frameworks
qui auraient l'avantage dans les mois les années qui viennent, j'ai été
vraiment surpris du nombre et de la qualité des projets existants.<br />
Ce que l'on a appelé le "Web 2.0" a tenté de rendre les sites web aussi
réactifs que des applications de bureaux. La plupart du temps, cela se limite à
des effets visuels, parfois cela a fait germer de nouvelles idées. Cette
tendance nécessitait de coordonner de nombreuses technologies dans un précaire
équilibre, afin d'obtenir un site qui fonctionne (Javascript / HTML / PHP / CSS
/ Flash , etc.).<br />
L'apparition de Frameworks ajoutant un niveau d'abstraction face aux multiples
langages interagissant dans notre bon vieux navigateur, a été le début d'une
révolution. On pense à Ruby, suivi de cakePHP et Symphony. Pour atuant, leur
utilisation nécessite toujours une bonne connaissance de DOM et des langages du
web.</p> Aujourd'hui dans une phase de sélection d'un Framework pour développer des
projets internes, je suis finalement tombé sur des frameworks d'un autre genre.
Ceux-là visent la convergence entre des applications et du web; ou comment
développer une application Web ("cloud application" pour faire référence au
vocable du moment) comme on le faisait avec une application de bureau.<br />
<br />
<h2>Cappuccino Web Framework</h2>
<p>Le <a href="http://cappuccino.org">Framework Cappuccino</a> est Open Source
et fonctionne sur un calque du modèle de développement propre à MacosX
(cocoa/objective-C). Le développeur n'a pas besoin de manipuler sur javascript/
HTML/ CSS. Tout se passe à un niveau d'abstraction supérieur, et le résultat
est saisissant. Les concepteurs ont souhaité créer un langage (Objective-J) et
une API suffisantes, dont l'utilisation ne nécessite aucune connaissance du
HTML ou du CSS.</p>
<p>Pour exemple, je vous invite à visiter les deux adresses suivantes :</p>
<ul>
<li><a href="http://280slides.com/Editor/">280Slides</a> : Application du type
Keynote/Powerpoint en ligne.</li>
<li><a href="http://gomockingbird.com/">MockingBird</a> : Outils de création de
maquettes en ligne, équivalent de <a href="http://blog.jbheren.com/post/2009/12/14/Maquettes-d-applications-avec-Balsamiq-Mockup">balsamiq
Mockup</a>, mais Sans Flash !<a href="http://gomockingbird.com/"><img style="width: 360px; height: 196px;" alt="" src="http://gomockingbird.com/media/images/main-screenshot.png" /></a></li>
</ul>
<br />
<br />
Sous réserve de complexité d'apprentissage de ce nouveau type de framework, on
peut donc considérer que nous devrons travailler à l'avenir, non plus avec un
mélange de technos "à l'ancienne" nécessitant une expérience conjointe en
CSS/PHP/Javascript, mais plutôt avec différents Frameworks pour différents
besoins :<br />
<ul>
<li>Un site Web passera plutôt par l'utilisation d'un Symphony /cakePHP/
Ruby.</li>
<li>Une application en ligne, plutôt un Cappucchino ou SproutCore.</li>
</ul>
<br />
<h2>Et donc ?</h2>
Reste maintenant à expérimenter, mais si l'on considère que "Qui peut le plus
peut le moins", il est peut-être plus intéressant d'investir dans
l'apprentissage et la maîtrise des "Frameworks d'applications", y compris pour
des besoins simples...<br />