Adobe User Group Tour

janvier 30th, 2012

banniere

Amis Flasheurs, amis Flexeurs,

Deepa, Thibault, et Michael descendent sur Bordeaux, le Jeudi 23 Février à 19H,  pour nous présenter ce qui nous attend avec les prochaines versions du Flash Player, et du tout nouveau Apache Flex.

Attendez vous à du lourd, de l’info de première main et la possibilité de discuter avec ceux qui construisent les outils que nous utilisons.

Comme d’habitude chez les tontons, c’est completement gratuit.

thibault Thibault Imbert is a sr. product manager on the Flash Runtime team focused on graphics, ActionScript and the next-generation profiling tool for Flash Player and AIR (codename Monocle). After a few years working for different French agencies as a Flash developer, Thibault became an Adobe Certified Instructor in Paris where he taught ActionScript at an Adobe training center. In 2008 Thibault released a free and open-source ActionScript 3 book called Pratique d’ActionScript 3, which was rewritten for Flash Player 10 and released by Pearson in 2009. He released in 2010 a white paper about performance optimizations for the Flash Platform. He recently wrote a book on the Starling framework (2D on the GPU with Stage3D). Thibault also attends and speaks at conferences about ActionScript (Adobe Max, FOTB) and likes listening to funky music and cooking macaroons. Most of his experiments are available on his blog, ByteArray.org.

deepaDeepa Subramaniam is a Group Product Manager of Open Web Technologies at Adobe. She focuses on the contributions Adobe makes to WebKit along with Adobe’s activities in standards with the W3C. Prior to focusing on HTML5, she was a die-hard « Flashist » having been the Product Manager of Flex SDK and the Product Manager/Engineering Manager of « Monocle », a performance analysis tool for Flash.

michael Michaël Chaize is a Flash Platform Evangelist at Adobe where he focuses on Rich Internet Application and Enterprise Integration. Based in Paris, he works with large accounts that need to understand the benefits of rich user interfaces, leverage the existing back-ends to add a rich presentation layer and measure the impact on the existing IT teams. He believes that intuitive user experiences in the Enterprise are key to successful developments of effective, efficient, engaging, easy to learn and error free applications. He loves to promote concepts such as “Productivity by design” or “User Experience oriented architectures”. In his previous role, Michael worked as a Technical Sales in France and assumed the promotion of the Flash Platform in front of large audiences of developers and IT managers. Before joining Adobe, Michael founded a software company and taught RIA languages such as Flex and PHP in IT engineering schools.

Inscrivez vous ici.

Un peu plus de Coding Contest

janvier 25th, 2012

banniere2

first_as3_class_flash_lg.jpg.adimg.mw.138Les robots seront codés en AS3 lors de cette compétition.

D’autres langages viendront faire leur apparition mais une autre fois.
En attendant n’ayez aucune inquiétude, ceux qui connaisse pas l’AS3 le trouverons familier, nous allons vous fournir un IDE à installer sur votre ordinateur, un sdk, un robot d’exemple, ainsi que bon nombre d’autres outils pour améliorer le « developement experience« .

La tournoi débutera par l’arène, un espace qui vous permettra de mesurer votre robot aux autres instantanément et d’analyser chaque match.
Ensuite lorsque tout les participants seront prêt, viendra la phase finale où les robots s’affronteront dans un tableau à élimination directe jusqu’à la désignation du vainqueur.

Plus d’information sur l’AS3 ici.

Inscriver vous ici : http://codingcontest.eventbrite.com/

Coding Contest

janvier 19th, 2012

planetwars-poster

Montez une équipe et venez prouver votre valeur en défiant les autres dans une incroyable compétition de programmation.

Imaginez, concevez et développez la strategie qui vous permettra de remporter de nombreux lots.

Les tontons flexeurs organisent un tournoi de développement en équipe, dans le genre de ce qu’on peut voir sur e=m6 avec les combats de robots.
Vous aurez à développer la stratégie de votre robot logique, son IA, et le faire affronter les autres.

Ce n’est pas le meilleur développeur qui gagnera mais bien la plus habile stratégie qui sera recompensée.
Pour participer il suffit d’avoir au moins un membre de l’équipe maitrisant un des languages orientés objet les plus populaires. Il peut être développeur PHP, Javascript, Java, ActionScript, C#, C++, Python, etc…

Les organisateurs s’assureront que la technologie choisie pour le tournoi ne soit un frein pour personne.

