Antoine Guiral : apprenti du web 2.0

Partage d’expériences sur le web

Archive pour 'web 2.0' Categorie


[tuto flex] hello world en flex: il y a un début à tout!

Publié par Guiral antoine sur avril 20, 2008

Ce tutoriel est disponible sur mon nouveau blog.

Comme promis le premier tutoriel sur FLEX. Cette techno me bluf! En 5 min j’ai fait mon hello world tout seul comme un grand sans google :D Non, n’applaudissez pas tout de suite vous allez voir c’est pas si compliqué que ça ;-)

Bon on rentre dans le vif du sujet maintenant. Si vous n’avez pas téléchargé le Flex Builder d’Adobe c’est le moment.

Premièrement il faut créé un nouveau projet : soit en faisant file>new>flex project soit en faisant un clic droit sur le gestionnaire de projet (voir illustration ci-dessous).

Nouveau projet sur flex builder

Maintenant vous devriez avoir quelque chose comme ça devant vos yeux o_0

Vue générale de flex builder

Nous allons séparer l’écran en 5 zones. La première en haut à gauche est le gestionnaire de projet : “flex navigator”. Celle du dessous, appelée “outline” va changer selon que la zone principale soit en mode “source” ou en mode “design”. Si l’on se trouve en mode “source” la zone “outline” va contenir nos différent composant. Tandis que si l’on est en mode “design” elle proposera tout les composants qu’il suffira alors de faire glisser dans la zone de travail pour les placer. Allez y testez vous ne risquez rien ;-).

Au milieu c’est là ou nous allons coder. Deux modes : “source” et “design”. Le premier sert à coder directement tandis que le second permet de passer en mode “assisté” puisque le code sera généré automatiquement. En dessous on retrouve la console qui affichera les erreurs notamment. Si vous utilisez eclipse ou aptana vous ne serez pas dépaysés.

Enfin, à droite cette fenêtre ne s’affichera qu’en mode “design”. elle permet de configurer les composant que vous aurez fait glisser sur votre application.

C’est bon vous êtes toujours là?! Ok, continuons.

Nous allons passer en mode “source”, mais vous pouvez lire le tuto puis essayer de le refaire sans regarder et utiliser le mode “design”.

Un petit rappel au passage : flex est basé sur MXML (proche du XML) et ActionScript3 (proche du javascript). Donc si vous êtes habitués à faire du web vous ne devriez pas être trop perdus.

  • Déclaration de l’application

Ca ressemble beaucoup au XHTML. On définit donc la norme utilisé ainsi que l’encodage : ici xml en version 1.0 et utf-8 (à privilégié puisque c’est le plus large, il prend bien les accents etc etc).

La seconde balise commence par “mx:“. Toutes les balises MXML commence par ce préfixe. Tout desuite après, on retrouve le type de la balise avec une majuscule : ici c’est la balise qui va définir l’application. C’est l’équivalent de notre bon vieux <html> (surtout dans le cas du XHTML puisqu’il fait intervenir l’attribut xmlns). L’attribut layout avec la valeur absolute signifie que nous allons placer tous nos éléments en absolute (équivalent du css). Il existe d’autre valeurs pour le layout : horizontal et vertical (pas besoin d’explications là si?). Puis viennent les dimensions de l’application.

<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute” width=”314″ height=”126″>

  • L’interface

Vous remarquerez que toutes les balises commencent par <mx:LeNomDeMonComposant. Ici nous avons un Label, un TextInput un Button et de nouveau un Label. Notre application sera composé d’un titre (id lTitre), d’un champs de saisi de texte (id tMonText), d’un boutton (bAfficher) et enfin d’un dernier label (lMonResultat) dans lequel nous afficherons le texte contenu dans le textfield à chaque clic sur le boutton. Les attributs x et y correspondent aux positions dans notre layout (vous vous souvenez? nous sommes en absolute).

Nos balises doivent toutes êtres fermées : on respecte la norme XML. Nos composants sont des balises fermées, elles se terminent par “/>“. Notre balise Application sera fermé à la fin du document de la même manière que l’on fermerait un document XHTML.

<mx:Label x=”22″ y=”10″ text=”Mon hello world en flex” fontWeight=”bold” fontFamily=”Arial” fontSize=”24″ id=”lTitre”/>
<mx:TextInput x=”22″ y=”53″ width=”202″ id=”tMonText”/>
<mx:Button x=”232″ y=”53″ label=”Button” click=”afficher()” id=”bAfficher”/>
<mx:Label x=”22″ y=”92″ width=”202″ id=”lMonResultat”/>

</mx:Application>

Allez-y testez! Pour compiler le projet cliquez sur la petite flèche verte dans la barre d’outils (a gauche de l’insecte) ou clic droit sur le fichier puis run application.

Capture du rendu

“Mais heuuuuuuuu…quand je clic il se passe rien!!!!” On y vient!

  • Le script

Nous allons placer notre balise <mx:Script> juste en dessous de la déclaration de notre application. Vu que nous sommes sur un modèle XML strict nous devons indiquer au compilateur que les lignes qui suivent ne sont pas du XML mes du AS3 (ActionScript3). Le commentaire “<![CDATA[ mes fonctions AS3 ]]>” va nous permettre de le faire. Vous avez sûrement rencontré ce type de commentaire dans du XHTML voir du HTML.

