<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>La Fabrick &#187; Bientôt chez vous</title>
	<atom:link href="http://www.lafabrick.com/blog/category/technologie/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lafabrick.com/blog</link>
	<description>Laboratoire d&#039;interfaces riches (Flex, Flash, Air ...)</description>
	<lastBuildDate>Mon, 28 Nov 2011 22:02:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Barcamp Lyon : Mix-IT, Flex, Java, PHP, JS, Cloud&#8230; (et chips)</title>
		<link>http://www.lafabrick.com/blog/2011/07/08/2621-barcamp-lyon-mix-it-flex-java-php-js-cloud-et-chips/</link>
		<comments>http://www.lafabrick.com/blog/2011/07/08/2621-barcamp-lyon-mix-it-flex-java-php-js-cloud-et-chips/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 12:01:34 +0000</pubDate>
		<dc:creator>Hervé</dc:creator>
				<category><![CDATA[Bientôt chez vous]]></category>
		<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=2621</guid>
		<description><![CDATA[Source Ayant eu l&#8217;honneur et l&#8217;avantage de participer au BarCamp Summer Lyon, je vous propose un petit retour d&#8217;expérience sur cette excellente initiative d&#8217;un ensemble d&#8217;assoc&#8217; actives de la région lyonnaise : Mix-IT LyonRB Club Agile Rhône-Alpes de Lyon Flex/Flasheurs MUG Lyon Lyon Java User Group Développeurs PHP de Lyon L&#8217;objectif : donner l&#8217;opportunité à [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="BarCamp Geek" src="http://itmanagement.earthweb.com/img/2010/03/another-geek-bar.jpg" alt="" width="400" height="279" /><a href="http://itmanagement.earthweb.com/cnews/article.php/3873081/Tech-Comics-Another-Geek-in-a-Bar.htm"></a></p>
<p style="text-align: center;"><a href="http://itmanagement.earthweb.com/cnews/article.php/3873081/Tech-Comics-Another-Geek-in-a-Bar.htm">Source</a></p>
<p>Ayant eu l&#8217;honneur et l&#8217;avantage de participer au BarCamp Summer Lyon, je vous propose un petit retour d&#8217;expérience sur cette excellente initiative d&#8217;un ensemble d&#8217;assoc&#8217; actives de la région lyonnaise :</p>
<ul>
<li><a href="http://www.mix-it.fr/">Mix-IT</a></li>
<li><a href="http://lyonrb.fr/">LyonRB </a></li>
<li><a href="http://www.flex-tutorial.fr/2011/05/25/flex-user-group-lyon-rendez-vous-le-mardi-7-juin-avec-lafabrick-concours/"></a><a href="http://lyon.clubagilerhonealpes.org/">Club Agile Rhône-Alpes de Lyon</a></li>
<li><a href="http://lyon.clubagilerhonealpes.org/"></a><a href="http://www.flex-tutorial.fr/2011/05/25/flex-user-group-lyon-rendez-vous-le-mardi-7-juin-avec-lafabrick-concours/">Flex/Flasheurs</a></li>
<li><a href="http://lyon.clubagilerhonealpes.org/"></a><a href="http://twitter.com/#!/muglyon">MUG Lyon</a></li>
<li><a href="http://twitter.com/#!/muglyon"></a><a href="http://www.lyonjug.org/">Lyon Java User Group</a></li>
<li>Développeurs PHP de Lyon</li>
</ul>
<p><strong>L&#8217;objectif</strong> : donner l&#8217;opportunité à chacun de présenter un sujet qu&#8217;il connaît ou sur lequel il souhaite échanger librement. Les choix de sujets étaient proposés sur une base de volontariat, les sujets retenus votés à la gommette comme au bon vieux temps (comme on aime quoi).</p>
<p>Le public était quasi-exclusivement technique (à l&#8217;évidence), issus de SSII / éditeurs, et composé d&#8217;architectes, développeurs web, coach agile, chefs de projets, entrepreneurs&#8230;</p>
<p>En résumé, un bon rythme, des sujets &laquo;&nbsp;en vogue&nbsp;&raquo; avec échanges constructifs sur les intérêts / risques de chaque techno ou méthodo.</p>
<p><span id="more-2621"></span>Voici un rapide retour sur les thématiques auxquelles j&#8217;ai assisté, pour alimenter la discussion et inviter à poursuivre cette initiative !</p>
<h2>DevOps</h2>
<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Arial} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Arial; min-height: 14.0px} li.li1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Arial} ul.ul1 {list-style-type: disc} ul.ul2 {list-style-type: circle} -->En tant que newbie du sujet, j&#8217;ai cerné DevOps comme consistant en un <strong>ensemble de pratiques et principes d&#8217;échanges pour une meilleure communication entre équipes</strong> infra / support et équipes de développement. Ces principes se déclinant en :</p>
<ul>
<li>organisation projet,</li>
<li>modes de communication,</li>
<li>outils.</li>
</ul>
<p>Une forte composante de cette méthodologie réside dans les deux premiers points : comment <strong>briser les barrières entre équipes de support, administrateurs système et équipes de développement</strong>. Cette cassure visant à impliquer chacun dans le process projet et fluidifier les échanges.</p>
<p>Pour cela, la méthodologie intègre fortement les principes de l&#8217;agilité, suggère une fréquence élevée de livraisons etc. &#8230; Pour plus d&#8217;infos, je vous invite à <a title="DevOps" href="http://en.wikipedia.org/wiki/DevOps">consulter l&#8217;article DevOps sur Wikipedia (anglais)</a>.</p>
<p>Niveau outils, nous avons échangé sur les systèmes d&#8217;intégration continue et de déploiement automatisé (installation et configuration de machine en un clic).</p>
<p>Un retour a été donné sur les outils suivants :</p>
<ul>
<li><a href="http://www.puppetlabs.com/">Puppet</a> (Ruby) : assez simple à prendre en main, grosse communauté</li>
<li><a href="http://cfengine.com/">CFengine</a> : performant mais peu de retours d&#8217;expérience et pas d&#8217;interface graphique</li>
<li><a href="http://wiki.opscode.com/display/chef/Home">chef</a> (beaucoup plus complexe)</li>
</ul>
<p>Une limite signalée à propos de ces outils touche principalement les entreprises &laquo;&nbsp;désossant&nbsp;&raquo; les paquets standards selon leur propre norme, ne laissant donc on ne peut plus utiliser les paquets standards. C&#8217;est toujours bon à savoir <img src='http://www.lafabrick.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Les avantages sont en revanche multiples :</p>
<ul>
<li>Le versionnement d&#8217;un script puppet rend extrêmement simple toute <strong>procédure de retour arrière</strong> (rollback) sur le serveur.</li>
<li>La <strong>montée en volume d&#8217;un parc de machines</strong> hébergées en interne devient un jeu d&#8217;enfant</li>
<li>On peut aller jusqu&#8217;à envisager les backups (machine, données, sources)</li>
</ul>
<p>L&#8217;administrateur déporte donc son travail sur l&#8217;outil puppet plus que sur le serveur lui-même, <strong>transformant son métier plutôt que l&#8217;annihilant</strong> (et au passage le rendant plus intéressant ? On aime bien ne faire les choses qu&#8217;une fois en général <img src='http://www.lafabrick.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<p>D&#8217;un point de vue humain, un principe intéressant consiste à intégrer les équipes de support et d&#8217;administration <strong>le plus tôt possible dans les phases de conception</strong> d&#8217;un projet pour intégrer au mieux leur contraintes, et simplifier les échanges ultérieurs. En résumé, comprendre les problèmes des autres permet souvent d&#8217;y apporter une solution simple à laquelle on n&#8217;aurait jamais pensé. Ca paraît évident à dire, moins à faire !</p>
<p>Nous avons enfin échangé sur des problématiques comme :</p>
<ul>
<li>Combien ça coûte ? Quelques tuyaux résident dans le chiffrage :
<ul>
<li><strong>A priori</strong> : estimer le gain sur la maintenance (très difficile)</li>
<li><strong>A posteriori</strong> : estimer le gain en comparaison avec un autre projet (techniquement plus simple, mais souvent négligé voire oublié selon la coutume &laquo;&nbsp;ce qui est fait est fait&nbsp;&raquo;)</li>
</ul>
</li>
<li>Décloisonner demande un état d&#8217;esprit ouvert : lorsque les tensions sont déjà fortes, il y a fort à parier que la mayonnaise ne prenne pas</li>
</ul>
<p>Et vous, êtes-vous DevOps ?</p>
<h2>TDD / BDD</h2>
<p style="text-align: center;"><img class="aligncenter" title="Une représentation donnée par Microsoft" src="http://i.msdn.microsoft.com/gg490346.Satrom_Figure2_hires(en-us,MSDN.10).jpg" alt="" width="400" height="176" /><br />
<a href="http://msdn.microsoft.com/en-us/magazine/gg490346.aspx">Source</a></p>
<p>Sans revenir trop longtemps sur le Test Driven Development et sa clique (JUnit, DBUnit, NUnit, FlexUnit, PHPUnit&#8230;), nous avons abordé un nouvel acronyme pour moi : BDD (<strong>B</strong>ehavior <strong>D</strong>riven <strong>D</strong>evelopment), dont le principe est bien mieux expliqué <a href="http://fr.wikipedia.org/wiki/Behavior_Driven_Development">sur Wikipedia</a> que je ne saurais le faire.</p>
<p>Le retour d&#8217;expérience a été donné principalement sur <a href="http://jbehave.org/">JBehave</a> qui propose de rédiger des <strong>exigences sous forme de fichiers au format texte</strong> comprenant trois mot-clés principaux : GIVEN (définir une situation) WHEN (définir un événement déclencheur) THEN (définir le résultat attendu). Les phrases pouvant être rédigées comme vous le souhaitez.</p>
<p>L&#8217;idée diabolique est donc d&#8217;<strong>obtenir ce fichier d&#8217;un interlocuteur fonctionnel,</strong> que vous pouvez utiliser sans transformation pour développer des routines correspondant à chaque exigence et ainsi valider que votre programme y répond.</p>
<p>Même si (à mon humble avis) cette méthodologie demande un interlocuteur métier motivé – pour ne pas dire un &laquo;&nbsp;consultant AMOA ultra au point&nbsp;&raquo; – et certainement d&#8217;éliminer quelques freins, le principe d&#8217;<strong>alléger vos spécifications</strong> et de retrouver (par un heureux effet de bord) vos exigences dans votre code source est clairement intéressant. Je m&#8217;interroge également sur le glissement vers &laquo;&nbsp;l&#8217;algorithmie masquée&nbsp;&raquo; que peuvent représenter les fameux fichiers textes&#8230; Vaste programme.</p>
<p>Amis flexeurs, quelques early-adopters ont déjà <a href="http://gravityblast.com/2009/08/20/flex-functional-testing-with-funfx-and-cucumber/">expérimenté le principe</a> basé sur <a href="http://cukes.info/">Cucumber</a> (Ruby). Si ça vous dit&#8230; En attendant, si vous faites du FlexMock, FlexMonkey et FlexUnit, c&#8217;est déjà pas mal !</p>
<p>Un petit regret, la difficulté d&#8217;aborder la question du &laquo;&nbsp;où s&#8217;arrêter&nbsp;&raquo; en fonction du projet mené : est-ce toujours rentable d&#8217;avoir une couverture de tests à 100% si votre projet a une durée de vie limitée&#8230; Même si cette question est particulièrement sujette à l&#8217;appréciation de chacun sans réellement connaître de règle.</p>
<h2>Des spaghettis, des marshmallows</h2>
<p style="text-align: center;"><img title="Des marshmallows" src="http://www.igglesblog.com/.a/6a00d8341c248053ef0133f4711ec9970b-800wi" alt="" width="250" height="250" /><br />
<a href="http://www.igglesblog.com/iggles_blog/2010/09/andy-reid-eats-the-michael-vick-marshmallow.html"> </a></p>
<p style="text-align: center;"><a href="http://www.igglesblog.com/iggles_blog/2010/09/andy-reid-eats-the-michael-vick-marshmallow.html">Source</a></p>
<p>Le dernier atelier reprenait le concept du <a href="http://marshmallowchallenge.com/">marshmallow challenge</a>.</p>
<p><strong>Le principe :</strong> 18 minutes pour construire la plus haute tour de spaghettis surmontée d&#8217;un marshmallow avec comme accessoires du scotch et un fil de couture.<br />
<strong>L&#8217;objectif :</strong> souligner la façon dont nous travaillons en équipe, dont nous fonctionnons face à un problème&#8230; Les résultats sont intéressants, je vous invite à tenter le coup si vous en avez l&#8217;occasion.</p>
<p>Je n&#8217;ai pas la photo de notre oeuvre éphémère&#8230; Mais ne regrettez rien <img src='http://www.lafabrick.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Merci à tous les organisateurs donc, à quand le prochain <img src='http://www.lafabrick.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  ?Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2006/10/22/6-youtube-transforming-a-2d-image-into-3d/" rel="bookmark" title="22 octobre 2006">Le 8ème jour ils créerent le Volume</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/10/01/244-vous-avez-dis-flex3-beta2/" rel="bookmark" title="1 octobre 2007">Vous avez dis Flex3 Beta2 ?</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/03/03/313-l-universit-lyon1-cherche-aussi-2-stagiaires/" rel="bookmark" title="3 mars 2008">L&#8217;université Lyon1 cherche (aussi) 2 stagiaires</a></li>
<li><a href="http://www.lafabrick.com/blog/2011/02/26/2429-orm-hibernate-et-contrarietes/" rel="bookmark" title="26 février 2011">ORM, Hibernate et contrariétés&#8230;</a></li>
</ul>
<p><!-- Similar Posts took 12.659 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2011/07/08/2621-barcamp-lyon-mix-it-flex-java-php-js-cloud-et-chips/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>BarCamp interfaces riches, Lyon, 23/06</title>
		<link>http://www.lafabrick.com/blog/2010/05/12/1880-barcamp-interfaces-riches-lyon-2306/</link>
		<comments>http://www.lafabrick.com/blog/2010/05/12/1880-barcamp-interfaces-riches-lyon-2306/#comments</comments>
		<pubDate>Wed, 12 May 2010 12:41:59 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Bientôt chez vous]]></category>
		<category><![CDATA[La Fabrick]]></category>
		<category><![CDATA[barcamp]]></category>
		<category><![CDATA[Conférence]]></category>
		<category><![CDATA[interactivité]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=1880</guid>
		<description><![CDATA[Depuis 40 ans, l&#8217;informatique est en r-évolution continue. Non seulement les ordinateurs sont de plus en plus puissants, mais leur utilisation prend chaque jour de nouvelles formes. Interfaces riches, tactiles, vocales, ou encore tangibles, il semble qu&#8217;en terme d&#8217;interfaces homme-machine, la réalité rattrape aujourd&#8217;hui la science fiction. Que vous soyez acteurs dans les nouvelles technologies [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.lafabrick.com/blog/wp-content/uploads/2010/05/barcampheaderblog.jpg" alt="barcampheaderblog" title="barcampheaderblog" width="520" height="150" class="aligncenter size-full wp-image-1889" /></center><br />
Depuis 40 ans, l&#8217;informatique est en r-évolution continue. Non seulement les ordinateurs sont de plus en plus puissants, mais leur utilisation prend chaque jour de nouvelles formes. Interfaces riches, tactiles, vocales, ou encore tangibles, il semble qu&#8217;en terme d&#8217;interfaces homme-machine,  la réalité rattrape aujourd&#8217;hui la science fiction.</p>
<p>Que vous soyez acteurs dans les nouvelles technologies ou simplement curieux de voir ce que le présent nous réserve, vous êtes conviés à venir participer au 1er BarCamp dédié aux Interfaces Riches, le 23 juin 2010 à partir de 17h, au cyberCafé du campus de la Doua à Villeurbanne.</p>
<p>Au programme : des  conférences, des ateliers et des démonstrations de ces technologies naissantes ou déjà matures et de leurs usages dans différents domaines (commerce, enseignement, divertissement…). Aux côtés des principaux innovateurs de ce secteur, vous pourrez même, si vous le souhaitez, proposer votre propre présentation dans les tribunes libres prévues à cet effet.</p>
<p>Quelques présentations au menu :</p>
<ul>
<li>Nouvelles expériences utilisateurs multi-canal grâce aux RIA (ipTv, bornes interactives);</li>
<li><a href="http://openscales.org/">OpenScales</a>: client cartographique basé sur les technologies ActionScript3 / Flex / AIR;</li>
<li>Comment développer une RIA moderne en Javascript avec <a href="http://bitbucket.org/ilabs/resthub/">RESTHub</a>.</li>
</ul>
<p>Rendez vous, donc, le 23 juin 2010 pour une rencontre conviviale qui vous donnera l&#8217;occasion de découvrir ou de montrer dès aujourd&#8217;hui, les interfaces de demain.<br />
<center><a href="http://barcamp-lyon.eventbrite.com?ref=ebtn" target="_blank"  ><img border="0" src="http://www.eventbrite.com/registerbutton?eid=675667941" alt="Register for Barcamp interfaces riches in Villeurbanne, France  on Eventbrite" /></a></center><br />
<span id="more-1880"></span><br />
Ce rendre au cyber café de l&#8217;université Lyon1 :<br />
<iframe width="640" height="480" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.fr/maps/ms?ie=UTF8&amp;hl=fr&amp;t=h&amp;msa=0&amp;msid=102461965477805714758.000485da8aecb7c6dbce8&amp;ll=45.779945,4.87263&amp;spn=0.007183,0.013733&amp;z=16&amp;output=embed"></iframe><br /><small>Afficher <a href="http://maps.google.fr/maps/ms?ie=UTF8&amp;hl=fr&amp;t=h&amp;msa=0&amp;msid=102461965477805714758.000485da8aecb7c6dbce8&amp;ll=45.779945,4.87263&amp;spn=0.007183,0.013733&amp;z=16&amp;source=embed" style="color:#0000FF;text-align:left">Cyber café, université Lyon1</a> sur une carte plus grande</small><br />
<br />
toutes les infos du barCamp sur <a href="http://www.facebook.com/#!/group.php?gid=119133324776126">le groupe facebook</a><br />
Partenaires :<br />
<center><img src="http://www.lafabrick.com/blog/wp-content/uploads/2010/05/partenaires2.jpg" alt="partenairebig" title="partenairebig" width="520" height="130" class="aligncenter size-full wp-image-1901" /></center><br />
Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2007/04/06/84-flash-in-the-can-hymne-a-l-as3/" rel="bookmark" title="6 avril 2007">« Flash In The Can » : hymne a l&#8217;AS3</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/07/05/181-virtual-cabinet-flash-et-interfaces-riches-pour-l-apprentissage-des-langues-3/" rel="bookmark" title="5 juillet 2007">Virtual Cabinet, flash et interfaces riches pour l&#8217;apprentissage des langues (3)</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/05/04/1130-interfaces-tangibles-le-futur-du-multitouch/" rel="bookmark" title="4 mai 2009">Interfaces tangibles : le futur du multitouch</a></li>
<li><a href="http://www.lafabrick.com/blog/2011/07/08/2621-barcamp-lyon-mix-it-flex-java-php-js-cloud-et-chips/" rel="bookmark" title="8 juillet 2011">Barcamp Lyon : Mix-IT, Flex, Java, PHP, JS, Cloud&#8230; (et chips)</a></li>
</ul>
<p><!-- Similar Posts took 17.443 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2010/05/12/1880-barcamp-interfaces-riches-lyon-2306/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MAX 09 &#8211; Ça annonce !</title>
		<link>http://www.lafabrick.com/blog/2009/10/09/1243-max-09-ca-annonce/</link>
		<comments>http://www.lafabrick.com/blog/2009/10/09/1243-max-09-ca-annonce/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 04:23:46 +0000</pubDate>
		<dc:creator>La Fabrick</dc:creator>
				<category><![CDATA[Bientôt chez vous]]></category>
		<category><![CDATA[Expériences utilisateur]]></category>
		<category><![CDATA[Logiciels / extensions / plugins...]]></category>
		<category><![CDATA[Pure Style]]></category>
		<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[MAX]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=1243</guid>
		<description><![CDATA[Voilà un résumé de la première journée : une énorme keynote, quelques conférences plus ou moins intéressantes&#8230; La Keynote La volonté d&#8217;Adobe d&#8217;être présent sur tous les écrans, quelque soit leurs tailles et leurs résolutions. Ça ressemble presque à une déclaration universelle. On se rappelle de l&#8217;annonce en mai 2008 de l&#8217;open screen project qui, [...]]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">
<dl id="attachment_1281" class="wp-caption alignnone" style="width: 530px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-1281" title="max1" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/10/max1.jpg" alt="arrivée à max" width="520" height="130" /> </dt>
</dl>
</div>
<p>Voilà un résumé de la première journée : une énorme keynote, quelques conférences plus ou moins intéressantes&#8230;<br />
<span id="more-1243"></span></p>
<h2>La Keynote</h2>
<p>La volonté d&#8217;Adobe d&#8217;être présent sur tous les écrans, quelque soit leurs tailles et leurs résolutions. Ça ressemble presque à une déclaration universelle. On se rappelle de l&#8217;annonce en mai 2008 de l&#8217;open screen project qui, à l&#8217;époque, laissait pas mal de place à la spéculation. Aujourd&#8217;hui, les choses se mettent en place&#8230; Pas moins de 42 partenaires dont Google, RIM, HTC, Docomo&#8230; et des annonces qui permettent de mieux comprendre où Adobe veut aller.</p>
<h3>Le flash player 10.1.</h3>
<p>Quelques nouvelles fonctionnalités comme le support du Multitouch, un meilleur support du P2P mais surtout un énorme travail sur les performances du player afin que ce dernier puisse tourner sur les mobiles et les notebook.</p>
<ul>
<li>Réduction de l&#8217;empreinte mémoire du player</li>
<li>Meilleur gestion de la consommation électrique</li>
<li>Amélioration du rendu et des performance vidéo</li>
</ul>
<p>Tout porte à croire qu&#8217;on assiste à la fin de FlashLite&#8230; On va enfin avoir le même player partout et tout le monde pourra avoir la même expérience quelque soit le terminal.</p>
<h3>AIR 2.0</h3>
<p>Adobe semble avoir écouté un peu la communauté. Pas mal de nouveautés et d&#8217;améliorations concernant l&#8217;intégration et la communication avec le système. Avec cette version, un développeur AIR va pouvoir facilement développer de l&#8217;application native Mac, PC, ou Linux, en fonction de son système.</p>
<ul>
<li>Possiblité de lancer et discuter avec des process natifs</li>
<li>Support des unités de stockages (et de leur branchement)</li>
<li>Prise en charge du multiTouch</li>
<li>Accès au données du microphone.</li>
</ul>
<h3>Les outils de la Flash Platform</h3>
<p>FlashBuilder se positionne comme un éditeur de code avancé pour ActionScript, y compris quand on développe en flash. Adobe a donc amélioré les liens entre ces IDE pour faciliter les aller-retour. Idem avec Flash Catalyst qui se positionne comme un outils à deux faces.</p>
<p>Faciliter l&#8217;intégration d&#8217;un design provenant d&#8217;un produit Adobe et faire le pont entre designer et développeur (avec un format de projet commun)</p>
<p>Permettre de faire du prototypage rapide d&#8217;interactions (l&#8217;équivalent de ce qu&#8217;offre Fireworks en terme de prototypage de site web)</p>
<h3>L&#8217;iPhone</h3>
<p>Un des grands absents de l&#8217;Open Screen Project est en effet Apple. Adobe ouvre enfin la porte du temple de l&#8217;iPhone à ses développeur en permettant d&#8217;exporter ses application flash au format iPhone. On est encore loin du flash dans l&#8217;iPhone mais c&#8217;est quand même un premier pas. (Bientôt) fini donc, XCode et Mac pour faire des applications iPhone&#8230; En ça aussi, c&#8217;est plutôt une bonne nouvelle. Concrètement, Adobe est parti sur LLVM (qu&#8217;il utilise déjà pour Alchemy). Pour plus de détails voir <a href="http://www.adobe.com/devnet/logged_in/abansod_iphone.html">cet article</a>.</p>
<h3>Et la Creative suite dans tout ça&#8230;</h3>
<p>Comme l&#8217;année dernière à Milan, on nous parle vite fait de la Creative Suite.</p>
<p><img class="size-full wp-image-1331" title="avatar" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/10/avatar.jpg" alt="avatar" width="96" height="143" /></p>
<p>Le producteur d&#8217;Avatar, le prochain film de James Cameron, présente comment les différents outils de la suite interviennent lors de la création d&#8217;un film comme Avatar, de la création des textures 3D sous Photoshop à la post production avec AfterEffects.</p>
<p>Et parce qu&#8217;on a été sage, on a droit à quelques scènes d&#8217;avatar en 3D&#8230; Ca promet !</P><br />
<br/><br/><br/></p>
<h2>Conclusion</h2>
<p>Un mot-clé : &laquo;&nbsp;multi&nbsp;&raquo; ;</p>
<ul>
<li>multi-écrans (Open Screen),</li>
<li>multi-cast (P2P),</li>
<li>multi-touch,</li>
<li>multi-langues (TLF),</li>
<li>multi-disciplines (création, développement).</li>
</ul>
<p>Le tout en se donnant les moyens de faire fonctionner tout ça : AIR 2.0, Flash Player 10.1 et amélioration des outils vers plus de productivité.Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2008/12/01/459-live-from-max-milan-hands-on-thermo/" rel="bookmark" title="1 décembre 2008">Live from MAX Milan : hands on thermo&#8230;</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/10/09/1286-max-09-le-multitouch/" rel="bookmark" title="9 octobre 2009">MAX 09 &#8211; Le multitouch</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/10/08/1266-max-09-ou-est-passe-le-text-layout-framework/" rel="bookmark" title="8 octobre 2009">MAX 09 &#8211; Où est passé le Text Layout Framework ?</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/10/09/1245-max-09-sneak-peeks/" rel="bookmark" title="9 octobre 2009">MAX 09 &#8211; Sneak Peeks !</a></li>
</ul>
<p><!-- Similar Posts took 12.173 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2009/10/09/1243-max-09-ca-annonce/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MAX 09 &#8211; Sneak Peeks !</title>
		<link>http://www.lafabrick.com/blog/2009/10/09/1245-max-09-sneak-peeks/</link>
		<comments>http://www.lafabrick.com/blog/2009/10/09/1245-max-09-sneak-peeks/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 02:33:14 +0000</pubDate>
		<dc:creator>La Fabrick</dc:creator>
				<category><![CDATA[Bientôt chez vous]]></category>
		<category><![CDATA[Expériences utilisateur]]></category>
		<category><![CDATA[Pure Style]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[MAX]]></category>
		<category><![CDATA[Sneak Peeks]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=1245</guid>
		<description><![CDATA[Ah oui, au fait, juste avant de commencer : un mot sur les Awards. Nous avons eu droit à une présentation des MAX Awards par Mark Hamil juste avant la session Sneak Peeks. On ne reviens pas dessus tellement nous avons trouvé ça pauvre en information. Nous sommes certains que les projets choisis sont effectivement [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1322" title="sneakpeeksmosaic" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/10/sneakpeeksmosaic.jpg" alt="sneakpeeksmosaic" width="512" height="192" /></p>
<p>Ah oui, au fait, juste avant de commencer : un mot sur les Awards. Nous avons eu droit à une présentation des MAX Awards par Mark Hamil juste avant la session Sneak Peeks. On ne reviens pas dessus tellement nous avons trouvé ça pauvre en information. Nous sommes certains que les projets choisis sont effectivement géniaux, mais nous n&#8217;avons vraiment pas eu l&#8217;occasion d&#8217;en voir suffisamment et d&#8217;en entendre parler leurs concepteurs pour se faire une quelconque idée de la chose.</p>
<p>Voici plutôt un aperçu de ces Sneak Peeks particulièrement intéressants sur les innovations en cours chez Adobe. Le principe est simple : prenez Mark Hamil (Luke Skywalker pour les intimes) comme présentateur qui ne comprend rien aux technologies montrées, déguisez les ingénieurs Adobe en chevaliers de l&#8217;empire, Chewbacca ou princesse Leïa et vous obtenez un show de geek vraiment sympa et impressionnant.</p>
<p><span id="more-1245"></span></p>
<h2>Principe</h2>
<p>Chaque équipe passe présenter son projet et doit rivaliser d&#8217;idées innovantes pour obtenir les clameurs de la foule en folie. Ca va vite, ils font souvent des blagues et vont parfois jusqu&#8217;à scénariser la présentation. C&#8217;est vraiment excellent ! Les infos passent très bien, on ne s&#8217;ennuie pas&#8230; Voyons voir.</p>
<h2>Mobile</h2>
<p>L&#8217;équipe mobile nous a présenté un jeu multi-joueurs utilisable depuis différents terminaux mobiles (Palm, Google Android, Nokia&#8230;), une application AIR sur portable et en mode web sur PC. Le principe technique est que ce jeu s&#8217;exécute côté serveur et que les images du jeu sont envoyées en streaming sur les terminaux (un peu comme une vidéo YouTube). Chaque commande est également envoyée au serveur pour lui permettre de calculer le comportement attendu pour le joueur.</p>
<p>Même si la technicité est certainement élevée et innovante, la pauvre bande passante du Wi-Fi disponible a montré les lacunes de l&#8217;outil. L&#8217;intérêt reste à notre sens assez limité, bien que nous ne soyons pas des spécialistes du jeu en ligne. On salue quand même la performance (faut le faire non ?)</p>
<h2>Flash</h2>
<p><img class="size-thumbnail wp-image-133" style="float: left; border: none" title="Flash pro" src="http://herve.lafabrick.com/blog/wp-content/uploads/2009/10/Fl-150x150.jpg" alt="Flash pro" width="54" height="54" /><img style="float: right;" title="Chewbacca" src="http://herve.lafabrick.com/blog/wp-content/uploads/2009/10/IMG_3276-300x225.jpg" alt="Chewbacca" width="138" height="104" />La démo Flash est assurée par Chewbacca en personne. Il nous montre comment la future version de Flash Professionnel permettra de générer des animations de formes à l&#8217;aide d&#8217;un moteur physique pour leur donner un aspect particulièrement réaliste. L&#8217;exemple ci-après est réalisé à partir de dessins de formes vectoriel et d&#8217;activation de quelques cases à cocher&#8230;</p>
<p style="text-align: center; "><object width="425" height="344" data="http://www.youtube.com/v/6SqZydjxziI&amp;hl=fr&amp;fs=1&amp;rel=0&amp;color1=0x5d1719&amp;color2=0xcd311b" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/6SqZydjxziI&amp;hl=fr&amp;fs=1&amp;rel=0&amp;color1=0x5d1719&amp;color2=0xcd311b" /><param name="allowfullscreen" value="true" /></object></p>
<p>On vous laisse imaginer les possibilités offertes au designer pour réaliser des animations réalistes et relativement complexes en quelques clics, c&#8217;est vraiment intéressant pour le monde de la création.</p>
<h2>Flex pour mobile</h2>
<p><img class="size-thumbnail wp-image-135" style="float: left; border: none" title="Fx" src="http://herve.lafabrick.com/blog/wp-content/uploads/2009/10/Fx-150x150.jpg" alt="Fx" width="54" height="54" />Cette fois, c&#8217;est princesse Leia qui procède à la présentation d&#8217;un développement en environnement Flex avec le framework mobile. Concrètement, il/elle utilise des composants liste et champ de recherche, compile et lance une application ressemblant plus que fortement à une application iPhone de recherche et affichage d&#8217;informations.</p>
<p><img class="aligncenter size-medium wp-image-126" title="Leia" src="http://herve.lafabrick.com/blog/wp-content/uploads/2009/10/IMG_3285-300x225.jpg" alt="Leia" width="300" height="225" /></p>
<p>Le résultat, affiché sur un iPhone (forcément&#8230;), est particulièrement réussi, très réactif. C&#8217;est impressionnant, en tant que développeurs Flex de voir la simplicité du développement Flex apportée sur un environnement de ce type !</p>
<h2>Photoshop</h2>
<p><img style="float: left; border: none" title="Ps" src="http://www.mti.epita.fr/blogs/wp-content/uploads/image1.png" alt="" width="61" height="61" />On ne sait plus à quoi s&#8217;attendre sur Photoshop. Le logiciel vit depuis un certain temps, et pourtant cette présentation nous a laissé sur le c&#8230; pardon, pantois.</p>
<p>Concrètement, l&#8217;équipe a travaillé sur une <strong>fonctionnalité de gommage intelligent (mathpatch)</strong>, interprétant la globalité de l&#8217;image pour remplacer le contenu supprimé par un contenu particulièrement réaliste. Le résultat est absolument hallucinant. Vous pouvez supprimer le fameux fil électrique qui rature le beau bâtiment à présent.</p>
<p>Ce fonctionnement a carrément été appliqué à des parties d&#8217;images : la démonstration montre le conférencier supprimer une usine de la vue de la photos. 20% de l&#8217;image est recomposée automatiquement. On constate déjà un peu plus l&#8217;intervention de la machine, mais en faisant attention. Bluffant !</p>
<h2>Fireworks</h2>
<p><img style="float: left; border: none" title="Fireworks" src="http://www.scl.utah.edu/computers/mac/software/images/softicons/Fireworks_CS3.png" alt="" width="64" height="64" />L&#8217;équipe Fireworks a présenté une fonctionnalité de <strong>retour arrière sur ses actions de manière ciblée</strong>. Concrètement, vous travaillez sur une partie de votre image, puis une seconde et ne voulez annuler que les changements effectués sur la première partie, mais pas sur la seconde, vous pouvez sélectionner ladite première partie et <strong>annuler uniquement ces changements</strong> : particulièrement pratique pour les designers habitués à ce genre d&#8217;outils !</p>
<h2>Dreamweaver</h2>
<p><img class="size-thumbnail wp-image-128" style="float: left; border: none" title="Dw" src="http://herve.lafabrick.com/blog/wp-content/uploads/2009/10/Dw-150x150.png" alt="Dw" width="63" height="63" />Nous n&#8217;avons pas particulièrement l&#8217;utilisation de Dreamweaver habituellement, mais on retient cette démonstration, particulièrement intéressante pour l&#8217;utilisation de la nouvelle norme HTML 5.</p>
<p>En l&#8217;occurrence, une nouvelle spécification est sortie (HTML 5) intégrant notamment un notion de Canvas, des interactions et animations pouvant être définies pour ce canvas. Adobe montre une forte volonté de tirer partie de cette nouvelle solution en permettant un <strong>copier coller depuis Flash dans Dreamweaver</strong> d&#8217;une animation Flash, Dreamweaver la transformant en animation native Canvas.</p>
<p>L&#8217;intérêt ? Pas de Flash Player, des performances excellentes, et une adéquation parfaite aux standards. Une excellente initiative pour tenter de se <strong>rapprocher du standard</strong> plutôt que chercher à l&#8217;évincer.</p>
<h2>AIR : Rome</h2>
<p><img class="size-thumbnail wp-image-129" style="float: left; border: none" title="AIR" src="http://herve.lafabrick.com/blog/wp-content/uploads/2009/10/AIR-150x150.png" alt="AIR" width="63" height="63" />Attention, énorme application. Le conférencier nous présente un outil à l&#8217;ergonomie particulièrement réfléchie et léchée regroupant en quelque sorte le principale de chaque outil d&#8217;Adobe. Vous pouvez dessiner en vectoriel (Illustrator / Fireworks), ajouter des animations (Flash), importer des calques Photoshop, ajouter des écrans et créer une interaction type navigation entre écrans (Flash Catalyst).</p>
<p>Enfin, vous pouvez exporter votre travail en SWF, AIR, SVG, image, page HTML, PDF&#8230; Tout cela étant, également fonctionnel en mode Internet : il y avait de la bave sur les sièges&#8230;</p>
<p>Pour nous, c&#8217;est le vainqueur. C&#8217;est absolument impressionnant à voir ! Ca montre notamment les capacités offertes par AIR et confirme son positionnement sur une application Internet mêlée à une application de bureau.</p>
<p style="text-align: center"><object width="425" height="344" data="http://www.youtube.com/v/nzXCadMUPCc&amp;hl=fr&amp;fs=1&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/nzXCadMUPCc&amp;hl=fr&amp;fs=1&amp;rel=0&amp;color1=0x006699&amp;color2=0x54abd6" /><param name="allowfullscreen" value="true" /></object>Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2007/05/24/110-du-html-dans-mon-flex/" rel="bookmark" title="24 mai 2007">Du HTML dans mon Flex&#8230;</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/12/01/459-live-from-max-milan-hands-on-thermo/" rel="bookmark" title="1 décembre 2008">Live from MAX Milan : hands on thermo&#8230;</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/10/09/1286-max-09-le-multitouch/" rel="bookmark" title="9 octobre 2009">MAX 09 &#8211; Le multitouch</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/10/09/1243-max-09-ca-annonce/" rel="bookmark" title="9 octobre 2009">MAX 09 &#8211; Ça annonce !</a></li>
</ul>
<p><!-- Similar Posts took 12.691 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2009/10/09/1245-max-09-sneak-peeks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>MAX 09 &#8211; Le multitouch</title>
		<link>http://www.lafabrick.com/blog/2009/10/09/1286-max-09-le-multitouch/</link>
		<comments>http://www.lafabrick.com/blog/2009/10/09/1286-max-09-le-multitouch/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 01:49:51 +0000</pubDate>
		<dc:creator>La Fabrick</dc:creator>
				<category><![CDATA[Bientôt chez vous]]></category>
		<category><![CDATA[Expériences utilisateur]]></category>
		<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[MAX]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=1286</guid>
		<description><![CDATA[Un conférence sur le multitouch, un thème qui nous tenait à coeur pour cet événement ! MAX a été l&#8217;occasion pour Adobe d&#8217;aborder le multitouch de manière plus détaillée. En effet, le matériel commence à devenir disponible pour le grand public et le succès de l&#8217;iPhone montre déjà l&#8217;intérêt des utilisateurs pour ce type d&#8217;interactions [...]]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">
<dl id="attachment_1317" class="wp-caption alignnone" style="width: 530px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-1317" title="multitouch" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/10/multitouch.jpg" alt="table multitouch" width="520" height="130" /> </dt>
</dl>
</div>
<p>Un conférence sur le multitouch, un thème qui nous tenait à coeur pour cet événement !</p>
<p>MAX a été l&#8217;occasion pour Adobe d&#8217;aborder le multitouch de manière plus détaillée. En effet, le matériel commence à devenir disponible pour le grand public et le succès de l&#8217;iPhone montre déjà l&#8217;intérêt des utilisateurs pour ce type d&#8217;interactions et la nécessité d&#8217;anticiper cette composante dans la conception des nouvelles Interfaces Homme Machine.</p>
<p>Nous résumerons ici deux conférences auxquelles nous avons pu assister : la première &laquo;&nbsp;officielle&nbsp;&raquo; assurée par une personne du groupe Cynergy, relativement générale et montrant quelques exemples intéressants. La seconde, appelée &laquo;&nbsp;unconference&nbsp;&raquo;, assurée par une personne d&#8217;Adobe, en charge de la prise en compte du multitouch au niveau du Flash Player 10.1, celle-ci plus technique et orientée sur les bonnes pratiques, particulièrement intéressantes.</p>
<p>Essayons de ressortir les principales idées et conclusions de tout cela.</p>
<p><span id="more-1286"></span></p>
<p>La présentation s&#8217;articule autour des axes suivants :</p>
<ul>
<li>Matériel et principaux environnements de prise en charge, à disposition du grand public</li>
<li>Types de mouvements reconnus nativement sur ces matériels</li>
<li>Implémentation avec AIR 2.0 et bonnes pratiques</li>
</ul>
<div>L&#8217;un des points clés du multitouch est qu&#8217;il dépend fortement du matériel sur lequel l&#8217;application est mise à disposition.</div>
<h2>Matériel et principaux environnements</h2>
<p>Aujourd&#8217;hui, le multitouch est accessible au grand public via :</p>
<div><strong>Matériel</strong></div>
<div>
<ul>
<li>Tablet PC (ex. <a href="http://h10010.www1.hp.com/wwpc/fr/fr/ho/WF06a/321957-321957-3835812-3835813-3835813-3945160.html" target="_blank">HP TouchSmart</a>) : l&#8217;écran détecte jusqu&#8217;à 4 points simultanément</li>
<li>MAC : le trackpad utilisé pour la souris est capable de détecter plusieurs doigts de façon distincte</li>
</ul>
</div>
<div><strong>Logiciels</strong></div>
<div>
<ul>
<li>Windows 7</li>
<li>MAC OSX Leopard</li>
</ul>
</div>
<h2>Types de mouvements et informations reconnus</h2>
<ul>
<li>Natifs
<ul>
<li>Zoom,</li>
<li>Swipe (action de faire glisser à deux doigts),</li>
<li>Rotation</li>
<li>Taille d&#8217;appui sur l&#8217;écran</li>
</ul>
</li>
<li>Personnalisés (permet d&#8217;implémenter ses propres interprétations de mouvement)</li>
</ul>
<p>C&#8217;est peu mais suffisant pour la plupart des actions connues.</p>
<p>On regrettera le fait que seul un mouvement natif est reconnu par le système à la fois, impliquant qu&#8217;on ne peut zoomer et faire pivoter un élément en même temps. Il faut dans ce dernier cas se débrouiller.</p>
<p>On appréciera aussi le fait que le &laquo;&nbsp;standard&nbsp;&raquo; établi par l&#8217;iPhone se retrouve dans les mouvements reconnus et pris en charge pour tous ces systèmes. A savoir que les mouvements natifs ne peuvent être utilisés en concurrence avec les événements personnalisés. Aussi, soit vous faites du natif, soit vous vous démerdez&#8230; Why not !</p>
<h2>Implémentation avec AIR 2.0 et bonnes pratiques</h2>
<p>La nouveauté est que AIR 2.0 écoute les événements envoyés par les systèmes multitouch et offre une API assez simple permettant d&#8217;y réagir. nous ne rentrerons pas dans les détails, mais plusieurs choses doivent être prises en compte avec attention pour produire une &laquo;&nbsp;bonne&nbsp;&raquo; application multitouch :</p>
<ul>
<li>Il est important de pouvoir gérer <strong>les événement Souris et les événements Touch de manière unifiée</strong> pour que l&#8217;application reste compatible avec un système standard. N&#8217;oublions pas que le multitouch est loin d&#8217;être encore accessible à tous</li>
<li>Il faut <strong>penser à la taille des doigts</strong> : un bouton sera certainement plus gros dans une application multitouch, l&#8217;homme étant moins précis que la souris (désolé pour la blague de geek).</li>
<li>De ce fait, il faut idéalement être capable d&#8217;<strong>adapter son application à des résolutions différentes</strong> : certaines applications multitouch prennent tout leur sens sur des écrans très grands (table type Microsoft Surface), mais peuvent être amenées sur des écrans plus petits (tablet PC par exemple). Selon la résolution cible, un pixel n&#8217;aura absolument pas la même taille et l&#8217;application pourra devenir totalement inutilisable</li>
<li><strong>Utiliser un gestionnaire personnalisé d&#8217;interprétation de mouvement en ActionScript </strong>(type <a href="http://www.nuigroup.com/touchlib/">touchLib</a>) se révèle être une solution généralement plus flexible voire performante que l&#8217;usage de la détection native de mouvements simples. D&#8217;autant plus quand on repense à la restriction de non parallélisation de mouvement natifs simples (zoom + rotation).</li>
</ul>
<h2>Conclusion</h2>
<p>Nous arrivons à un moment où les outils se présentent pour proposer des interface apportant réellement quelque chose en terme d&#8217;innovation et d&#8217;interactivité. C&#8217;est donc naturellement qu&#8217;Adobe s&#8217;insère dans cette voie et propose de reprendre la main sur les technologies déjà existantes dans ce domaine (type TUIO, touchLib&#8230;) et se tient prêt pour le matériel de demain !</p>
<p>A quand les éléments tangibles dans les boutiques Adobe ?</p>
<p>À noter : vous pouvez retrouver  les conférences sur le multitouch, sur Adobe TV :</p>
<ul>
<li><a href="http://tv.adobe.com/watch/max-2009-develop/multitouch-development-with-flex/">Multitouch Development with flex</a></li>
<li><a href="http://tv.adobe.com/watch/max-2009-design/multitouch-and-the-flash-platform/">Multitouch and the flash plateform</a></li>
</ul>
<p>Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2009/10/08/1266-max-09-ou-est-passe-le-text-layout-framework/" rel="bookmark" title="8 octobre 2009">MAX 09 &#8211; Où est passé le Text Layout Framework ?</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/10/09/1245-max-09-sneak-peeks/" rel="bookmark" title="9 octobre 2009">MAX 09 &#8211; Sneak Peeks !</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/10/09/1243-max-09-ca-annonce/" rel="bookmark" title="9 octobre 2009">MAX 09 &#8211; Ça annonce !</a></li>
<li><a href="http://www.lafabrick.com/blog/2010/02/19/1609-flashplayer-101-et-multi-toucher-caresse-moi-le-flex/" rel="bookmark" title="19 février 2010">Caresse-toi le flex : FlashPlayer 10.1 et Multi-toucher</a></li>
</ul>
<p><!-- Similar Posts took 12.150 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2009/10/09/1286-max-09-le-multitouch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MAX 09 &#8211; Où est passé le Text Layout Framework ?</title>
		<link>http://www.lafabrick.com/blog/2009/10/08/1266-max-09-ou-est-passe-le-text-layout-framework/</link>
		<comments>http://www.lafabrick.com/blog/2009/10/08/1266-max-09-ou-est-passe-le-text-layout-framework/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 21:30:37 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Bientôt chez vous]]></category>
		<category><![CDATA[Nos projets]]></category>
		<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[MAX]]></category>
		<category><![CDATA[pageLayout]]></category>
		<category><![CDATA[TLF]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=1266</guid>
		<description><![CDATA[Une seule session concernant TLF ! “Sold out” très rapidement, et j’ai eu la chance d’avoir une place. Première impression à l’arrivée: je suis impressionné par la nombre de personnes en attente d&#8217;une place : un tas de gens s&#8217;agglutine devant la porte en espérant pouvoir entrer. Ok ! Je me faufile et j’entre&#8230; dans [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1274" title="pageLayoutProject" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/10/plp.png" alt="pageLayoutProject" width="520" height="127" /></p>
<p>Une seule session concernant TLF ! “Sold out” très rapidement, et j’ai eu la chance d’avoir une place. Première impression à l’arrivée: je suis impressionné par la nombre de personnes en attente d&#8217;une place : un tas de gens s&#8217;agglutine devant la porte en espérant pouvoir entrer. Ok ! Je me faufile et j’entre&#8230; dans une toute petite salle !<br />
<span id="more-1266"></span></p>
<h3>Petit rappel</h3>
<p>Le Text Layout Framework (TLF pour les intimes) est le nouveau framework proposé par Adobe pour la gestion de texte international. Un soin particulier a été apporté au sens de lecture, et même aux ligatures de texte dynamique, le tout pour obtenir un texte le plus lisible et utilisable possible.</p>
<p>Les liens :</p>
<ul>
<li>Trouver TLF :
<ul>
<li><a title="textLayout - labs Adobe" href="http://labs.adobe.com/technologies/textlayout/" target="_blank">TLF sur le labz d&#8217;adobe</a></li>
<li><a title="TLF Open source" href="http://opensource.adobe.com/wiki/display/tlf/Text+Layout+Framework" target="_blank">TLF en open source</a></li>
</ul>
</li>
<li> Quelques exemples :
<ul>
<li><a title="Page LAyout Project" href="http://lafabrick.com/labz/pageLayout/weeklyBuild/" target="_blank">PageLayout Project</a> : Une librairie, powered by Me, qui permet la création et le développement d&#8217;éditeur riche (On en reparle bientôt ! ).</li>
</ul>
<ul>
<li> <a title="Times Reader" href="http://timesreader.nytimes.com/timesreader/index.html?campaignId=34W88" target="_blank">Times Reader</a> : une application AIR que l&#8217;on ne présente plus !</li>
</ul>
</li>
</ul>
<h3>En bref</h3>
<p>L’ambiance est survoltée : beaucoup de représentants de pays oubliés dans la gestion actuelle de texte de Flash. Les gens sont contents ! Enfin ils vont pouvoir faire du joli Flash en arabe ou en langue asiatique, le tout supporté par un framework Adobe. C’est pas trop tôt !</p>
<p>Je ne reviendrai pas sur ce framework en profondeur, mais plutôt sur les outils mis à disposition dans Flash CS5. Outre toute la gestion de texte que permet TLF (conteneurs liés façon InDesign, texte ligaturé, multi-colonnes, gestion des langues arabe, asiatique, hébreux, &#8230; ), la team a développé des outils très pratiques. Je retiens le nouvel outil d’import de polices spécifique à TLF, qui permet une gestion fine des polices, avec à la sortie un joli package SWZ. Que du bon.</p>
<h3>En conclusion</h3>
<p>Mais pourquoi diable Adobe n’a pas parlé de ce framework aux keynotes ? Peux être que le texte n’est pas vendeur&#8230; Il n&#8217;empêche que 2 phrases d&#8217;annonce n&#8217;allaient pas exploser le timing.</p>
<p>En y regardant bien, Adobe a potentiellement créé un système qui d&#8217;une part les propulsent bien en avance par rapport à la concurrence. D&#8217;autre part, cela leur permet de s&#8217;ouvrir un marché immense! Le monde asiatique, arabe&#8230; qui vont ENFIN pouvoir utiliser les technos Flash, avec un vrai système porté et validé par Adobe.</p>
<p>Et je ne parle pas du monde de l&#8217;entreprise en général, la gestion de texte dans les CMS en particulier, qui est une vrai problématique ; et qui à l&#8217;heure actuelle est plus une bidouille qu&#8217;autre chose lorsque l&#8217;on veut une gestion fine de son texte&#8230; TLF ouvre des portes sur le développement d&#8217;outils WYSIWYG type Buzzword, et propose une vrai réponse à ces problématiques.</p>
<p>Alors Adobe ? Pourquoi ne rien dire ?</p>
<h3>[Update]</h3>
<p>Adobe vient de poser la video de la session&#8230; Ça rattrape un peu !<br />
<object width="425" height="256" data="http://images.tv.adobe.com//swf/player.swf" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="FlashVars" value="fileID=2478&amp;context=162&amp;embeded=true&amp;environment=production" /><param name="src" value="http://images.tv.adobe.com//swf/player.swf" /><param name="flashvars" value="fileID=2478&amp;context=162&amp;embeded=true&amp;environment=production" /><param name="allowfullscreen" value="true" /></object>Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2008/12/01/459-live-from-max-milan-hands-on-thermo/" rel="bookmark" title="1 décembre 2008">Live from MAX Milan : hands on thermo&#8230;</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/10/09/1286-max-09-le-multitouch/" rel="bookmark" title="9 octobre 2009">MAX 09 &#8211; Le multitouch</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/10/09/1245-max-09-sneak-peeks/" rel="bookmark" title="9 octobre 2009">MAX 09 &#8211; Sneak Peeks !</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/10/09/1243-max-09-ca-annonce/" rel="bookmark" title="9 octobre 2009">MAX 09 &#8211; Ça annonce !</a></li>
</ul>
<p><!-- Similar Posts took 17.291 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2009/10/08/1266-max-09-ou-est-passe-le-text-layout-framework/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Interfaces tangibles : le futur du multitouch</title>
		<link>http://www.lafabrick.com/blog/2009/05/04/1130-interfaces-tangibles-le-futur-du-multitouch/</link>
		<comments>http://www.lafabrick.com/blog/2009/05/04/1130-interfaces-tangibles-le-futur-du-multitouch/#comments</comments>
		<pubDate>Mon, 04 May 2009 21:39:00 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Bientôt chez vous]]></category>
		<category><![CDATA[Expériences utilisateur]]></category>
		<category><![CDATA[Vu sur le web (2.0)]]></category>
		<category><![CDATA[interactivité]]></category>
		<category><![CDATA[interfaces]]></category>
		<category><![CDATA[multitouch]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=1130</guid>
		<description><![CDATA[Le temps du touché est arrivé. Windows Surface, les initiatives comme NUIGroup, les PC Tactiles HP, le trackPad Apple, l&#8217;IPhone… Le multitouch est partout. On peut imaginer que lorsque tout ce beau monde se sera mis d’accord pour normaliser la gestuelle (bon courage les gars !), il faudra bien repenser nos habitudes à la maison [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-1133" title="audiopad" src="http://www.lafabrick.com/blog/wp-content/uploads/2009/05/audiopad2.jpg" alt="audipad tangible interface" width="360" height="238" /><br />
Le temps du touché est arrivé. <a href="http://www.microsoft.com/surface/">Windows Surface</a>, les initiatives comme <a href="http://www.nuigroup.com/">NUIGroup</a>, les <a href="http://www.hp.com/united-states/campaigns/touchsmart/index.html?jumpid=ex_602_go/touchsmart/touchsmarthome">PC Tactiles HP</a>, le <a href="http://www.apple.com/macbook/features.html">trackPad Apple</a>, <a href="http://www.apple.com/iphone/">l&#8217;IPhone</a>… Le multitouch est partout. On peut imaginer que lorsque tout ce beau monde se sera mis d’accord pour normaliser la gestuelle (bon courage les gars !), il faudra bien repenser nos habitudes à la maison !<br />
<span id="more-1130"></span></p>
<p>Alors le multitouch remplaçant de nos bons vieux claviers / souris ? Pas si sûr ! Pour certains acteurs cela ne fait pas de doute. Pour d’autres en revanche, ces interfaces ne sont que des périphériques supplémentaires, un moyen différent de « consommer ».</p>
<p>Imaginez manipuler un fichier Excel en multitouch… Ça risque d’être assez pénible ! Pour peu que l’on soit un accro des macros ! (bon moi je m’en fou je fais pas d’Excel). Et puis pour l’instant ça fait mal aux doigts ! A force de gesticuler autour de sa table 50 pouces, on prend des crampes…</p>
<p>D’accord mais c’est bien le multitouch ! LA solution ? Les pseudo claviers / souris comme périphériques physiques de la table.  Imaginez un clavier souple ou une souris transparente en plexiglas : pas d’électronique dedans, et tout de même  repérés par la table. Un peu comme les <a href="http://en.wikipedia.org/wiki/Tangible_User_Interface">tables tangibles</a>, reconnaissant des périphériques électroniques (appareils photos…), ou des périphériques de soirée (<a href="http://www.i-bar.ch/en/pictures/">un verre</a>…) ou n’importe quoi qui possède un tag RFID. RFID ou bien par une forme particulière : on peut imaginer des objets de formes différentes, qu’une analyse d’image peu détecter.</p>
<p><object width="425" height="344" data="http://www.youtube.com/v/9fcUCRSyiw8&amp;hl=fr&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/9fcUCRSyiw8&amp;hl=fr&amp;fs=1" /><param name="allowfullscreen" value="true" /></object><br />
<em>slap widgets demo</em></p>
<p>Plusieurs groupes travaillent sur ce type d’interfaces tangibles : le MIT avec le groupe <a href="http://tangible.media.mit.edu/index.php">Tangible Media Group</a>, le Media Computing Group, un groupement de recherche des universités allemandes, avec le projet <a href="http://hci.rwth-aachen.de/slap">SLAP</a> : Silicone Illuminated Active Peripherals.</p>
<p>Et ce n’est qu’un début ! Le monde de la musique <a href="http://www.jamespatten.com/audiopad/">dispose déjà d’interfaces tangibles</a>.</p>
<p>[update] Do you want more ?<br />
Pattie Maes, du Fluid Interface Group &#8211; MIT, à présenter en février dernier leur dernier jouet : «<a href="http://ambient.media.mit.edu/projects.php?action=details&#038;id=68"> the SixthSense</a> » : Minority Report en vrai. Pourquoi avoir un périphérique alors que ses doigts c&#8217;est si bien ?!<br />
<object width="446" height="326"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param><param name="flashvars" value="vu=http://video.ted.com/talks/embed/PattieMaes_2009-embed_high.flv&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/PattieMaes-2009.embed_thumbnail.jpg&#038;vw=432&#038;vh=240&#038;ap=0&#038;ti=481" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/embed/PattieMaes_2009-embed_high.flv&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/PattieMaes-2009.embed_thumbnail.jpg&#038;vw=432&#038;vh=240&#038;ap=0&#038;ti=481"></embed></object></p>
<p>Ils sont aussi à l’origine du projet fou <a href="http://ambient.media.mit.edu/projects.php?action=details&#038;id=35">Siftables</a><br />
<img src="http://www.lafabrick.com/blog/wp-content/uploads/2009/05/siftables.jpg" alt="siftables" title="siftables" width="308" height="253" class="aligncenter size-full wp-image-1166" /></p>
<p>Je vous invite vivement à découvrir<a href="http://ambient.media.mit.edu/projects.php"> l’ensemble des projets</a> de ce groupe : il y a là de quoi rêver sur l’avenir des interfaces !<br />
[/update]</p>
<p>Et là oui ! J’imagine mieux Excel en multitouch !<br />
A suivre de près donc&#8230; A quand un docteur maboul virtuel tangible ?<br />
Et vous, des idées ?Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2007/07/19/192-un-curseur-des-curseurs/" rel="bookmark" title="19 juillet 2007">Un curseur&#8230; des curseurs ???</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/10/09/1286-max-09-le-multitouch/" rel="bookmark" title="9 octobre 2009">MAX 09 &#8211; Le multitouch</a></li>
<li><a href="http://www.lafabrick.com/blog/2010/02/19/1609-flashplayer-101-et-multi-toucher-caresse-moi-le-flex/" rel="bookmark" title="19 février 2010">Caresse-toi le flex : FlashPlayer 10.1 et Multi-toucher</a></li>
<li><a href="http://www.lafabrick.com/blog/2010/05/12/1880-barcamp-interfaces-riches-lyon-2306/" rel="bookmark" title="12 mai 2010">BarCamp interfaces riches, Lyon, 23/06</a></li>
</ul>
<p><!-- Similar Posts took 12.374 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2009/05/04/1130-interfaces-tangibles-le-futur-du-multitouch/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Vous reprendrez bien un set de travail !?</title>
		<link>http://www.lafabrick.com/blog/2009/04/14/1100-vous-reprendrez-bien-un-set-de-travail/</link>
		<comments>http://www.lafabrick.com/blog/2009/04/14/1100-vous-reprendrez-bien-un-set-de-travail/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 23:40:15 +0000</pubDate>
		<dc:creator>Erick</dc:creator>
				<category><![CDATA[Bientôt chez vous]]></category>
		<category><![CDATA[Logiciels / extensions / plugins...]]></category>
		<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[flex builder]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=1100</guid>
		<description><![CDATA[[UPDATE] Si vous préférez la langue de Shakespeare, Tekool avait déjà écrit à ce propos il y a &#171;&#160;fort longtemps&#160;&#187;&#8230; je rends donc à César !&#8230; désolé&#8230; Vous venez de créer votre douzième workspace Eclipse/Flex Builder ??? Et vous en avez marre de recréer vos perspectives, et autres vues&#8230; à chaque fois ??? Mais pourquoi [...]]]></description>
			<content:encoded><![CDATA[<p>[UPDATE] Si vous préférez la langue de Shakespeare, <a href="http://www.tekool.net/blog/2008/05/26/%c2%abworking-sets%c2%bb-an-helpful-flex-navigator-functionality/">Tekool</a> avait déjà écrit à ce propos il y a &laquo;&nbsp;fort longtemps&nbsp;&raquo;&#8230; je rends donc à César <img src='http://www.lafabrick.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  !&#8230; désolé&#8230;</p>
<p>Vous venez de créer votre douzième workspace Eclipse/Flex Builder ??? Et vous en avez marre de recréer vos perspectives, et autres vues&#8230; à chaque fois ???</p>
<p><img src="http://lafabrick.com/blog/images/erick//01_project_list-20090414-012817.png" alt="trop c'est trop !!!" /></p>
<p>Mais pourquoi diable n&#8217;utilisez vous pas les &laquo;&nbsp;fameux&nbsp;&raquo; &#8216;working sets&#8217; ?</p>
<p><span id="more-1100"></span></p>
<p>Et puisque quelques pixels valent pleins de mots&#8230;</p>
<p><img src="http://lafabrick.com/blog/images/erick//02_menuWorkingSet-20090414-013950.png" alt="Selection Working Set" /></p>
<p><img src="http://lafabrick.com/blog/images/erick//03_Select_Working_Set-20090414-013159.png" alt="Nouvea working set" /></p>
<p><img src="http://lafabrick.com/blog/images/erick//04_RessourceSet-20090414-013246.png" alt="Ressource Set type" /></p>
<p><img src="http://lafabrick.com/blog/images/erick//05_NewWorkingSet-20090414-013429.png" alt="Choix ressources" /></p>
<p><img src="http://lafabrick.com/blog/images/erick//06_selectWorkingSet-20090414-013547.png" alt="Selection working set" /></p>
<p><img src="http://lafabrick.com/blog/images/erick//07_workingSet1_result-20090414-013636.png" alt="un bol d'air" /></p>
<p>Les working sets ( prononcez &#8216;setss&#8217; )&#8230; tout simplement la solution moderne aux problèmes de congestion de projets dans Eclipse &#038; Flex Builder !Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2007/08/28/209-wtp-flex-buider-rsoudre-les-problmes-de-mmoire/" rel="bookmark" title="28 août 2007">WTP &#8211; Flex Buider : résoudre les problèmes de mémoire</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/11/15/266-debuguer-un-projet-flex-distant-via-flex-builder/" rel="bookmark" title="15 novembre 2007">L&#8217;erreur est humaine&#8230; debuguer un projet Flex distant via Flex Builder</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/02/27/309-flex-builder-3-et-le-php/" rel="bookmark" title="27 février 2008">Flex Builder 3 et le PHP ( PDT ) : installation</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/01/15/291-flex-masquer-les-warnings-inutiles/" rel="bookmark" title="15 janvier 2008">Flex et les warnings inutiles&#8230;</a></li>
</ul>
<p><!-- Similar Posts took 12.379 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2009/04/14/1100-vous-reprendrez-bien-un-set-de-travail/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>FITC#09 : TwiiDee, WiiFlash and Rock &#8216;n&#8217; Roll</title>
		<link>http://www.lafabrick.com/blog/2009/03/02/1079-fitc09-twiidee-wiiflash-and-rock-n-roll/</link>
		<comments>http://www.lafabrick.com/blog/2009/03/02/1079-fitc09-twiidee-wiiflash-and-rock-n-roll/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 13:32:04 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Bientôt chez vous]]></category>
		<category><![CDATA[La Fabrick]]></category>
		<category><![CDATA[Nos projets]]></category>
		<category><![CDATA[FITC]]></category>
		<category><![CDATA[Twiidee]]></category>
		<category><![CDATA[wiiFlash]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=1079</guid>
		<description><![CDATA[La semaine dernière s&#8217;est déroulé le FITC à Amsterdam. Au cours de la session &#171;&#160;Cool Shit!&#160;&#187;, Thibault a lâché en avant première une démo de la nouvelle monture de WiiFlash : vous allez voir ça envoie ! Il a aussi présenté TwiiDee, mon application pour manipuler des objets 3D à l&#8217;aide de wiimote. Malgré quelques [...]]]></description>
			<content:encoded><![CDATA[<p>La semaine dernière s&#8217;est déroulé le <a href="http://www.fitc.ca/">FITC</a> à Amsterdam. Au cours de la session &laquo;&nbsp;Cool Shit!&nbsp;&raquo;, <a href="http://www.bytearray.org/">Thibault</a> a lâché en avant première une démo de la nouvelle monture de <a href="http://wiiflash.bytearray.org/">WiiFlash</a> : vous allez voir ça envoie ! Il a aussi présenté TwiiDee, mon application pour manipuler des objets 3D à l&#8217;aide de wiimote. Malgré quelques heures de débug Vista / Air / Javascript, l&#8217;effet démo n&#8217;a pas manqué le rendez-vous <img src='http://www.lafabrick.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . A noter pour la prochaine fois Thibault, toujours utiliser des piles neuves en présentation <img src='http://www.lafabrick.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Mais bon avec un peu de patience et de sang froid&#8230; ça a fini par rouler !!!  Je vous laisse voir tout ça !</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/imjzIiHa3fw&#038;hl=fr&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/imjzIiHa3fw&#038;hl=fr&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2008/12/03/466-buzz-a-max/" rel="bookmark" title="3 décembre 2008">Buzz à Max&#8230;</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/12/10/472-retour-sur-lafabrick-max/" rel="bookmark" title="10 décembre 2008">retour sur Lafabrick @ max</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/02/04/298-wiiflash-et-3d-l-universit/" rel="bookmark" title="4 février 2008">wiiFlash et 3d à l&#8217;université</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/02/07/302-wiiflash-l-universit-acte-2/" rel="bookmark" title="7 février 2008">wiiFlash à l&#8217;université : acte 2</a></li>
</ul>
<p><!-- Similar Posts took 17.349 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2009/03/02/1079-fitc09-twiidee-wiiflash-and-rock-n-roll/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Reflex #2 : vous reprendrez bien un peu de IOC ?</title>
		<link>http://www.lafabrick.com/blog/2009/01/15/819-reflex-2-vous-reprendez-bien-un-peu-de-ioc/</link>
		<comments>http://www.lafabrick.com/blog/2009/01/15/819-reflex-2-vous-reprendez-bien-un-peu-de-ioc/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 22:16:49 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Bientôt chez vous]]></category>
		<category><![CDATA[La Fabrick]]></category>
		<category><![CDATA[Nos projets]]></category>
		<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[IOC]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=819</guid>
		<description><![CDATA[Reflex intègre un système d’Injection de contenu, qui est l’une des représentations de l’IOC. Nous allons voir ici à quoi cela sert, et comment le mettre en œuvre dans Reflex. Si ce n’est déjà fait, je vous laisse jeter un œil sur la première partie de cette architecture, et de récupérer le swc avant de [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="reflex image tuto 2" src="http://www.lafabrick.com/labz/reflex/images/reflexImgTuto2.jpg" alt="" width="520" height="230" /><br />
Reflex intègre un système d’Injection de contenu, qui est l’une des représentations de l’IOC.<br />
Nous allons voir ici à quoi cela sert, et comment le mettre en œuvre dans Reflex.</p>
<p>Si ce n’est déjà fait, je vous laisse jeter un œil sur <a href="http://www.lafabrick.com/blog/2009/01/13/786-reflex-1-une-micro-architecture-pour-flex-simple/">la première partie de cette architecture</a>, et de <a href="http://www.lafabrick.com/blog/reflex/">récupérer le swc</a> avant de lire la suite.<br />
<span id="more-819"></span></p>
<h3><strong>A quoi ça sert l’IOC ?</strong></h3>
<p>L’IOC ( Inversion Of Control ) est un patron d’architecture, possédant plusieurs représentations ( inversion de contrôle, injection de dépendance, &#8230;).  Je ne vais pas faire un cours sur l’Injection de contenu : je vous laisse <a href="http://fr.wikipedia.org/wiki/Inversion_de_contr%C3%B4le">voir ici </a>pour plus d’informations.</p>
<p>Dans Reflex, le but du package IOC est de décentraliser les objets de configurations de l’application. En gros, mettre les services d’accès aux données dans un fichier de configuration XML au lieu de les coder en dur dans l&#8217;application Flex.</p>
<p>Certains spécialistes me diront certainement que l’Injection de contenu n’est pas forcement une représentation de l’IOC, et donc un abus de langage pour Reflex : je répondrais par “traduisez ici IOC par Injection Of Content, et laissons tomber les patrons d’architecture !”.</p>
<h3><strong>Au commencement, le ServicesLocator</strong></h3>
<p>Nous avons vu dans la première partie comment réaliser simplement un appel à une méthode distante. Avoir un point d’accès global aux différents services est pratique lorsque l’on commence à avoir plusieurs services, ou si des vues différentes utilisent un service identique. Voyons comment procéder avec le premier exemple.</p>
<p>Reprenons l’exemple du <a href="http://www.lafabrick.com/blog/2009/01/13/786-reflex-1-une-micro-architecture-pour-flex-simple/">tuto #1</a> :  il faut charger <strong>les services</strong> dans le <strong>ServicesLocator</strong>. Nous allons donc modifier notre vue :</p>
<pre class="brush: xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application
	xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot;
	layout=&quot;absolute&quot;

	creationComplete=&quot;init()&quot;

	xmlns:controller=&quot;controller.*&quot;
	xmlns:model=&quot;model.*&quot;&gt;

	&lt;mx:Script&gt;
		&lt;![CDATA[
			import com.lafabrick.reflex.service.ServicesLocator;

			public static const SERVICE_USER:String = &quot;userService&quot;;
			public static const SERVICE_OTHER:String = &quot;otherService&quot;;

			private function init() : void
			{
				ServicesLocator.addService( SERVICE_USER, remoteUser );
				ServicesLocator.addService( SERVICE_OTHER, remoteOther );

				userControl.service = ServicesLocator.getService( SERVICE_USER );
			}

		]]&gt;
	&lt;/mx:Script&gt;

	&lt;mx:RemoteObject id=&quot;remoteUser&quot;
		destination=&quot;javaFacadeUser&quot; showBusyCursor=&quot;true&quot; /&gt;

	&lt;mx:RemoteObject id=&quot;remoteOther&quot;
		destination=&quot;javaFacadeOther&quot; showBusyCursor=&quot;true&quot; /&gt;

	&lt;controller:UserController id=&quot;userControl&quot; /&gt;

	&lt;model:UserModel id=&quot;userModel&quot; /&gt;

	&lt;mx:VBox&gt;
		&lt;mx:TextInput id=&quot;login&quot; /&gt;
		&lt;mx:TextInput id=&quot;password&quot; displayAsPassword=&quot;true&quot; /&gt;

		&lt;mx:Button label=&quot;connect&quot;
			click=&quot;{userControl.login(login.text, password.text)}&quot; /&gt;

		&lt;mx:Label x=&quot;208&quot; y=&quot;44&quot;
			text=&quot;User Name : {userModel.userLogged.name}&quot;/&gt;
	&lt;/mx:VBox&gt;

&lt;/mx:Application&gt;
</pre>
<ul>
<li>À la création de l’application ( <em>creationComplete</em> ), nous déclenchons la fonction<strong> init();</strong>.</li>
<li>Nous ajoutons les services <strong>RemoteObject</strong> dans le <a href="http://www.lafabrick.com/labz/reflex/apidoc/com/lafabrick/reflex/service/ServicesLocator.html">ServicesLocator</a>. La signature de cette méthode est la suivante :
<pre class="brush: js">
ServicesLocator.addService( serviceName:String, serviceObject:AbstractService )
</pre>
<p> </p>
<ul>
<li>  <strong><em>  serviceName:String</em></strong> est le nom de référence utilisé pour indexer, et plus tard retrouver le bon service.</li>
<li><strong><em>serviceObject:AbstractService</em></strong> est l’identifiant (id) de l’object service (le RemoteObject). </li>
</ul>
</li>
<li>Nous supprimons la propriété <strong><em>service</em></strong> dans la déclaration mxml de <strong>UserController</strong>, pour la déclarer en ActionScript dans la fonction<strong> init()</strong>.   ServicesLocator.getService( serviceName:String ) renvoie l’instance du service défini par serviceName, référencée dans le locator.</li>
</ul>
<p><strong>Note</strong> : Au niveau de l’appel du service, nous pourrions appeler la méthode <strong>getController</strong> de <a href="http://www.lafabrick.com/labz/reflex/apidoc/com/lafabrick/reflex/controller/ControllerLocator.html">ControllerLocator</a>.</p>
<pre class="brush: js">
userControl.login(login.text, password.text); 
</pre>
<p>devient :</p>
<pre class="brush: js">
( ControllerLocator.getController( MonApplication.SERVICE_USER )
	as UserController ).login(login.text, password.text);
</pre>
<p>Dans ce cas, nous devons &laquo;&nbsp;caster&nbsp;&raquo; le retour de <strong>getController(&#8230;)</strong> en <strong>UserController</strong> ( sinon erreur ! Flex ne connaîtrait pas la méthode login )</p>
<h3><strong>Un composant pour la vue</strong></h3>
<p>Histoire de mettre en pratique un peu plus l’utilisation des “locators” de Reflex, nous allons créer un composant MXML étendant <strong>Canvas</strong>, qui va contenir la représentation visuelle de notre application. Nous allons utiliser <strong>ControllerLocator</strong> dans ce fichier pour récupérer le <strong>UserController</strong>.</p>
<pre class="brush: xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Canvas
	xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot;
	width=&quot;100%&quot;
	height=&quot;100%&quot;&gt;

	&lt;mx:Script&gt;
		&lt;![CDATA[
			import model.UserModel;
			import controller.UserController;
			import com.lafabrick.reflex.controller.ControllerLocator;
			import com.lafabrick.reflex.model.ModelLocator;

			[Bindable]
			private var userDataModel:UserModel =
				( ModelLocator.getModel( UserModel ) as UserModel);

		]]&gt;
	&lt;/mx:Script&gt;

	&lt;mx:VBox horizontalCenter=&quot;0&quot; verticalCenter=&quot;0&quot;&gt;
		&lt;mx:TextInput id=&quot;login&quot; /&gt;
		&lt;mx:TextInput id=&quot;password&quot; displayAsPassword=&quot;true&quot; /&gt;

		&lt;mx:Button
			label=&quot;connect&quot;
			click=&quot;{ ( ControllerLocator.getController( UserController )
				as UserController ).login( login.text, password.text )}&quot; /&gt;

		&lt;mx:Label x=&quot;208&quot; y=&quot;44&quot;
			text=&quot;User Name : {userDataModel.userLogged.name}&quot;/&gt;
	&lt;/mx:VBox&gt;

&lt;/mx:Canvas&gt;
</pre>
<p>Pour que le “<strong>Binding</strong>” fonctionne correctement entre la vue et le modèle, nous devons utiliser des pointeurs vers les modèles à utiliser.</p>
<h3><strong>Le fichier de configuration XML (IOC)</strong></h3>
<p>Nous venons de voir comment utiliser le <a href="http://www.lafabrick.com/labz/reflex/apidoc/com/lafabrick/reflex/service/ServicesLocator.html">ServiceLocator</a>. Intégrons maintenant le système <strong>IOC</strong> pour ne plus avoir à le gérer  !</p>
<p>Ce fichier vous permet de décrire des objets, pour ensuite les récupérer et les instancier dans votre application ( via <a href="http://www.lafabrick.com/labz/reflex/apidoc/com/lafabrick/reflex/ioc/ApplicationContext.html">ApplicationContext</a> ). Ce fichier s’inspire fortement des fichiers de configuration de Spring, un framework puissant pour Java.</p>
<p>Ci-dessous le fichier représentant 2 services <strong>RemoteObject</strong> :</p>
<pre class="brush: xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;objects&gt;

	&lt;object id=&quot;remotingUser&quot; className=&quot;mx.rpc.remoting.mxml.RemoteObject&quot;&gt;
		&lt;property name=&quot;destination&quot; className=&quot;String&quot;&gt;javaFacadeUser&lt;/property&gt;
		&lt;property name=&quot;showBusyCursor&quot; className=&quot;Boolean&quot;&gt;true&lt;/property&gt;
	&lt;/object&gt;

	&lt;object id=&quot;remotingOther&quot; className=&quot;mx.rpc.remoting.mxml.RemoteObject&quot;&gt;
		&lt;property name=&quot;destination&quot; className=&quot;String&quot;&gt;javaFacadeOther&lt;/property&gt;
		&lt;property name=&quot;showBusyCursor&quot; className=&quot;Boolean&quot;&gt;true&lt;/property&gt;
	&lt;/object&gt;

&lt;/objects&gt;
</pre>
<ul>
<li>Le tag <strong>&lt;objects&gt;</strong> englobe les différents objets définis dans le fichier. Il est défini par :</li>
<li>Un objet <strong>&lt;object&gt;</strong> est défini par :
<ul>
<li>un identifiant <strong><em>id</em></strong>. Cet id est celui que nous utiliserons plus tard dans l’application Flex pour retrouver et instancier l’objet.</li>
<li> un nom de classe <strong><em>className</em></strong> : la classe de référence.</li>
</ul>
</li>
<li>Les propriétés des objets sont définies par :
<ul>
<li>leur nom <strong><em>name</em></strong></li>
<li>leur classe <strong><em>className</em></strong> de référence.</li>
</ul>
</li>
</ul>
<p>Ici, un <a href="http://livedocs.adobe.com/flex/3/langref/mx/rpc/remoting/mxml/RemoteObject.html">RemoteObject</a> a besoin de 2 propriétés : la <em>destination</em> du type String, et éventuellement <em>showBusyCursor</em> du type Boolean.</p>
<h3><strong>Régler le problème d’inclusion de classe</strong></h3>
<p>Le “petit” problème de ce système est que la déclaration externe des objets fait que les classes ne sont pas intégrées dans le projet Flex. Le compilateur Flex ne trouve pas de référence aux classes, et ne les intègre donc pas dans la compilation. Un façon très simple de régler ce problème est de créer un petit fichier actionScript, et d’ajouter des objets bidons du même type que ceux définis dans votre fichier de config.</p>
<p>Exemple avec les services : (fichier includeService.as)</p>
<pre class="brush: js">
import mx.rpc.http.mxml.HTTPService;
import mx.rpc.remoting.mxml.RemoteObject;
import mx.rpc.soap.mxml.WebService;

private var ser1:RemoteObject;
private var ser2:HTTPService;
private var ser3:WebService;
</pre>
<p>Ce fichier sera intégré dans votre application.</p>
<h3><strong>Chargement et gestion du contexte XML</strong></h3>
<p>Vous allez voir : simple comme bonjour !<br />
Nous allons ajouter le chargement du fichier via <a href="http://www.lafabrick.com/labz/reflex/apidoc/com/lafabrick/reflex/ioc/ApplicationContext.html">ApplicationContext</a>. <strong>ApplicationContext</strong> permet de charger automatiquement le contexte cible, et de retrouver, instancier, et<strong> enregistrer automatiquement tous les service</strong>s qui se trouvent dans votre fichier de configuration XML dans le <strong>ServicesLocator</strong>.</p>
<p>Votre application finale :</p>
<pre class="brush: xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application
	xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot;
	layout=&quot;absolute&quot;

	creationComplete=&quot;init()&quot;

	xmlns:model=&quot;model.*&quot;
	xmlns:view=&quot;view.*&quot;
	xmlns:controller=&quot;controller.*&quot;
	xmlns:service=&quot;service.*&quot;&gt;

	&lt;mx:Script&gt;
		&lt;![CDATA[
			import com.lafabrick.reflex.ioc.event.ContextEvent;
			import com.lafabrick.reflex.ioc.ApplicationContext;
			import com.lafabrick.reflex.controller.ControllerLocator;
			import com.lafabrick.reflex.service.ServicesLocator;

			include &quot;includeService.as&quot;

			private function init() : void
			{
				ApplicationContext.addEventListener(
					ContextEvent.CONTEXT_LOADED, onLoaded );

				ApplicationContext.load( &quot;ioc/application-config.xml&quot; );
			}

			private function onLoaded( event:ContextEvent ) :void
			{
				// Contexte chargé
				// ...
			}

		]]&gt;
	&lt;/mx:Script&gt;

	&lt;controller:UserController id=&quot;userControl&quot; /&gt;

	&lt;model:UserModel id=&quot;userModel&quot; /&gt;

	&lt;view:LoginView id=&quot;view&quot; /&gt;

&lt;/mx:Application&gt;
</pre>
<ul>
<li>Nous continuons à utiliser le “<strong>creationComplete</strong>” pour déclencher la fonction<strong> init()</strong> qui chargera le fichier de configuration.</li>
<li>Il ne faut pas oublier d’inclure au besoin les classes contenues dans notre fichier de config !
<pre class="brush: js">
include &quot;includeService.as&quot;
</pre>
</li>
<li>Dans la fonction<strong> init()</strong>, nous ajoutons un écouteur sur <strong>ApplicationContext</strong> (<a href="http://www.lafabrick.com/labz/reflex/apidoc/com/lafabrick/reflex/ioc/event/ContextEvent.html#CONTEXT_LOADED">ContextEvent.CONTEXT_LOADED</a>), qui déclenchera la fonction <strong>onLoaded</strong> quand le fichier de configuration sera chargé. Puis nous lançons le chargement du fichier de config (<strong> ioc/application-config.xml</strong> ).</li>
<li>&#8230; Et nous incluons la vue LoginView.</li>
</ul>
<h3><strong>Modification de notre UserController</strong></h3>
<p>Dans un soucis de clarté, nous allons créer 2 classes contenants les constantes référençants les noms des services (contenus dans le fichier de configuration), et les noms des méthodes de ces services.</p>
<p>MethodConstant (dans notre exemple uniquement la méthode login)</p>
<pre class="brush: js">
package service
{
	public class MethodConstant
	{
		public static const LOGIN:String = &quot;login&quot;;
	}
}
</pre>
<p>ServiceConstant (les identifiants des objets contenus dans le fichier de configuration)</p>
<pre class="brush: js">
package service
{
	public class ServiceConstant
	{
		public static const SERVICE_USER:String = &quot;remotingUser&quot;;
		public static const SERVICE_OTHER:String = &quot;remotingOther&quot;;
	}
}
</pre>
<p>Nous venons de charger notre fichier de configuration au niveau de notre Application. Nous devons maintenant modifier notre contrôleur pour qu&#8217;il <strong>écoute le chargement du fichier</strong> (événement ContextEvent.CONTEXT_LOADED), et <strong>mette à jour sa propriété service</strong>.</p>
<pre class="brush: js">
package controller
{
	import com.lafabrick.reflex.controller.BaseController;
	import com.lafabrick.reflex.ioc.ApplicationContext;
	import com.lafabrick.reflex.ioc.event.ContextEvent;
	import com.lafabrick.reflex.model.ModelLocator;
	import com.lafabrick.reflex.service.ServicesLocator;

	import dataObject.UserDo;

	import model.UserModel;

	import mx.rpc.events.FaultEvent;
	import mx.rpc.events.ResultEvent;

	import service.MethodConstant;
	import service.ServiceConstant;

	public class UserController extends BaseController
	{

		public function UserController() : void
		{
			ApplicationContext.addEventListener(ContextEvent.CONTEXT_LOADED, onLoaded);
		}

		private function onLoaded( event:ContextEvent ) :void
		{
			// Contexte chargé
			this.service = ServicesLocator.getService( ServiceConstant.SERVICE_USER );
		}

		public function login( log:String, pass:String ) : void
		{
			executeMethod(MethodConstant.LOGIN, onLoginResult, onLoginFault, log, pass);
		}

		public function onLoginResult( event:ResultEvent ) : void
		{
			(ModelLocator.getModel( UserModel ) as UserModel).userLogged =
				event.result as UserDo;

			trace((ModelLocator.getModel( UserModel ) as UserModel).userLogged.name);
		}
		public function onLoginFault( event:FaultEvent ) : void
		{
			trace(&quot;resultat pourri ...&quot;+event.fault);
		}

	}
}
</pre>
<p><strong><a href="http://www.lafabrick.com/labz/reflex/tuto/reflexTuto2.zip">Les sources de cette exemple</a></strong></p>
<p>Et voilà ! Je vais préparer d&#8217;autres articles, notemment l&#8217;intégration de Reflex dans un projet Gumbo/Flex4. N&#8217;hésitez pas à poster vos retours, c&#8217;est en flexant qu&#8217;on devient flexeron.Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2007/10/03/256-titre/" rel="bookmark" title="3 octobre 2007">Utiliser Cairngorm dans un projet Flex / AMFPHP</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/06/06/327-google-language-api-flex/" rel="bookmark" title="6 juin 2008">Google AJAX Language API&#8230; et ton Flex devient polyglotte !</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/01/13/786-reflex-1-une-micro-architecture-pour-flex-simple/" rel="bookmark" title="13 janvier 2009">Reflex #1: une micro-architecture pour Flex&#8230; simple !</a></li>
<li><a href="http://www.lafabrick.com/blog/2010/07/14/1920-flex-4-layouts-viewstack-pure-spark/" rel="bookmark" title="14 juillet 2010">Flex 4 et les layouts &#8211; Faire une ViewStack &laquo;&nbsp;pure&nbsp;&raquo; Spark</a></li>
</ul>
<p><!-- Similar Posts took 15.852 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2009/01/15/819-reflex-2-vous-reprendez-bien-un-peu-de-ioc/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