Attention, vous devrez venir avec votre ordinateur, au moins un par équipe, et votre bonne humeur.

L’équipe organisatrice a prévu un buffet campagnard et des boissons pour ceux qui veulent rester sur place.

C’est gratuit, alors n’hésitez pas, et venez vous amuser avec nous.

Inscriver vous ici : http://codingcontest.eventbrite.com/

Retour sur : IHM et Ergonomie

janvier 16th, 2012

Voici un bilan de la dernière réunion des tontons Bordelais consacrée à l’ergonomie des IHM applicatives est terminée.

What went well

* Une présentation passionnante sur l’ergonomie des IHM. Merci à Sofia et Rémi.
* Une thématique abordée qui nous ouvre à d’autres disciplines en lien direct avec la notre.
* Une fréquentation intéressante avec 35 personnes dont seulement une moitié de développeur, et une bonne dizaine de jeunes femmes.
* Le timing était parfait.
* L’annonce de la préparation d’un Coding Contest a reçu a accueil positif.
* Des sponsors potentiels se sont manifestés.
* Des échanges autour du buffet très riches.

What went wrong

* Le buffet était moins glamour que les précédent.

Lessons (re-)learnt

* Le choix de la prochaine réunion s’est porté sur l’Architecture de l’information.
* Un nouveau sujet sur le design sonore est à ajouter.
* Un participant est motivé pour présenter quelque chose, à suivre.
* Notre communauté s’ouvre au sponsoring. Nous avons encore tout à apprendre de cet aspect, le débat est lancé.

Les documents liés à la présentation :

ttfx6-intro

FUG06_IHM_et_Ergonomie

Introduction à Minko

décembre 23rd, 2011

Minko
Minko est un moteur de rendu 3D pour flashplayer 11 comme il en existe beaucoup d’autre (Alternativa3D, UnrealEngine 3, Unity3D).

Mais c’est le premier framework gratuit, open source, et maintenu par une entreprise, Aerys.

Si tout le monde comprend l’intérêt de profiter d’un outil gratuit, le fait qu’il soit open source est un confort immense pour le développeur et pour comprendre comment il fonctionne. Cela permet egalement de participer à l’amélioration de celui-ci en proposant des correctifs ou de nouveaux éléments.
Qu’une entreprise s’occupe de le maintenir est aussi un avantage … et un inconvénient. Je ne vais pas rentrer dans les détails mais c’est très comparable au framework Flex. Cela peut rassurer quand à la pérennité de l’outil mais également inquiéter sur sa gouvernance.

Maintenant je vous propose de créer notre première scène avec Minko et Flex, en produisant quelque chose de comparable à mon dernier tutoriel sur Alternativa3D.

Pre-Requis

Attention à bien respecter ces points avant de commencer, au risque de passer beaucoup de temps à chercher sur le net des solutions.

- cibler flashplayer 11
- ajouter « -swf-version=13 » aux options de compilations
- sous firefox virer FireBug & Co au risque d’avoir des erreurs de type ReferenceError: Error #1065: Transform3DController
- utiliser le wmode= »direct » comme expliqué ici en cas de Error #2044: ErrorEvent non pris en charge : text=Error #3702: Context3D non disponible.

Les Elements de mon univers

L’affichage de la scène est pris en charge par le Viewport, un Sprite dédié au rendu de notre univers.

Tout est Group ! Dans Minko, tout les éléments composants notre univers sont des Group. Notre scène principale est un Group, une boite est un Group contenant texture, mesh, transformation, etc…
Bon on va voir un peu plus loin que tout n’est pas vraiment Group mais c’est un concept important et j’aime bien l’idée :)

L’observateur est une Camera, voilà un concept qui ne devrait pas nous dépayser.

Enfin la lumière est fournie par … Light, bon là aussi ça devrait aller mais par contre il faudra ajouter l’extension minko-lighting au framework. Ah oui parce qu’il existe pas mal d’extension pour ajouter des fonctionnalités au framework de base, pour par exemple charger des 3DS, apporter la physique, l’éclairage, etc…

Bien créons notre propre univers 3D maintenant et comme un bon cuisinier nous allons commencer par préparer nos ingrédients :

private var _camera:ArcBallCamera = new ArcBallCamera();
private var _cube:Group = new Group();
private var _display3DContainer:UIComponent = new UIComponent();
private var _scene:Group = new Group();
private var _viewport:Viewport = new Viewport();

_display3DContainer est là pour contenir dans viewport car nous sommes dans un projet Flex et il n’est pas possible d’ajouter autre chose qu’un UIComponent dans notre application.