Ensuite on déclare notre fonction. Vu que le AS3 est objet (comme le JAVA par exemple) nous devons indiquer la portée de nos fonctions, ici : private. Juste avant l’accolade on indique le type des données retournée. Dans notre cas la fonction ne retourne rien, elel est donc du type void.

Enfin notre traitement, on affecte au label lMonResultat le text qui est contenu dans le textfield tMonText.

<mx:Script>
<![CDATA[
private function afficher():void{
lMonResultat.text=tMonText.text;
}
]]>
</mx:Script>

Recompilez votre application et cela devrait marcher!

Vous venez de réaliser votre première applications FLEX!!! Si vous avez modifier un peu le script pour aller plus loin n’hésitez pas à nous le montrer! N’ayez pas peur j’ai commencé il y à seulement quelques heures :-)

A bientôt et amusez vous bien!

Publié dans flex, tutoriel, web 2.0 | Taggé: , , , , , | 4 Commentaires »

[tuto jQuery] navigation en ajax non-intrusif (1/2)

Publié par Guiral antoine sur avril 20, 2008

Ca y est, il arrive. Le tutoriel sur la navigation en ajax non-intrusif débarque sur vos écrans! Le but est donc de proposer une navigation en ajax (on ne rechergera que le contenu de la page) qui soit non-intrusive. Cela veut dire que si le javascript n’est pas activé le site fonctionnera toujours. Un petit exemple :-)

Nous allons commencer par faire notre site de manière classique, celle qui sera affichée quand le javascript sera désactivé. Afin de factoriser le code je vais utiliser du php pour afficher le contenu, mais le fonctionnement serait le même en utilisant différent fichiers.

Lisez la suite de cette entrée »

Publié dans tutoriel, web 2.0 | Taggé: , , , , , , , | Aucun commentaire »

Google, Apple et nous…prenons-en de la graine!

Publié par Guiral antoine sur mars 29, 2008

Google, Apple, et les autres…
Je crois que je rentre bien dans la 3ème catégorie…

Publié dans aide mémoire, découverte, thème, web 2.0 | Taggé: , , , | Aucun commentaire »

[annonce] Création d’un thème pour wordpress

Publié par Guiral antoine sur mars 22, 2008

Bonjour à tous!

Voilà, cela fait bientôt trois mois que je blog et ça me plait. Je vais donc m’investir un peu plus. Concrètement cela va se traduire par plusieurs choses. Lisez la suite de cette entrée »

Publié dans projet, tutoriel, web 2.0 | Taggé: , , , | 3 Commentaires »

[tuto jquery] drag ‘n drop avec sauvegarde automatique en base de données (2/2)

Publié par Guiral antoine sur mars 9, 2008

Ce tutoriel est disponible sur mon nouveau blog (lien direct). Afin d’eviter le duplicate content je vais tronquer une partie de l’article…

Ça y est, la suite est enfin là! Dans la première partie de ce tutoriel nous avions vu comment faire un drag’n drop avec jQuery. Maintenant nous allons voir comment effectuer notre sauvegarde automatique grâce à l’AJAX. Il y a deux modifications majeures à apporter à notre code. La première est la partie base de données : création des tables, des requêtes,etc… La seconde est l’ajout d’un traitement lors d’un drop d’ingrédient dans une recette. Autrement dit, effectuer les requêtes au bon moment.

  • La BDD

Notre base sera composée de 3 tables :

  • la table recette sera composé d’un identifiant (id_recette) et d’un nom de recette (recette).
  • la table ingrédient avec un identifiant (id_ingredient) et du nom de l’ingrédient (ingredient).
  • la table recette_ingredient qui contiendra les compositions de nos recettes sous la forme de couple id_recette,id_ingredient.

Cette organisation vient de nos cardinalités : un ingrédient peut être dans plusieurs recettes et une recette peut contenir plusieurs ingrédients.

Voici le code SQL pour créer les tables :

CREATE DATABASE `tuto_drag` ;

CREATE TABLE `recettes` (

`id_recette` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`recette` VARCHAR( 50 ) NOT NULL

) ENGINE = innodb;

CREATE TABLE `ingredients` (

`id_ingredient` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`ingredient` VARCHAR( 50 ) NOT NULL

) ENGINE = innodb;

CREATE TABLE `recette_ingredient` (

`refid_ingredient` INT NOT NULL ,
`refid_recette` INT NOT NULL

) ENGINE = INNODB CHARACTER SET latin1 COLLATE latin1_swedish_ci

ALTER TABLE `recette_ingredient` ADD PRIMARY KEY ( `id_ingredient` , `id_recette` )

INSERT INTO `ingredients` ( `id_ingredient` , `ingredient` )
VALUES (NULL,’oeuf’),(NULL,’sucre’),(NULL,’farine’),(NULL,’sel’),(NULL,’lait’);

INSERT INTO `recettes` ( `id_recette` , `recette` )
VALUES (NULL,’Pâte à crêpe’),(NULL,’Pâte brisée’);

  • Les traitements coté serveur

Maintenant que nous avons une base de données il faut créer les scripts qui vont nous permettre d’interagir avec elle. Nous devons pouvoir ajouter une recette, un ingrédient et faire nos sauvegarde de composition de recette. Appelons notre fichier “traitement.php”.

La suite du tutoriel est disponible sur mon nouveau blog (lien direct). Désolé pour la gêne occasionnée ^_^’

Publié dans tutoriel, web 2.0 | Taggé: , , , , , , , , | 26 Commentaires »