<?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>Blog Symfony2 - Lexik Montpellier &#187; jeremy</title>
	<atom:link href="http://www.lexik.fr/blog/symfony/author/jeremy/feed" rel="self" type="application/rss+xml" />
	<link>http://www.lexik.fr/blog/symfony</link>
	<description>Blog sur le développement Web PHP avec Symfony 2</description>
	<lastBuildDate>Thu, 02 Feb 2012 14:00:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Lexik recrute 2 développeurs PHP5 / Symfony2</title>
		<link>http://www.lexik.fr/blog/symfony/recrutement/lexik-recrute-2-developpeurs-php5-symfony2-2009</link>
		<comments>http://www.lexik.fr/blog/symfony/recrutement/lexik-recrute-2-developpeurs-php5-symfony2-2009#comments</comments>
		<pubDate>Thu, 02 Feb 2012 14:00:26 +0000</pubDate>
		<dc:creator>jeremy</dc:creator>
				<category><![CDATA[Lexik Life]]></category>
		<category><![CDATA[recrutement]]></category>
		<category><![CDATA[developpeur]]></category>
		<category><![CDATA[emploi]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Symfony2]]></category>

		<guid isPermaLink="false">http://www.lexik.fr/blog/symfony/?p=2009</guid>
		<description><![CDATA[Description de la société : Lexik c&#8217;est qui ? Une société basée à Montpellier depuis 5 ans, avec 10 personnes et une ambiance sympa. On fait quoi chez Lexik ? Nous sommes spécialisés dans le développement d&#8217;applications web en Symfony2. &#8230;<p class="more aright"><a href="http://www.lexik.fr/blog/symfony/recrutement/lexik-recrute-2-developpeurs-php5-symfony2-2009">...</a></p>]]></description>
			<content:encoded><![CDATA[<h2>Description de la société :</h2>
<p><strong>Lexik c&#8217;est qui ?</strong><br />
Une société basée à Montpellier depuis 5 ans, avec 10 personnes et une ambiance sympa.</p>
<p><strong>On fait quoi chez Lexik ?</strong><br />
Nous sommes spécialisés dans le développement d&#8217;applications web en Symfony2. Nos projets reposent sur les méthodes agiles et un développement de qualité via la mise en place de tests unitaires et fonctionnels.<br />
<span id="more-2009"></span></p>
<p><strong>Quels types de clients ?</strong><br />
Des start-ups qui recherchent un appui technique sur la mise en place de leur projet, des PME et collectivités locales ayant un besoin d&#8217;accompagnement en conseil et réalisation.</p>
<p><strong>Lexik, c&#8217;est quoi d&#8217;autre ?</strong><br />
Des scrum meetings quotidiens, des points techniques presque tous les mardi, des idées communes pour des projets internes, du développement en équipe et comme dirait Laurent, le vendredi c&#8217;est sushis !</p>
<p><strong>Et si on résumait tout ça techniquement :</strong></p>
<ul>
<li>spécialistes du framework Symfony2 ;</li>
<li>contributions à des bundles Open Source sur <a href="https://github.com/lexik">Github</a> ;</li>
<li>un <a href="http://www.lexik.fr/blog/symfony/">blog technique</a> ;</li>
<li>développement frontend avec jQuery, Twitter Bootstrap, websockets, etc. ;</li>
<li>méthodes agiles avec Scrum ;</li>
<li>intégration continue avec Jenkins et tests fonctionnels avec Behat.</li>
</ul>
<h2>Description du poste :</h2>
<p>Vous êtes motivé et passionné par votre métier, vous suivez avec attention l&#8217;évolution des frameworks et des derniers langages à la mode. Vous avez déjà travaillé en équipe et vous aimez ça.</p>
<p>Vous bénéficiez d&#8217;une bonne expérience à titre privé ou professionnel dans les technologies suivantes :</p>
<ul>
<li>PHP 5.3, OOP ;</li>
<li>HTML5 / CSS3 ;</li>
<li>SQL (MySQL, SQLite, PostgreSQL, …).</li>
</ul>
<p>Une expérience ou un intérêt dans les domaines suivants seront un atout :</p>
<ul>
<li>Framework symfony 1.4 / Symfony2 avec l&#8217;ORM Doctrine ou Propel2 ;</li>
<li>Gestionnaire de version (Git / SVN) ;</li>
<li>Javascript, jQuery, node.js ;</li>
<li>Tests unitaires et fonctionnels, intégration continue, Behat ;</li>
<li>Méthodologie de développement agile (Scrum).</li>
</ul>
<h2>Détails :</h2>
<p><strong>Envoyez-nous votre CV et lettre de motivation par email à l&#8217;adresse : <a href="mailto:recrutement@lexik.fr">recrutement@lexik.fr</a></strong></p>
<ul>
<li>Type de contrat : CDI</li>
<li>Lieu : Pérols</li>
<li>Début du contrat : ASAP</li>
<li>Télétravail : non</li>
<li>Rémunération : selon profil</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lexik.fr/blog/symfony/recrutement/lexik-recrute-2-developpeurs-php5-symfony2-2009/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Astuces de développement javascript avec symfony</title>
		<link>http://www.lexik.fr/blog/symfony/symfony/astuces-de-developpement-javascript-avec-symfony-1382</link>
		<comments>http://www.lexik.fr/blog/symfony/symfony/astuces-de-developpement-javascript-avec-symfony-1382#comments</comments>
		<pubDate>Mon, 17 Jan 2011 15:06:09 +0000</pubDate>
		<dc:creator>jeremy</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.lexik.fr/blog/symfony/?p=1382</guid>
		<description><![CDATA[Dans cet article nous allons voir quelques astuces et bonnes pratiques, non pas directement de développement symfony mais de développement javascript au sein d’un projet symfony. Si l&#8217;on reprend quelques bases de bonnes pratiques de développement javascript, on constate : &#8230;<p class="more aright"><a href="http://www.lexik.fr/blog/symfony/symfony/astuces-de-developpement-javascript-avec-symfony-1382">...</a></p>]]></description>
			<content:encoded><![CDATA[<p>Dans cet article nous allons voir quelques astuces et bonnes pratiques, non pas directement de développement symfony mais de développement javascript au sein d’un projet symfony.</p>
<p>Si l&#8217;on reprend quelques bases de bonnes pratiques de développement javascript, on constate :</p>
<ul>
<li>que vos javascripts doivent être non-intrusifs, autrement dit là pour améliorer l&#8217;expérience utilisateur et en aucun cas être indispensable au fonctionnement d&#8217;une page ;</li>
<li>que les javascript doivent être combinés en 1 seul fichier et minifié (ceci afin de limiter le nombre de requête HTTP et car le chargement de la page est arrêté à chaque balise script, notamment à cause d&#8217;un éventuel <code>document.write();</code> ;</li>
<li>que l&#8217;appel au javascript doit être en bas de page ;</li>
</ul>
<p><em>Cette liste est bien entendu non exhaustive, vous trouverez une <a href="http://developer.yahoo.com/performance/rules.html" target="_blank">liste plus détaillée par ici</a>.</em></p>
<p>Toutes ces bonnes pratiques de développement Javascript n’ont pas toujours été facilitées dans symfony, notamment à la grande époque des helpers link_to_remote() &#038; co. qui en ont ravi certains et fait cauchemarder d’autres. Et aujourd&#8217;hui encore bon nombre de widgets de formulaire retournent directement du code javascript (dépendant de jQuery ou autre) et qui ne fonctionneront évidemment plus dès lors que vos javascripts se trouveront en bas de page.</p>
<p><span id="more-1382"></span></p>
<h4>1. Où placer les javascripts dans le document</h4>
<p>Idéalement et selon les recommandations de Yslow, en bas de page, donc juste avant la balise fermante <code><body></code> de votre layout.php. Ceci afin de ne pas ralentir inutilement le début du chargement de votre page, puisque chaque balise script bloque le chargement de la page (notamment pour gérer le <code>document.write();</code>).<br />
Source : <a href="http://developer.yahoo.com/performance/rules.html#js_bottom" target="_blank">http://developer.yahoo.com/performance/rules.html#js_bottom</a></p>
<p>Si cette méthode ne vous gênera pas pour les librairies tierces telles que jQuery, qu&#8217;en est-il par contre de vos codes javascript ? Ils doivent également se trouver dans des fichiers séparés, dissociés de votre document HTML. Néanmoins comme je vois souvent le besoin pour les développeurs d&#8217;avoir le code javascript au sein du template symfony, voici une technique pour qu&#8217;il soit tout de même placé en fin de page : via un slot.</p>
<p>Un petit exemple de code :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1382code2'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p13822"><td class="code" id="p1382code2"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// indexSuccess.php :</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> slot<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'javascript'</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
  console<span style="color: #339933;">.</span><a href="http://www.php.net/log"><span style="color: #990000;">log</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'javascript @ bottom'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">&lt;/script&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> end_slot<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// layout.php :</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> include_javascripts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> include_slot<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'javascript'</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Vous pourrez ainsi éditer votre code javascript depuis votre template PHP, bénéficier par exemple de valeurs dynamiques de PHP et pour autant que le code soit bien inclus en bas de page. Toutefois je vous recommande d&#8217;écrire du javascript là où il doit se trouver, à savoir dans un fichier JS&#8230;</p>
<p>De plus l&#8217;inconvénient majeur du slot est qu&#8217;il ne peut contenir qu&#8217;une valeur, il est écrasé à chaque utilisation. La technique fonctionne mais est très limitée. Pour ces besoins nous avons écrit chez Lexik un petit plugin &laquo;&nbsp;lxJavascript&nbsp;&raquo;, très similaire à l&#8217;utilisation d&#8217;un slot mais optimisé pour l&#8217;inclusion de javascripts. Il gère donc le multiple ajout, supprime les éventuelles multiples balises script pour en conserver qu&#8217;une seule, etc. Vous en saurez plus demain, le plugin sort en OpenSource sur le <a href="https://github.com/lexik" target="_blank">Github de Lexik</a>.</p>
<h4>2. Compression</h4>
<p>La compression des javascripts (c&#8217;est valable aussi pour les CSS) est une des tâches d&#8217;optimisations les plus importantes et également une des plus simples, du moins via les plugins symfony. Cette technique consiste à compresser tous vos fichiers javascript en 1 seul et surtout d&#8217;y appliquer un numéro de version (un timestamp le plus souvent) afin de prévenir des problèmes de cache dans vos mises à jour.</p>
<p>Les principaux plugins :</p>
<ul>
<li><a href="http://www.symfony-project.org/plugins/sfCombinePlugin" target="_blank">sfCombinePlugin</a>
<li><a href="http://www.symfony-project.org/plugins/npAssetsOptimizerPlugin" target="_blank">npAssetsOptimizerPlugin</a></li>
<li><a href="http://www.symfony-project.org/plugins/swCombinePlugin" target="_blank">swCombinePlugin</a></li>
</ul>
<p>Chez Lexik, nous utilisons <a href="http://www.symfony-project.org/plugins/npAssetsOptimizerPlugin" target="_blank">npAssetsOptimizerPlugin</a>, un plugin de <a href="http://www.akei.com/" target="_blank">Nicolas Perriault</a>, extrêmement simple à installer et paramétrer. Sur votre environnement de production, vous obtiendrez ainsi un fichier javascript compressé <code>/js/optimized.js?1294759429</code> qui contient un timestamp permettant à chaque modifications des fichiers d&#8217;être prises en compte sans problème de cache.</p>
<p>Nous n&#8217;appliquons pas la compression pour les librairies externes telles que jQuery que nous déléguons aux <a href="http://code.google.com/apis/libraries/devguide.html" target="_blank">serveurs CDN de Google</a>, cela apporte ces avantages notables :</p>
<ul>
<li>l&#8217;avantage du <abbr title="Content Delivery Network">CDN</abbr>, à savoir de proposer des données statiques via un réseau de multiples serveurs dans de multiples points géographiques, afin de permettre un accès très court ;</li>
<li>les navigateurs sont limités sur le nombre de connexions HTTP simultanées sur un même domaine, le téléchargement d&#8217;un javascript sur les serveurs de Google se fera en parallèle ;</li>
<li>les librairies du CDN ont les bonnes en-têtes de cache, par exemple la version 1.4.4 de jQuery restera en cache pendant 1 an sur le client, cela signifie également qu&#8217;un internaute peut bénéficier du cache téléchargé depuis un autre site, pas forcément sur le votre.</li>
</ul>
<h4>3. Accéder à certaines données dynamiques depuis javascript</h4>
<p>Il peut parfois être très utile depuis javascript d&#8217;accéder à certaines données dynamiques telles que la culture de l&#8217;utilisateur, du routing pour des appels Ajax ou encore de l&#8217;i18n. Il suffit de s&#8217;appuyer sur un simple fichier de configuration via un tableau de données JSON généré depuis une action symfony. J&#8217;ai écrit sur mon blog personnel un article détaillé sur le sujet <a href="http://blog.jeremybarthe.com/post/1465024153/configurations-javascript-dynamiques-en-symfony" target="_blank">Configurations Javascript dynamiques en Symfony</a>.</p>
<h4>4. Javascript depuis les widget</h4>
<p>Maintenant que vos inclusions de javascripts se trouvent en bas de page, jQuery par exemple, que faire de nos chers widgets jQuery Autocompleter <code>sfWidgetFormJQueryAutocompleter</code> et autre Datepicker <code>sfWidgetFormJQueryDate</code> qui retournent des champs de formulaire et le javascript d’initialisation du composant ? Eh bien, ne plus les utiliser&#8230; Simplement car ils seront inclus avant jQuery et vous aurez donc droit à l’erreur &laquo;&nbsp;jQuery is not defined&nbsp;&raquo;. Sans être aussi extrême, vous pouvez charger jQuery en haut de page (via les CDN de Google) et votre script compressé en bas de page, les widgets de formulaire seront alors à nouveau fonctionnels.</p>
<p>Cela fait déjà quelques temps que chez Lexik nous avons fait le choix d&#8217;enlever tous ces widgets pour les ré-écrire et les adapter à nos besoins. Les javascripts des widgets passent par notre plugin lxJavascript ce qui permet de les inclure là où on le souhaite. Egalement, le javascript retourné par ces widgets correspond à une utilisation basique du composant, dans un cas concrêt il est souvent nécessaire d&#8217;en ré-écrire une bonne part. Il peut être pratique par contre que le widget retourne seulement la sémantique HTML adaptée, par exemple dans le cas d&#8217;un Autocomplete un champ hidden pour stocker la valeur et un champ texte pour l&#8217;autocomplete, aussi nos widgets ont une option pour retourner ou non le code javascript.</p>
<h4>5. Optimisation frontend</h4>
<p>Presque aussi important que la compression, la configuration d&#8217;apache pour mettre en cache certains de vos fichiers statiques. Typiquement, maintenant que vos fichiers javascripts et CSS sont compressés en 1 seul et possèdent un timestamp unique par version, il serait dommage de les recharger à chaque chargement de page&#8230; Vous devez donc configurer le module Expires d&#8217;apache via le fichier de config du vhost ou via le .htaccess, en voici un exemple :</p>
<pre>
<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresByType text/css "access plus 1 year"
  ExpiresByType text/javascript "access plus 1 year"
</IfModule>
</pre>
<p>Vos fichiers javascript et CSS seront ainsi en cache pendant 1 an, attention du coup à ne pas avoir de fichier sans numéro de version, car ils resteraient en cache et vos internautes ne bénéficieraient pas de vos mises à jour&#8230;</p>
<p>&nbsp;</p>
<p>Dernière chose, si ce n&#8217;est pas encore fait, installez et testez <a href="http://developer.yahoo.com/yslow/" target="_blank">Yslow</a> pour trouver des pistes d&#8217;optimisations de performance de vos sites.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lexik.fr/blog/symfony/symfony/astuces-de-developpement-javascript-avec-symfony-1382/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Balsamiq Mockup et les wireframes graphiques</title>
		<link>http://www.lexik.fr/blog/symfony/methodologie/balsamiq-mockup-et-les-wireframes-graphiques-805</link>
		<comments>http://www.lexik.fr/blog/symfony/methodologie/balsamiq-mockup-et-les-wireframes-graphiques-805#comments</comments>
		<pubDate>Mon, 27 Jul 2009 13:36:33 +0000</pubDate>
		<dc:creator>jeremy</dc:creator>
				<category><![CDATA[Méthodologie]]></category>
		<category><![CDATA[gestion de projet]]></category>
		<category><![CDATA[webdesign]]></category>
		<category><![CDATA[wireframe]]></category>

		<guid isPermaLink="false">http://www.lexik.fr/sfblog/?p=805</guid>
		<description><![CDATA[Habituellement nous vous parlons du framework Symfony car c&#8217;est un des outils qui nous rend le plus de services pendant le développement. Mais n&#8217;oublions pas que la gestion d&#8217;un projet est primordiale à son bon déroulement. Cet article n&#8217;a pas &#8230;<p class="more aright"><a href="http://www.lexik.fr/blog/symfony/methodologie/balsamiq-mockup-et-les-wireframes-graphiques-805">...</a></p>]]></description>
			<content:encoded><![CDATA[<p>Habituellement nous vous parlons du framework Symfony car c&#8217;est un des outils qui nous rend le plus de services pendant le développement. Mais n&#8217;oublions pas que la gestion d&#8217;un projet est primordiale à son bon déroulement. Cet article n&#8217;a pas pour ambition de présenter toutes les ficelles de la gestion de projet mais simplement de se concentrer sur un point très important dans le Web à savoir <strong>le passage d&#8217;un prototype à la maquette graphique finale</strong>. Aussi cet article va vous présenter le concept des <strong>wireframes</strong> et d&#8217;un outil de conception à savoir <strong>Balsamiq Mockup</strong>.</p>
<p><span id="more-805"></span></p>
<h3>1. Qu&#8217;est ce qu&#8217;un prototype / user-story ?</h3>
<p>Dans le cadre de réunion autour d&#8217;un projet Web, on voit souvent quelqu&#8217;un sortir une feuille de papier, prendre un crayon, dessiner quelques traits hasardeux, des blocs par ci, par là, afin de présenter à un client ou un graphiste le rendu souhaité d&#8217;un site Internet ou d&#8217;un logiciel. C&#8217;est l&#8217;idée du wireframe, en beaucoup moins brouillon ! Le wireframe atteint un vrai niveau de précision, lorsque ce dernier est finalisé, on a une vision cohérente du futur rendu, il ne reste plus qu&#8217;au graphiste à ajouter sa touche graphique&#8230;</p>
<h2>2 logiques pour les prototypes / user-story :</h2>
<p>On peut globalement définir <strong>2 styles de prototypes d&#8217;interfaces</strong> :</p>
<p><strong>1. le wireframe &laquo;&nbsp;graphique&nbsp;&raquo; :</strong> il s&#8217;agit d&#8217;un prototype / scénario dont le but est de s&#8217;approcher au maximum du rendu final du site Internet. Dans un premier temps, on place les différentes zones à l&#8217;écran, cette étape s&#8217;appelle le <strong>zoning</strong>, elle permet d&#8217;organiser la page. Dans un second temps, on se concentre sur l&#8217;ergonomie, la communication générale, qui se clôture par le <strong>wireframe</strong>. A ce stade là, le wireframe détaille à la fois l&#8217;<strong>organisation de la page</strong> mais également l&#8217;<strong>ergonomie générale</strong>, l&#8217;étape suivante est naturellement la charte graphique.</p>
<p><em><strong>Note :</strong> le wireframe peut faire l&#8217;objet d&#8217;une validation auprès du client et joue un rôle de support dans la communication avec le graphiste.</em></p>
<p>On comprend bien l&#8217;intérêt de toutes ses étapes qui nous approche de manière réfléchi et construite vers la maquette graphique, cela peut se résumer par :</p>
<p style="text-align: center;"><strong>zoning &gt; wireframe &gt; charte graphique</strong></p>
<p><strong>Quelques outils :</strong><br />
- <a href="http://www.balsamiq.com/products/mockups" target="_blank">Balsamiq Mockup</a> ;<br />
- <a href="http://iplotz.com/" target="_blank">iPlotz</a>.</p>
<p><strong>2. le user-story ou histoires d&#8217;utilisateur</strong> implique un besoin moins statique, 1 seul écran ne suffit pas. L&#8217;idée est de présenter un cas, un besoin, une problématique sur plusieurs écrans, dans une idée de <strong>séquences</strong>. Ce type de wireframe est beaucoup moins lié au graphiste, d&#8217;ailleurs la touche graphique y est beaucoup moins importante. On est plus proche de la couche métier du projet et ces outils sont plus destinés au client et au développeur. C&#8217;est pour moi une étape parallèle au wireframe &laquo;&nbsp;graphique&nbsp;&raquo;, cet article n&#8217;en détaillera pas plus le fonctionnement.</p>
<h2><strong>Les gains d&#8217;un wireframe ?</strong></h2>
<p>Les gains sont multiples, en effet pour en arriver au wireframe, plusieurs briefs ont été réalisés. L&#8217;objectif final, les éléments à mettre en avant, l&#8217;ergonomie et la communication générale ont été débattus et travaillés. Le résultat n&#8217;en est que positif ! Imaginez si vous vous étiez lancés directement sur la maquette graphique, les changements a posteriori sont beaucoup plus longs et couteux.</p>
<h3>2. Balsamiq Mockup ?</h3>
<p>Ce logiciel possède une interface <strong>claire et intuitive</strong>, les différents composants sont très variés (<strong>environ 70</strong> répartis en : formulaires, blocs, player vidéo, calendrier, tree view, nuage de tags, etc.). Il possède des fonctionnalités basiques mais très pratiques telles que les raccourcis clavier et la sélection multiples d&#8217;objets à la souris.</p>
<table style="width: 100%;" border="0">
<tbody>
<tr>
<td style="width: 50%;"><a href="http://www.lexik.fr/blog/symfony/wp-content/uploads/2009/07/balsamiq-mockups-for-desktop-new-mockup.png" target="_blank"><img class="aligncenter size-medium wp-image-824" title="Capture d'écran de Balsamiq Mockup sous Mac osx" src="http://www.lexik.fr/blog/symfony/wp-content/uploads/2009/07/balsamiq-mockups-for-desktop-new-mockup-300x224.png" alt="balsamiq-mockups-for-desktop-new-mockup" width="275" height="205" /></a></td>
<td><a href="http://www.lexik.fr/blog/symfony/wp-content/uploads/2009/07/mockup.png" target="_blank"><img class="aligncenter size-medium wp-image-814" title="Exemple de wireframe avec Balsamiq Mockup" src="http://www.lexik.fr/blog/symfony/wp-content/uploads/2009/07/mockup-300x148.png" alt="mockup" width="268" height="132" /></a></td>
</tr>
</tbody>
</table>
<p>Il est possible de <strong>grouper</strong> les composants graphiques entre eux afin de les déplacer ensemble ou encore de les positionner l&#8217;un au dessus des autres, etc. Il est également possible d&#8217;inclure de véritables images, l&#8217;intégration au milieu de l&#8217;effet crayonné est étrange, mais peut s&#8217;avérer pratique dans le cadre d&#8217;un logo (cf. le cas pratique). Le logiciel inclut également <strong>une série d&#8217;icônes</strong>, dans un style crayonné, qui complète très bien certains manques de composants, notamment dans les boutons.</p>
<p>J&#8217;ai particulièrement apprécié dans le cadre d&#8217;un drag n&#8217; drop le clip des objets afin de les aligner de façon horizontale ou verticale. Avec un peu d&#8217;entraînement on peut presque se baser sur des grilles, très utiles en webdesign, ce qui permettrait plus tard de faire l&#8217;intégration avec un framework CSS, mais je m&#8217;avance, nous verrons ceci dans un futur article&#8230;</p>
<p>Le point fort de Balsamiq Mockup est son <strong>rendu crayonné et monochrome</strong> qui permet de le détacher du rendu final. En effet <strong>le danger dans un wireframe est qu&#8217;un client l&#8217;imagine comme maquette définitive</strong> ou encore qu&#8217;il s&#8217;attarde sur des problématiques graphiques qui ne seront vu qu&#8217;en étape suivante.</p>
<p>La version desktop est écrite en <strong>Adobe AIR</strong> ce qui lui confère l&#8217;avantage d&#8217;être multi-plateforme.</p>
<p>Balsamiq Mockup n&#8217;est pas complètement exempte de défauts, j&#8217;ai eu droit à quelques plantages avec plusieurs mockups ouverts et comme je le précise ci-dessus, il manque encore quelques composants graphiques, notamment sur les boutons.</p>
<p>Un autre défaut est qu&#8217;il ne permet pas de faire des liens entre prototypes. En ce sens, Balsamiq Mockup s&#8217;arrête au rang d&#8217;outil de création de prototypes &laquo;&nbsp;graphiques&nbsp;&raquo;, il ne permet pas de réaliser des scénarios / séquences d&#8217;écrans, ou plus communément appelé user-story (cf. ci-dessus).</p>
<h3>3. Cas pratique : Lexik</h3>
<p>Vous avez la chance, via cet article, de voir les premiers wireframes du futur site de Lexik.fr :</p>
<table style="width: 100%;" border="0">
<tbody>
<tr>
<td style="width: 50%; padding-bottom: 20px;"><a href="http://www.lexik.fr/blog/symfony/wp-content/uploads/2009/07/lexik-home_2.png" target="_blank"><img class="aligncenter size-medium wp-image-815" title="Lexik - page d'accueil de la nouvelle version" src="http://www.lexik.fr/blog/symfony/wp-content/uploads/2009/07/lexik-home_2-226x300.png" alt="lexik-home_2" width="226" height="300" /></a></td>
<td style="width: 50%; padding-bottom: 20px;"><a href="http://www.lexik.fr/blog/symfony/wp-content/uploads/2009/07/lexik-listing2.png" target="_blank"><img class="aligncenter size-medium wp-image-816" title="Lexik - listing de pages sur la nouvelle version" src="http://www.lexik.fr/blog/symfony/wp-content/uploads/2009/07/lexik-listing2-205x300.png" alt="lexik-listing2" width="205" height="300" /></a></td>
</tr>
<tr>
<td><a href="http://www.lexik.fr/blog/symfony/wp-content/uploads/2009/07/lexik-listing3.png" target="_blank"><img class="aligncenter size-medium wp-image-817" title="Lexik - listing de pages sur la nouvelle version" src="http://www.lexik.fr/blog/symfony/wp-content/uploads/2009/07/lexik-listing3-207x300.png" alt="lexik-listing3" width="207" height="300" /></a></td>
<td><a href="http://www.lexik.fr/blog/symfony/wp-content/uploads/2009/07/lexik-page.png" target="_blank"><img class="aligncenter size-medium wp-image-818" title="Lexik - modèle de page sur la nouvelle version" src="http://www.lexik.fr/blog/symfony/wp-content/uploads/2009/07/lexik-page-226x300.png" alt="lexik-page" width="226" height="300" /></a></td>
</tr>
</tbody>
</table>
<p><strong>Quelques liens :</strong><br />
- <a href="http://www.pixenjoy.com/zoning-et-wireframe" target="_blank">une présentation du zoning et des wireframes chez pixenjoy.com</a> ;<br />
- <a href="http://www.aubryconseil.com/post/2006/10/16/106-des-histoires-d-utilisateur" target="_blank">le user-story version frenchies</a> ;<br />
- <a href="http://www.superfiction.net/blog/index.php?2008/09/01/297-les-outils-online-de-conception-de-wireframes-introduction" target="_blank">présentation de quelques outils en ligne de conception de wireframes</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lexik.fr/blog/symfony/methodologie/balsamiq-mockup-et-les-wireframes-graphiques-805/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