Maintenant préparons notre Cube ainsi :

        private function buildCube():void
        {
            var mesh:CubeMesh = new CubeMesh();
            var texture:ColorTexture = new ColorTexture( 0xFF0000 );
            _cube.addChild( texture );
            _cube.addChild( mesh );
        }
 

La creation de l’univers

Maintenant que nous avons tout nos ingrédients sous la min, allons y pour un peu de cuisine.
Je vais faire ça sur à la réception du FlexEvent.APPLICATION_COMPLETE. C’est un détail qui n’a pas beaucoup d’importance.

		private function applicationCompleteHandler( event:FlexEvent ):void
		{
			_camera.distance = 3.0;
			_scene.addChild( _camera );

			buildCube();
			_scene.addChild( _cube );

			_viewport.alwaysOnTop = true;
			_display3DContainer.addChild( _viewport );
			addElement( _display3DContainer );
		}
 

 

Je commence par placer ma camera au bon endroit puis je l’ajoute à ma scène.
Ensuite je lance la fabrication de mon cube et je l’ajoute à la scène.
Enfin j’ajoute mon viewport à mon UIContainer que j’ajoute egalement à mon application.

A noter cette instruction :

_viewport.alwaysOnTop = true;

Elle garantie que le rendu sera toujours par dessus. Bon j’ai pas bien compris le pourquoi de comment là, mais je reviendrais dessus.

 

Pour finir nous allons animer le tout par une petite rotation de la camera autour du cube.

 

Rendu et Animation

Terminons ce premier tutoriel par l’ajout d’une petite animation et surtout … le rendu de notre scène !
Ajoutons un listener sur Event.ENTER_FRAME.

addEventListener( Event.ENTER_FRAME, enterFrameHandler );

Servons de notre handler pour modifier la position de la camera et déclencher le rendu de cette façon :

		private function enterFrameHandler( event:Event ):void
		{
			_camera.rotation.y += 0.03;
			_viewport.render( _scene );
		}

Notre camera est une ArcBallCamera. C’est à dire qu’elle est braquée sur une cible (par defaut 0,0,0) et va tourner autour via sa propriété rotation.
Il nous suffit de l’incrémenter à chaque itération pour obtenir l’animation désirée.

Pour le rendu c’est simple, on demande au viewport de rendre notre scène et le tour est joué.

Remoting AMF3 et backend .NET avec FluorineFX.

décembre 22nd, 2011

1) Le remoting

Pour ceux qui ne le savent pas, l’AMF est un protocole de communication client-serveur inspiré de SOAP. L’intérêt de ce format réside dans sa capacité à transporter des données complexes et typées entre le client et le serveur, en binaire.

Bien qu’inventé en 2003, ce protocole reste le plus efficace et le plus performant, tenant tête à des collègues plus récents comme l’excellent JSON (http://www.jamesward.com/census2/ ).

De plus l’AMF est un format complétement ouvert dont on peut trouver ses spécifications ici :

http://opensource.adobe.com/wiki/download/attachments/111428….

 

2) FluorineFX

On peut trouver une implémentation de l’AMF dans presque toutes les technologies serveur (PHP, JAVA, .Net, Ruby, Python, Perl, Haxe, ColdFusion, etc…). En .Net, les deux principales sont WebOrb et FluorineFX.

Sans rentrer dans les détails et chercher à comparer chacune de ses deux solutions, je vais plutôt indiquer les raisons qui nous ont fait choisir FluorineFX.

FluorineFX est :

- Plus simple à installer

- Plus simple à utiliser

- Plus performant

- Open source

 

Techniquement j’apprécie les fonctionnalités comme le RTMP, le Data Paging, et le class mapping automatique.

 

3) La configuration

Le serveur :
Sous IIS 7 c’est on ne peut plus simple. Il faut bien entendu installer le module dans son projet et modifier le Web.config ainsi :

<system.webServer>

<modules>

<add name="FluorineGateway" type="FluorineFx.FluorineGateway, FluorineFx" />

</modules>

</system.webServer>

Le service :

La déclaration d’un service se fait également très simplement à l’aide du metatag [RemotingService] sur sa declaration de classe. Fluorine se chargera alors tout seul de la publication du service.

using FluorineFx;

namespace Demo.Service
{
[RemotingService]
public class UserService
{
public UserService()
{

}

public void LogUser(string username, string password)
{

}
}
}

Le client :

Coté client, l’utilisation de FluorineFX est completement transparent et ne change en rien par rapport à une autre solution.

Ainsi pour mapper un objet de donnée sur une classe coté serveur on utilisera encore le metatag

[RemoteClass( alias = "Demo.TestVO" )] .

IHM et Ergonomie

décembre 14th, 2011

Nouveau rendez-vous des tontons consacré cette fois à la construction d‘IHM et à son ergonomie.

Rémi Favretto et Sofia Krari viendront nous donner les bonnes pratiques en matière d’ergonomie sur les interface d’application riche, mais aussi nous expliquer comment améliorer l’expérience utilisateur.

Venez donc nombreux Jeudi 12 Janvier à 19h participer à notre sixième événement.

Pour ne pas changer une équipe qui gagne, ce sera salle TD6 au premier étage de l’ENSEIRB-MATMECA.

Comme d’habitude c’est gratuit et ouvert à tous, alors inscrivez vous vite sur http://ttfx6.eventbrite.com/

affiche

Inscrivez vous, un tirage au sort aura lieu pour designer le gagnant d’un exemplaire de l’ouvrage de Christophe Keromen Flex 4.5 pour mobiles »

FDT 5 est sortie … et devient gratuit!

octobre 26th, 2011

fdt logo

fdp logo


L’IDE de PowerFlasher vient de sortir en version 5 et devient gratuit pour l’occasion.
C’est le premier IDE du niveau de Flash Builder, gratuit et multiplateforme Mac PC Linux.

Quelques nouveautés en vrac :

# haXe support
# Extract Method
# Extract Constant
# Extract Local Variable
# Convert Local Variable to Field
# ASDoc View
# Fat SWC ASDoc Support
# Sources Attachment for SWCs
# ActionScript ASDoc Support
# Breakpoint Support in Flex SDK
# AIR SDK Merging
# Launching Mobile Projects
# Project Templates for haXe

A telecharger d’urgence et bientot une presentation chez les tontons…

Embarquez vos ressources de maniere plus séduisante

octobre 6th, 2011


Si vous choisissez d’embarquer vos Assets dans votre application, vous avez surement utilisé la syntaxe suivante :

 [Embed( source = "images/preloader.swf" )]
		private var _test:Class;

		private function displayAsset():void
		{
			addChild( new _test() as DisplayObject );
		}

J’ai plusieurs reproche à faire à cette méthode. D’abord, ça me gène d’écrire new _maProps(), ça n’est pas vraiment conforme avec la convention de nommage d’Adobe.
Et bien sur pas question de changer la déclaration car elle est respectueuse de la convention pour les propriétés.
Ensuite, Class n’est pas vraiment typé. On développerait en JS ça ne me dérangerait pas mais là on travail avec un langage fortement typé et je trouve regrettable de s’en passer.

Heureusement il y a beaucoup plus sexy, embarquer sa ressource dans une déclaration de classe comme ceci :

 [Embed( source = "images/preloader.swf", mimeType = "application/octet-stream" )]
	public class LoadingSpinnerBytes extends ByteArrayAsset
	{
		public function LoadingSpinnerBytes()
		{
		}
	}

Du coup il est possible d’utilsier notre ressource un peu partout et et faisant simplement un new LoadingSpinnerBytes();

Notez que dans cet exemple j’ai choisi d’embarquer une animation SWF et qu’en conséquence, ma classe hérite de ByteArrayAsset.
Il convient de choisir sa classe mère en fonction du type de ressource embarquée.

Flash Player 11 et Unreal Engine 3

octobre 5th, 2011

Vous devez surement savoir qu’Adobe venait de lancer la version 11 du Flash player.
Je ne vais pas revenir sur les nombreuses nouveautés apportées par cette version majeur mais juste en reprendre quelques unes pour information :

  • Accélération du rendu graphique Stage3D
  • Prise en charge native de l’architecture 64 bits
  • Codage logiciel H.264/AVC pour webcams
  • Accès au GarbageCollector
  • etc…

Par contre la grosse annonce du moment vient de Epic Games avec le support par le flash player de leur moteur 3D, le Unreal Engine 3.

“With UE3 and Flash, games built for high-end consoles can now run on the Web or as Facebook apps, reaching an enormous user base”

dixit Tim Sweeney, CTO chez Epic Games.

Les chanceux qui ont pu assister à sa présentation hier à LA, ont pu voir tourner UT3 dans un navigateur web, grace au Flash Player.

Bientot la demo pour tous ?