Apollo book

turnmaryΛογισμικό & κατασκευή λογ/κού

5 Ιουλ 2012 (πριν από 4 χρόνια και 9 μήνες)

342 εμφανίσεις


Apollo

Précis & concis

_Apollo.book Page 1 Vendredi, 8. juin 2007 1:50 13

_Apollo.book Page 2 Vendredi, 8. juin 2007 1:50 13

Apollo

Précis & concis

M

IKE

C

HAMBERS

, R

OBERT

L. D

IXON

& J

EFF


S

WARTZ

Traduction de

David D

ERAEDT

Cambridge • Cologne • Farnham • Paris • Pékin
Sebastopol • Taipei • Tokyo
Éditions O’REILLY
18 rue Séguier
75006 Paris

france@oreilly.com
http://www.oreilly.fr/

_Apollo.book Page 3 Vendredi, 8. juin 2007 1:50 13

L’édition originale de ce livre a été publiée aux États-Unis par O’REILLY &
Associates sous le titre

Apollo for Flex : Pocket Guide

, ISBN 0-596-51391-7.
© O’REILLY & Associates, 2007

Couverture conçue par

2-84177-444-9

Édition :

Dominique B

URAUD

Les programmes figurant dans ce livre ont pour but d’illustrer les sujets
traités. Il n’est donné aucune garantie quant à leur fonctionnement une
fois compilés, assemblés ou interprétés dans le cadre d’une utilisation
professionnelle ou commerciale.
© É

DITIONS

O’R

EILLY

, Paris, 2007
ISBN 2-84177-444-9

Toute représentation ou reproduction, intégrale ou partielle, faite sans le consente-
ment de l’auteur, de ses ayants droit, ou ayants cause, est illicite (loi du 11 mars
1957, alinéa 1

er

de l’article 40). Cette représentation ou reproduction, par quelque
procédé que ce soit, constituerait une contrefaçon sanctionnée par les articles 425
et suivants du Code pénal. La loi du 11 mars 1957 autorise uniquement, aux termes
des alinéas 2 et 3 de l’article 41, les copies ou reproductions strictement réservées à
l’usage privé du copiste et non destinées à une utilisation collective d’une part et,
d’autre part, les analyses et les courtes citations dans un but d’exemple et d’illustra-
tion.

Mise en page :

pbi1@mac.com

_Apollo.book Page 4 Vendredi, 8. juin 2007 1:50 13

v

Table des matières

Préface i
Chapitre 1 - Introduction à Apollo

Une courte histoire des applications web 1
Les problèmes induits par la délivrance d’applications via le
navigateur 4
Présentation de l’environnement d’exécution Apollo 6
Les technologies fondamentales d’Apollo 7

Chapitre 2 - Commencer le développement d’applications
Apollo

Installer l’environnement d’exécution Apollo Alpha 1 19
Outils nécessaires pour le développement d’applications
Apollo 21
Créer une première application Apollo 25
Etapes suivantes 37

Chapitre 3 - Utiliser du HTML dans les applications
Apollo créées avec Flex

Le support du HTML dans Apollo 40
Utiliser le composant Flex HTML 42
Utiliser la classe HTMLControl 53
Le Script Bridging : faire communiquer ActionScript et
JavaScript 56

Chapitre 4 - Utiliser l’API de système de fichiers

Le modèle de sécurité 64
Accéder aux fichiers et aux répertoires 64
Versions asynchrones et synchrones des méthodes 68
Lire le contenu des répertoires 70
Récupérer les informations d’un fichier 71

_Apollo.book Page v Vendredi, 8. juin 2007 1:50 13

Apollo — précis & concis

vi

Copier et déplacer des fichiers et des répertoires 72
Créer des fichiers et des répertoires 73
Supprimer des fichiers et des répertoires 74
Lire et écrire des fichiers 74

Chapitre 5 - Apollo par l’exemple

Travailler avec le système de fichiers 81
Travailler avec du HTML 101
Utiliser l’API de fenêtrage 105

Annexe A - Paquetages et classes d’Apollo
Annexe B - Outils en ligne de commande d’Apollo

AMXMLC 126
ADL 126
ADT 127

Index 129

_Apollo.book Page vi Vendredi, 8. juin 2007 1:50 13

i

Préface

Cet ouvrage constitue une introduction au développement
d’applications pour la version Alpha 1 publique d’Adobe
Apollo, un nouvel environnement d’exécution

1

multi-plate-
formes pour applications de bureau. Bien qu’Apollo permette
le développement d’applications basées à la fois sur Flash et sur
HTML, cet ouvrage se concentre essentiellement sur la création
d’applications Apollo avec le framework Flex.
Ce livre offre un aperçu d’Apollo. Il montre comment préparer
votre environnement de développement, et étudie ses nou-
velles fonctionnalités ainsi que ses API. Au terme de sa lecture,
vous devriez avoir une bonne compréhension de ce qu’est
Apollo et de la manière de créer des applications Apollo avec
Flex.

Conventions de nommage de
l’environnement d’exécution Apollo

L’environnement d’exécution Apollo permet aux développeurs
de mettre à profit un certain nombre de technologies web afin
de déployer leurs applications web vers le bureau. En effet, le
nombre de technologies actuelles est si important qu’il semble
difficile de les suivre toutes. Le tableau suivant liste les termes
utilisés dans cet ouvrage et de leur signification :

1 Dans cet ouvrage, l’expression environnement d’exécution fait réfé-
rence à la notion de

runtime

parfois employée, notamment par Ado-
be.

Nom
Signification

Apollo

L’environnement d’exécution multi-plateformes
pour le bureau qui permet l’exécution d’applica-
tions Apollo.

_Apollo.book Page i Vendredi, 8. juin 2007 1:50 13

ii

Préface

Contenu de l’ouvrage

Ce livre offre un aperçu de ce qu’est Apollo. Il explique tout
d’abord comment préparer votre environnement de développe-
ment pour commencer à créer des applications. Il se penche
ensuite sur deux de ses nouvelles API (

HTML

et

File

). Enfin, il
montre comment réaliser un certain nombre de tâches cou-
rantes relatives à la programmation avec Apollo.
D’une manière générale, les fonctionnalités déjà présentes dans
la version alpha sont relativement stables et ne devraient pas
changer radicalement (bien qu’elles puissent être légèrement

Application
Apollo
Application construite avec du Flash, du HTML
et/ou du PDF et qui s’exécute avec Apollo.
Flash

N’importe quel contenu inclus dans un format
de fichier SWF 9 qui s’exécute dans le lecteur
Flash ou dans Apollo.
ActionScript

Le langage de programmation basé sur ECMA-
Script utilisé pour programmer du contenu
Flash. Sauf mention contraire, cet ouvrage se
réfère toujours à ActionScript 3.
HTML

Langage à balises pour le Web utilisé pour créer
et mettre en page des pages web.
JavaScript

Implémentation d’ECMAScript pour le Web
utilisée pour programmer le contenu des applica-
tions HTML.
PDF

Portable Document Format, format permettant
la distribution et l’affichage de documents élec-
troniques.
Framework Flex

Framework basé sur XML et ActionScript créé
pour faciliter le développement d’applications
Internet riches avec Flash. Dans cet ouvrage,
chaque mention faite au Framework Flex se
réfère à Flex 2.0 ou supérieur.
Flex Builder

Environnement de développement basé sur
Eclipse utilisé pour créer des applications
Internet riches à l’aide de Flash et d’ActionScript.

Nom
Signification

_Apollo.book Page ii Vendredi, 8. juin 2007 1:50 13

iii

Préface

remaniées suite aux divers retours des développeurs). En
revanche, les fonctionnalités mentionnées et qui ne sont pas
encore implémentées sont suceptibles d’être modifiées dans les
prochaines versions d’Apollo.
Il faut également noter que la version Alpha 1 d’Apollo est
incomplète. Un nombre significatif de fonctionnalités n’ont pas
encore été implémentées et/ou incluses dans cette version.
La liste suivante est une liste partielle des fonctionnalités
incluses dans Apollo version Alpha 1 :
• support de Mac (OS X 10.4, Intel et PPC) ;
• support de Windows (Windows XP et Windows Vista Home
Premium Edition) ;
• installation d’applications ;
• API d’entrée/sortie de fichier ;
• toutes les fonctionnalités de Flash Player 9, pile réseau
incluse ;
• API de fenêtrage (incomplète) ;
• outils en ligne de commande (ADL et ADT) ;
• HTML dans du contenu Flash ;
• applications HTML, au niveau le plus haut ;
• communication entre ActionScript et JavaScript ;
• support de Flex Builder et du Framework Flex pour créer
des applications Apollo ;
• arguments d’application en ligne de commande ;
• icônes d’applications.
La liste suivante est une liste partielle des fonctionnalités pré-
vues pour Apollo 1.0 qui ne sont pas incluses dans la version
Alpha 1.
• support du PDF ;
• API de menu multi-plateformes ;

_Apollo.book Page iii Vendredi, 8. juin 2007 1:50 13

iv

Préface

• contrôle du clic-droit et du menu contextuel ;
• support complet du HTML ;
• notifications système ;
• API de données en mode déconnecté ;
• glisser-déposer ;
• accès au presse-papiers « riche » ;
• association des types de fichiers.
Nous mentionnerons chaque fonctionnalité susceptible d’être
modifiée dans les versions ultérieures d’Apollo.

Ce que signifie Alpha

Comme nous l’avons vu dans la section précédente, la version
Alpha 1 d’Apollo est loin d’être complète et certaines fonction-
nalités ne sont que partiellement implémentées. Par
conséquent, l’implémentation et la disponibilité de certaines
fonctionnalités sont susceptibles de changer radicalement entre
la version Alpha et la version 1.0.
Cela s’applique également au contenu de cet ouvrage. Ce livre a
été écrit avant que la version Alpha 1 ne soit finalisée, il est
donc possible que certaines API ou fonctionnalités aient chan-
gées entre temps. C’est tout particulièrement vrai en ce qui
concerne le nom des API. Si quelque chose ne fonctionne pas
de la manière décrite dans cet ouvrage, vous devriez consulter
la documentation en ligne, qui contient toujours les informa-
tions les plus récentes sur les API de la version Alpha 1.
Vous pouvez trouver les dernières informations et documenta-
tions sur le site :

http://www.adobe.com/go/apollo

.

Notre public

Nous espérons que ce livre s’adresse à vous, mais afin d’en être
certain, voici ce que la lecture de ce livre présuppose, ainsi que
le type de développeur auquel il s’adresse.

_Apollo.book Page iv Vendredi, 8. juin 2007 1:50 13

v

Préface

Ce livre présupose que le lecteur soit quelque peu familier avec
la création de contenu et d’applications Flash créées avec le Fra-
mework Flex et ActionScript 3.0.
Vous devez connaître les technologies web telles que Flash,
Flex, HTML et JavaScript, ainsi que les concepts de base du
développement sur le Web.

A qui s’adresse ce livre ?

Ce livre s’adresse aux développeurs qui désirent utiliser leurs
connaissances du framework Flex pour créer et déployer des
applications Flash vers le bureau

via

Apollo. Si vous n’avez
aucune expérience du développement avec le framework Flex,
nous vous suggérons de consulter les informations et vidéos
d’introduction à Flex disponibles sur le site :

http://
www.adobe.com/go/flex

.

A qui ce livre ne s’adresse pas ?

Bien qu’il soit possible de créer des applications basées sur
HTML et JavaScript avec la version Alpha 1 d’Apollo, ce livre
ne détaille pas le développement de telles applications. Si vous
êtes développeur HTML et JavaScript et que vous vous inté-
ressez à la création d’applications avec Apollo, ce guide peut
vous fournir un bon aperçu d’Apollo et de ses fonctionnalités.
Mais, dans ce cas, vous devriez probablement consulter la docu-
mentation et les articles du site web d’Apollo pour trouver des
informations plus spécifiques au HTML et à JavaScript.

Organisation de ce livre

Ce livre contient les chapitres et annexes suivants :

Chapitre 1, Introduction à Apollo

Aperçu général de ce qu’est Apollo et du type d’applications
visées.

_Apollo.book Page v Vendredi, 8. juin 2007 1:50 13

vi

Préface

Chapitre 2, Commencer le développement d’applications Apollo

Astuces sur la manière de démarrer votre développement
Apollo et étapes à suivre pour créer votre première applica-
tion Apollo.

Chapitre 3, Utiliser HTML dans les applications Apollo créées avec
Flex

Traite de la manière dont le HTML peut être utilisé dans des
applications Flash et couvre la communication JavaScript/
ActionScript grâce au Script Bridging.

Chapitre 4, Utiliser l’API de système de fichiers

Présente l’API de fichier d’Apollo, et explique comment uti-
liser les API synchrones et asynchrones.

Chapitre 5, Apollo par l’exemple

Fournit des trucs et astuces pour accomplir certaines tâches
quotidiennes dans le développement d’applications Apollo,
le tout présenté au format de la collection

par l’exemple

des
éditions O’Reilly.

Annexe A, P aquetages et Classes d’Apollo

Propose une liste des nouvelles API Apollo ajoutées à
ActionScript, ainsi que celles qui ont été modifiées.

Annexe B, Outils en ligne de commande d’Apollo

Fournit une liste des outils en ligne de commande spécifi-
ques à Apollo, ainsi que leurs options.

Bien utiliser cet ouvrage

Ce livre peut à la fois être utilisé comme une introduction et un
aperçu d’Apollo, ainsi que comme un guide qui vous aide,
étape par étape, pour démarrer le développement d’applica-
tions Apollo. Bien qu’il puisse paraître tentant de vous plonger
immédiatement à l’intérieur de telle ou telle section spécifi-
ques, il est fortement conseillé de lire au moins les deux
premiers chapitres, qui fournissent un aperçu d’Apollo, et trai-
tent de la manière dont vous préparez votre environnement de
développement pour créer des applications Apollo. Il vous sera

_Apollo.book Page vi Vendredi, 8. juin 2007 1:50 13

vii

Préface

alors beaucoup plus facile de vous plonger dans les sections qui
vous intéressent.
Une fois que vous aurez parcouru ce livre et compris les bases
de la création d’une application Apollo avec Flex, vous pourrez
alors l’utiliser comme référence en vous rendant directement
dans certaines sections lorsque vous aurez besoin de régler un
problème donné. En particulier, les sections qui concernent les
fichiers, le HTML et la partie Apollo par l’exemple devraient
s’avérer bien utiles lors de vos développement d’applications.
Enfin, ce livre n’est qu’une introduction à Apollo et ne couvre
pas l’ensemble de ses fonctionnalités. Il a pour but de com-
pléter et non de remplacer la documentation exhaustive
d’Apollo fournie par Adobe. Essayez d’aller au moins jeter un
œil à la documentation d’Apollo pour vérifier que vous con-
naissez toutes les API et fonctionnalités qui ne sont pas traitées
dans ce livre.

Conventions utilisées dans ce livre

Les conventions typographiques suivantes sont utilisées dans ce
livre :

Interface

Indique le titre des menus, les options des menus, les bou-
tons des menus et les racourcis clavier (tels que

Alt

et

Ctrl

).

Italique

Met en valeur les termes nouveaux, URL, adresses de cour-
rier électronique, noms de fichiers, extensions de fichiers,
chemins, répertoires et outils Unix.

Largeur fixe

Désigne les commandes, options, variables, attributs, tou-
ches, fonctions, types, classes, espaces de nom, méthodes,
modules, propriétés, paramètres, valeurs, objets, événe-
ments, gestionnaire d’événement, balises XML et HTML,
macros, contenus des fichiers ou sortie des commandes.

_Apollo.book Page vii Vendredi, 8. juin 2007 1:50 13

viii

Préface

Largeur fixe gras



Montre les commandes ou autre texte qui devraient être
tapés de manière litérale par l’utilisateur.

Largeur fixe italique



Désigne le texte qui devrait être remplacé par des valeurs
fournies par l’utilisateur.

Licence et exemples de code

Cet ouvrage, y compris l’ensemble de ses textes et exemples de
code, est sous licence Creative Commons 2.5 : Attribution-Non-
commercial-Share Alike.
Vous pouvez consulter cette licence sur le site

http://creativecom-
mons.org/licenses/by-nc-sa/2.5/

ou, en envoyant une lettre à
Creative Commons, 543 Howard Street, 5th Floor, San Fran-
cisco, California, 94105, USA.
Plus d’informations sur la licence Creative Commons sont
accessibles sur le site

http://www.creativecommons.org

.

Support et informations complémentaires

Ressources en ligne sur Apollo

Bien qu’Apollo soit une technologie récente, il existe déjà un
grand nombre de ressources disponibles qui vous permettront
d’en savoir plus à propos d’Apollo et du développement
d’applications Internet riches.

Le site d’Apollo

Le site de référence pour s’informer, télécharger et consulter la
documentation d’Apollo :

http://www.adobe.com/go/apollo

_Apollo.book Page viii Vendredi, 8. juin 2007 1:50 13

ix

Préface

La FAQ développeurs d’Apollo

FAQ officielle qui répond aux questions les plus communes
concernant Apollo :

http://www.adobe.com/go/apollofaq

Le pôle de développement Apollo

Le pôle de développement, avec des articles, des informations et
des ressources sur le développement d’applications pour
Apollo :

http://www.adobe.com/go/apollodevcenter

La référence de l’API Apollo

La référence de l’API ActionScript 3 Apollo :

http://www.adobe.com/go/apolloapi

Documentation d’Apollo

La documentation complète d’Apollo :

http://www.adobe.com/go/apollodocs

Le Forum Apollo

Forum officiel d’Adobe Forum pour discuter d’Apollo :

http://www.adobe.com/go/apolloforums

La Liste de diffusion Apollo coders

Liste de diffusion concernant le développement d’applications
Apollo :

http://www.adobe.com/go/apollolist

_Apollo.book Page ix Vendredi, 8. juin 2007 1:50 13

x

Préface

Le weblog de Mike Chambers

Blog de Mike Chambers. Cet auteur, membre de l’équipe
Apollo, publie souvent des billets qui concernent Apollo :

http://www.adobe.com/go/mikechambers

La catégorie Apollo de MXNA

La catégorie Apollo de MXNA liste tous les articles concernant
Apollo publiés au sein de la communauté de développement
Adobe :

http://www.adobe.com/go/apollomxna

Le pôle de développement Flex

Pôle de développement avec des articles, des informations et
des ressources sur le framework Flex :

http://www.adobe.com/go/flex2_devcenter

OnFlex.org

Blog dirigé par Ted Patrick, qui publie fréquemment des billets
sur les enjeux du développement avec Flex :

http://www.onflex.org

La liste de diffusion Flex coders

Liste de diffusion qui traite du développement avec le fra-
mework Flex :

http://tech.groups.yahoo.com/group/flexcoders/

Le blog Universal Desktop

Le blog de Ryan Stewart, qui se concentre sur les derniers déve-
loppements du monde des applications Internet riches :

http://blogs.zdnet.com/Stewart/

_Apollo.book Page x Vendredi, 8. juin 2007 1:50 13

xi

Préface

Votre avis

Merci d’adresser vos commentaires et questions non techni-
ques concernant ce livre à l’éditeur :

Editions O’Reilly
18 rue Séguier
75006 Paris

Il existe une page Internet pour ce livre où sont listés les errata
et autres informations complèmentaires. Vous pouvez y accéder
en vous rendant sur la page :

http://www.oreilly.fr/catalogue/2841774449

Pour plus d’informations concernant nos livres, conférences,
centre de ressources et le réseau O’Reilly, consultez notre site
Internet :

http://www.oreilly.fr

À propos des auteurs

Mike Chambers
Mike Chambers a passé ces huit dernières années à créer des
applications pour l’environnement d’exécution Flash. Pendant
cette période, il a travaillé avec de nombreuses technologies
telles que Flash, Generator, .NET, Central, Flex et Ajax. Il est
actuellement chef de produit senior pour les relations déve-
loppeurs d’Apollo. Il a écrit et participé à de nombreuses
conférences sur Flash, les applications Internet riches et il est le
co-auteur de Flash Enabled: Flash Design and Development for
Devices ainsi que de Generator and Flash Demystified.
Mike a obtenu un Master en études économiques et euro-
péennes internationales à la John Hopkins School of Advanced
International Studies (SAIS) en 1998.
Quand il ne programme pas, Mike joue à Halo 2, essaie de se
remettre de son addiction à World of Warcraft, ou il joue avec
ses deux filles, Isabel et Aubrey.
_Apollo.book Page xi Vendredi, 8. juin 2007 1:50 13
xii
Préface
Robert L. Dixon
Rob Dixon a commencé le développement d’applications Flash
en 1998, époque à laquelle on ne parlait pas encore d’applica-
tions Internet riches. Il est actuellement architecte pour le
groupe Platform Documentation à Adobe. Il a développé des
exemples d’applications et des documentations pour des pro-
duits tels que Apollo, ActionScript, Flash Player et Central. Il a
participé à la rédaction de Programming ActionScript 3.0 et de
ActionScript Language Reference.
Dans une vie antérieure, il a programmé des jeux vidéos, réa-
lisé des sites Internet, créé des logiciels d’entreprises avec Java et
.NET, et participé à de nombreuses conférences concernant le
développement de logiciels. Il a écrit un livre sur CASE à
l’époque où c’était à la mode.
Le week-end, vous le trouverez généralement en train de faire
des randonnées ou du vélo dans les environs de Marin County,
en Californie, si vous cherchez bien (ou que vous planquez une
tête chercheuse dans sa veste).
Jeff Swartz
Jeff Swartz a commencé à travailler pour Macromedia
(aUjourd’hui Adobe Systems) en 1992 et a participé à un grand
nombre de projets multimédias et d’applications Internet. Il est
actuellement rédacteur technique en chef du projet Apollo. Jeff
a obtenu un diplôme en informatique et mathématiques à
l’Université d’Illinois à Urbana-Champaign et a étudié au
département d’intelligence artificielle de l’université
d’Edinburgh.
Le public des alentours de la baie de San Francisco Bay Area a
subi les activités de Jeff au trombone. Il a également travaillé en
tant que Big Frank, le « hot dog dansant », pour la société
Vienna Beef.
_Apollo.book Page xii Vendredi, 8. juin 2007 1:50 13
xiii
Préface
Remerciements
Les auteurs remercient Mark Nichoson de Adobe et Steve
Weiss, Phil Dangler et Mary Brady de O’Reilly pour avoir rendu
possible la sortie de ce livre dans un délai incroyablement
court.
Merci à toute l’équipe Apollo pour son dévouement et son diffi-
cile travail pour terminer la version 1.0. Nous remercions
particulièrement Chris Brichford, Ethan Malasky, Stan Switzer
et Oliver Goldman (tous membres de l’équipe Apollo) pour
leur lecture de ce livre et leurs retours.
_Apollo.book Page xiii Vendredi, 8. juin 2007 1:50 13
_Apollo.book Page xiv Vendredi, 8. juin 2007 1:50 13
1
Chapitre 1
Introduction à Apollo
Apollo est un nouvel environnement d’exécution multi-plate-
formes pour le bureau developpé par Adobe. Il permet aux
développeurs d’utiliser les technologies web pour créer et
déployer des applications Internet riches et des applications
web vers le bureau.
Afin de mieux comprendre ce que permet Apollo, et quels pro-
blèmes il tente de résoudre, il peut s’avérer utile de s’intéresser
à l’histoire, relativement courte, des applications web.
Une courte histoire des applications web
Ces deux dernières années, un nombre croissant d’applications
se sont déplacées du bureau vers le navigateur web. Un certain
nombre de facteurs ont conduit à cette situation, parmi
lesquels :
• la croissance d’Internet en tant que moyen de commu-
nication ;
• la relative facilité de déploiement des applications web ;
• la possibilité de viser des systèmes d’exploitation multiples
via le navigateur ;
• la maturité de certaines technologies de plus haut niveau tel-
les que le navigateur et le lecteur Flash.
Les premières applications web ont d’abord été créées à l’aide
du HTML et de JavaScript, et se fondaient principalement sur
les interactions clients/serveur et le rafraîchissement des pages.
Ce modèle était cohérent avec la volonté d’afficher de simples
documents, ce pour quoi le navigateur a été créé à l’origine.
_Apollo.book Page 1 Vendredi, 8. juin 2007 1:50 13
2
Chapitre 1 — Introduction à Apollo
Mais il constituait une expérience utilisateur assez pauvre en ce
qui concerne l’affichage d’applications.
Néanmoins, avec l’arrivée à maturité du lecteur Flash, et plus
récemment grâce aux fonctionnalités de type Ajax dans le navi-
gateur, il est devenu possible pour les développeurs de
s’éloigner du modèle d’applications basé sur des pages. En
d’autres termes, les développeurs ont pu commencer à offrir des
applications plus riches via le navigateur. Dans un document de
mars 2002, Macromedia a introduit le terme d’application
Internet riche (ou RIA pour Rich Internet Application), afin de
décrire ces nouveaux types d’applications dans le navigateur qui
« mélangent contenu, logique applicative et communica-
tion...afin de rendre Internet plus facile d’utilisation et plus
agréable ». Ces applications ont permis des expériences plus
riches, plus proches de celles fournies par les applications
bureau, tout en conservant la nature multi-plateformes du
Web :
Le maître-mot des applications Internet est disponibilité. À
terme, le Web doit être synonyme de contenu et d’applications
disponibles n’importe où, indépendamment de la plate-forme
ou du périphérique utilisé à cette fin. Les clients multimédias
doivent couvrir et supporter tous les systèmes d’exploitation
courants, ainsi que la plus vaste gamme de nouvelles plates-
formes matérielles, telles que les téléphones intelligents, les
ordinateurs de poche, les décodeurs, les consoles de jeu et les
nouveaux périphériques Internet.
Le document poursuit la liste des fonctionnalités qui définis-
sent les RIA :
NOTE
Vous pouvez retrouver le document complet et plus d’infor-
mations sur les RIA à l’adresse :
http://www.adobe.com/fr/
devnet/richclient.pdf
.
_Apollo.book Page 2 Vendredi, 8. juin 2007 1:50 13
3
Une courte histoire des applications web
• fournir un environnement d’exécution rapide et de haute
performance pour le code, le contenu et les commu-
nications ;
• intégrer le contenu, les communications et les interfaces
d’application dans un environnement commun ;
• fournir un modèle objet puissant et évolutif pour
l’interactivité ;
• permettre la rapidité du développement d’application grâce
aux composants et à la réutilisation du code ;
• permettre l’utilisation des services Web et des services de
données fournis par les serveurs d’applications ;
• prendre en charge les clients connectés et hors connexion ;
• permettre un déploiement aisé sur de multiples plateformes
et périphériques.
Ce mouvement tendant à fournir une expérience plus riche,
plus proche du bureau, dans le navigateur (expérience permise
par le lecteur Flash, et, plus récemment, par les techniques
Ajax) a conduit à une explosion des applications web.
Aujourd’hui, le Web s’est fermement établi en tant que plate-
forme de déploiement d’applications offrant des bénéfices à la
fois aux utilisateurs et aux développeurs. Parmis ces bénéfices,
on peut noter :
• la possibilité de viser de multiples plateformes et systèmes
d’exploitation ;
• le fait de développer avec des programmes d’assez haut
niveau et des langages de mise en forme ;
• permettre à l’utilisateur final d’accéder à ses applications
depuis, virtuellement, n’importe quel ordinateur connecté à
Internet.
La croissance des applications web s’observe à la fois dans le
mouvement Web 2.0, qui se constitue presque entièrement
d’applications web et d’API, ainsi que dans l’adoption des appli-
cations web en tant que modèle économique par de grandes
sociétés et organisations.
_Apollo.book Page 3 Vendredi, 8. juin 2007 1:50 13
4
Chapitre 1 — Introduction à Apollo
Les problèmes induits par la délivrance
d’applications via le navigateur
À mesure que les applications web se sont complexifiées, elles
ont commencé à atteindre les limites du navigateur et de leur
propre ergonomie. Leur succès allant grandissant, ces pro-
blèmes deviennent de plus en plus importants et visibles, et
démontrent qu’il reste un nombre significatif de problèmes à
résoudre à la fois pour les développeurs et pour les utilisateurs
finaux, lorsqu’une application est déployée via le navigateur.
Le navigateur web a d’abord été créé pour afficher des docu-
ments HTML. En effet, la logique de fond du navigateur s’est
peu éloignée de ce but. Ce conflit fondamental entre des fonc-
tionnalités basées, soit sur l’affichage de documents, soit sur
l’exécution d’applications, crée un certain nombre de pro-
blèmes lors du déploiement d’applications via le navigateur.
Des interfaces utilisateurs en conflit
Les applications déployées via le navigateur ont leur propre
interface utilisateur, qui entre souvent en conflit avec l’inter-
face utilisateur du navigateur. Ce modèle d’une application
située à l’intérieur d’une autre application a souvent pour con-
séquence une contradiction des interfaces utilisateurs. Cette
situation peut conduire, au mieux, à une certaine confusion
pour l’utilisateur, et au pire, à l’échec de l’application.
L’exemple classique est celui du bouton retour. Ce dernier fait
sens lorsque l’on consulte des documents, mais rarement dans
le contexte d’une application. Bien qu’il existe un certain
nombre de solutions qui tentent de résoudre ce problème,
celles-ci sont mises en œuvre de manière incohérente ; les utili-
sateurs ne sauront donc sans doute pas si telle ou telle
application supporte le bouton retour, ou si il forcera leur
application à se décharger, ce qui conduira à la perte de leurs
données.
_Apollo.book Page 4 Vendredi, 8. juin 2007 1:50 13
5
Les problèmes induits par la délivrance d’applications via le navigateur
La distance vis-à-vis du bureau
En partie à cause du modèle de sécurité du Web (qui restreint
l’accès aux machines des utilisateurs), les applications qui s’exé-
cutent dans le navigateur ne supportent pas, la plupart du
temps, le type d’interaction utilisateur avec le système d’exploi-
tation auquel l’utilisateur pourrait s’attendre. Par exemple,
vous ne pouvez pas déposer un fichier dans une application
située dans le navigateur afin que celle-ci agisse sur le fichier.
Les applications web ne peuvent pas non plus interagir avec les
autres applications qui se trouvent sur l’ordinateur de
l’utilisateur.
Les RIA ont tenté d’améliorer cette situation en créant des
interfaces plus riches, plus proches des applications. Mais elles
ne sont pas parvenues à surmonter les limites fondamentales de
la séparation entre le navigateur et le bureau.
Une expérience en ligne
Parce que les applications web sont délivrées depuis un serveur
et ne résident pas sur l’ordinateur des utilisateurs, elles sont
d’abord une expérience qui a lieu en ligne. Bien qu’il existe des
tentatives pour rendre possible l’accès à des applications en
mode déconnecté, il n’existe pas de modèle de développement
cohérent. Elles ne parviennent donc pas à s’exécuter sur diffé-
rents navigateurs et requièrent souvent que l’utilisateur
interagisse avec son navigateur de manière complexe et peu
intuitive.
Le plus petit dénominateur commun
Enfin, avec la complexité grandissante des applications web, et
alors qu’elles repoussent toujours plus loin les limites de Java-
Script et DHTML, les développeurs font de plus en plus souvent
face aux différences entre les navigateurs et les API. Bien que
ces problèmes puissent bien souvent être surmontés avec un
code spécifique au navigateur, cela conduit à un code de plus en
_Apollo.book Page 5 Vendredi, 8. juin 2007 1:50 13
6
Chapitre 1 — Introduction à Apollo
plus difficile à maintenir et éloigne d’un modèle de développe-
ment basé sur les fonctionnalités.
Bien que les frameworks JavaScript soient un moyen populaire
pour tenter de régler ces problèmes, ils ne peuvent offrir plus
que ce que le navigateur ne leur permet. Ils reposent bien sou-
vent sur le plus petit dénominateur commun des
fonctionnalités des différents navigateurs, afin de faciliter le
modèle de développement. Bien que ce problème n’affecte pas
les RIA basées sur Flash, la conséquence pour les applications
basées sur JavaScript ou DHTML est une expérience utilisateur
et un modèle d’interaction fondés sur ce plus petit dénomina-
teur commun, une charge de développement et de tests accrue,
ainsi que des coûts de déploiement plus élevés.
Le fait que les applications web aient connu un tel essort
malgré ces limites démontre bien l’attractivité qu’exerce une
plateforme qui dispose d’un bon modèle de développement,
capable d’offrir une même application à différents systèmes
d’exploitation. Une plateforme qui offrirait la disponibilité et le
modèle de développement d’un navigateur, tout en apportant
les fonctionnalités et la richesse des applications de bureau,
offrirait le meilleur des deux mondes. C’est précisément
l’objectif d’Apollo.
Présentation de l’environnement
d’exécution Apollo
Alors finalement Apollo, qu’est-ce que c’est ? Comment peut-il
améliorer le développpement et le déploiement des applica-
tions web ?
Apollo est le nom de code d’un nouvel environnement d’exécu-
tion multi-systèmes d’exploitation actuellement développé par
Adobe qui permet aux développeurs web de se fonder sur leurs
compétences actuelles (telle que Flash, Flex, HTML, JavaScript
et PDF) pour créer et déployer des applications Internet riches
et du contenu pour le bureau.
_Apollo.book Page 6 Vendredi, 8. juin 2007 1:50 13
7
Les technologies fondamentales d’Apollo
En un mot, il offre une plateforme entre le bureau et le naviga-
teur qui combine la disponibilité et la facilité de
développement qu’offre le Web avec les fonctionnalités et la
richesse du bureau.
Il est important de revenir un instant en arrière et de préciser ce
qu’Apollo n’est pas.
Apollo n’est pas un environnement d’exécution généraliste
pour le bureau ayant pour but de concurrencer les applications
de plus bas niveau. Cela signifie que vous ne voudriez probable-
ment pas créer du Photoshop avec Apollo. Le cas classique de
l’utilisation d’Apollo est de permettre de déployer des applica-
tions Internet riches sur le bureau. C’est une distinction très
importante mais assez subtile, car le fait d’amener les RIA vers
le bureau est le premier objectif des fonctionnalités présentes
dans Apollo 1.0.
Au cœur d’Apollo, on retrouve les technologies web, qui per-
mettent aux programmeurs web de développer pour le bureau,
et de déployer vers le bureau, en utilisant les mêmes technolo-
gies et le même modèle de développement qu’ils utilisent
aujourd’hui pour déployer des applications sur le Web.
Les technologies fondamentales d’Apollo
Il y a trois technologies fondamentales au cœur d’Apollo, que
l’on distingue en deux categories : les technologies applicatives
et celles relatives aux documents.
Les technologies applicatives fondamentales
Les technologies applicatives sont les technologies qui sont utili-
sées à la base des applications Apollo. Apollo connaît deux
NOTE
Apollo est le nom de code du projet. Le nom définitif n’a pas
encore été annoncé au moment de l’écriture de cet ouvrage.
_Apollo.book Page 7 Vendredi, 8. juin 2007 1:50 13
8
Chapitre 1 — Introduction à Apollo
technologies applicatives fondamentales : Flash et HTML, qui
peuvent tout deux être utilisés pour créer et déployer des appli-
cations Apollo.
Flash
L’une des technologies centrales d’Apollo est le lecteur Flash.
Pour être plus précis, Apollo a été créé à partir du lecteur
Flash 9, qui inclut le langage ActionScript 3 basé sur ECMA-
Script ainsi que la machine virtuelle Tamarin (qui sera utilisée
pour interpréter JavaScript dans les prochaines versions de
Firefox).
En plus de toutes les API du lecteur Flash déjà existantes que
l’on retrouve dans Apollo, certaines d’entre elles ont été éten-
dues et/ou améliorées. Parmi les fonctionnalités que le lecteur
Flash apporte à Apollo, on retrouve :
• le moteur d’interprétation à la volée ActionScript, pour la
performance des applications ;
• la pile réseau complète, avec HTTP, RTMP, ainsi que le
binaire et les sockets XML ;
• le moteur d’affichage vectoriel et les API de dessin ;
• un large support des médias tels que les bitmaps, les vec-
teurs, l’audio et la vidéo.
Bien entendu, puisque le framework Flex2 a été créé à partir
d’ActionScript 3, vous pouvez également profiter de toutes les
fonctionnalités de Flex pour créer des applications Apollo.
ASTUCE
Vous trouverez des informations complémentaires concer-
nant le projet
Open Source Tamarin
sur le site de Mozilla
http://www.mozilla.org/projects/tamarin/
_Apollo.book Page 8 Vendredi, 8. juin 2007 1:50 13
9
Les technologies fondamentales d’Apollo
HTML
La seconde technologie applicative au cœur d’Apollo est
HTML. Il s’agit d’un moteur d’affichage HTML complet, qui
supporte les technologies et standards suivants :
• HTML
• JavaScript
• CSS
• XHTML
• Document Object Model (DOM)
Oui, vous lisez bien. Vous n’avez pas besoin d’utiliser Flash
pour créer des applications Apollo. Vous pouvez créer une
application complète en utilisant uniquement HTML et Java-
Script. Cela surprend souvent les développeurs qui s’attendent à
ce qu’Apollo se concentre uniquement sur Flash. Pourtant,
Apollo est un environnement d’exécution qui s’adresse aux
développeurs Web qui utilisent les technologies web. Or,
quelles technologies sont plus proches du Web que HTML et
JavaScript ?
Le moteur HTML utilisé dans Apollo est le moteur Open Source
WebKit. Celui-ci est utilisé dans bon nombre de navigateurs, tels
que KHTML sous KDE et Safari sur Mac OS X.
Pourquoi WebKit?. Adobe a passé un temps considérable à
rechercher un moteur HTML pour Apollo, et a utilisé un cer-
tain nombre de critères qui l’ont finalement conduit à choisir
WebKit.
Un projet ouvert. Adobe savait dès le départ qu’il ne voulait
pas créer puis maintenir son propre moteur d’affichage HTML.
ASTUCE
Vous trouverez des informations complémentaires sur le
projet Open Source WebKit sur le site http://www.webkit.org.
_Apollo.book Page 9 Vendredi, 8. juin 2007 1:50 13
10
Chapitre 1 — Introduction à Apollo
Non seulement cela aurait impliqué un travail des plus consé-
quents, mais en plus, aurait compliqué la tâche des
développeurs qui auraient dû se familiariser avec un moteur
d’affichage HTML supplémentaire.
WebKit apporte à Apollo un moteur complet, en développe-
ment continu par une communauté solide qui compte à la fois
des développeurs individuels et de grandes sociétés telles que
Nokia et Apple. Cela permet à Adobe de se concentrer sur les
corrections de bogues et les fonctionnalités, et signifie égale-
ment que Adobe peut contribuer de manière active à WebKit
tout en profitant des contributions faites par les autres mem-
bres du projet WebKit.
Une technologie qui a fait ses preuves et que les développeurs
connaissent bien. Comme souligné plus haut, l’un des plus
importants problèmes des développements web complexes est
le fait de devoir assurer la cohérence de leur application entre
les différents navigateurs. Quelque chose peut parfaitement
fonctionner avec Firefox sur Mac, et totalement échouer dans
Internet Explorer sur Windows. Par conséquent, tester et débo-
guer du contenu basé sur un navigateur peut être un vrai
cauchemard pour les développeurs.
Adobe voulait s’assurrer que les développeurs étaient déjà fami-
liers avec le moteur HTML utilisé dans Apollo, et qu’ils
n’allaient pas devoir apprendre les nouveaux problèmes et
autres bogues qu’impliquent un nouveau moteur. Puisque
Safari (qui a été créé à partir de WebKit) est le navigateur par
défaut de Mac OS X, on peut estimer que les développeurs le
connaissent bien.
Un impact minimum sur le poids de l’environnement
d’exécution Apollo. Le poids visé pour Apollo est compris
entre 5 et 9 Mo. Le code de base de WebKit ayant été bien écrit
et organisé, il a un impact restreint sur le poids final de l’envi-
ronnement d’exécution Apollo. En effet, le poids de la version
actuelle, qui supporte Flash et le HTML, est d’un tout petit peu
plus de 5 Mo.
_Apollo.book Page 10 Vendredi, 8. juin 2007 1:50 13
11
Les technologies fondamentales d’Apollo
La capacité de pouvoir s’exécuter sur des appareils mobiles.
Bien que la première version d’Apollo ne tourne que sur les
ordinateurs individuels, la vision à long terme d’Adobe est
d’étendre l’environnement d’exécution Apollo aux téléphones
cellulaires et autres appareils. WebKit a prouvé sa capacité à
s’exécuter sur de tels appareils et a été porté sur des téléphones
par Nokia et Apple.
Les technologies de document fondamentales
Les technologies de document au sein d’Apollo font référence
aux technologies dont le but principal est d’afficher et d’inte-
ragir avec des documents électroniques.
Le PDF et le HTML sont les technologies de document fonda-
mentales disponibles avec Apollo.
Le PDF
Les fonctionnalités relatives au PDF ne sont pas incluses dans la
version Alpha 1 d’Apollo, nous ne pouvons donc pas entrer
dans les détails de son implémentation. Néanmoins, dans les
applications Apollo classiques, celles qui seront fondées à la fois
sur du contenu Flash et du HTML, on pourra utiliser du con-
tenu de type PDF et interagir avec lui.
Le HTML
Le HTML a d’abord été conçu comme une technologie de docu-
ment. Il permet aujourd’hui un contrôle riche et robuste sur le
contenu, la mise en pages du texte et sur les styles. Le HTML
peut être utilisé comme une technologie de document au sein
d’Apollo, à la fois au sein d’applications HTML existantes et
dans des applications basées sur Flash.
Contenu d’une application Apollo
Maintenant que nous connaissons les technologies dont peu-
vent disposer les applications qui s’exécutent au sein de
_Apollo.book Page 11 Vendredi, 8. juin 2007 1:50 13
12
Chapitre 1 — Introduction à Apollo
l’environnement d’exécution Apollo (voir la figure 1-1), pen-
chons-nous sur la manière dont on peut les combiner pour
créer une application.
Figure 1.1. Structure d’une application Apollo
Les applications peuvent être constituées de la combinaison sui-
vante de technologies :
• Flash uniquement (Flex inclus) ;
• basées sur Flash, avec du contenu HTML ;
• HTML/JavaScript seulement ;
• basées sur HTML/JavaScript, avec du contenu Flash ;
• toutes les combinaisons peuvent également utiliser du con-
tenu PDF.
services de socket services web sur HTTP
réseau occasionnellement connecté
SWF HTML
HTML
PDF
SWE
PDF
runtime Apollo
Mac
Linux
(après 1.0)
Windows
réseau
bureau
_Apollo.book Page 12 Vendredi, 8. juin 2007 1:50 13
13
Les technologies fondamentales d’Apollo
Intégration des technologies et Script Bridging
Parce que WebKit et le lecteur Flash sont tous deux inclus dans
l’environnement d’exécution, ils sont intégrés ensemble à un
très bas niveau. Par exemple, lorsque du HTML est inclus dans
un contenu Flash, il est en fait affiché via Flash, ce qui, entre
autres choses, signifie que vous pouvez appliquer au HTML
tout ce que vous pouvez appliquer à un bitmap dans Flash
(flou, rotation, transformation, etc.).
Cette intégration de bas niveau s’applique également aux
moteurs de scripts au sein d’Apollo (qui exécutent ActionScript
et JavaScript). Apollo permet de faire du script bridging
1
entre
les deux langages et environnements, ce qui rend possible ce
qui suit :
• le code JavaScript peut appeler des API ActionScript ;
• le code ActionScript peut appeler les API JavaScript ;
• le code ActionScript peut manipuler directement le DOM
HTML ;
• on peut écouter des événements dans les deux sens entre
JavaScript et ActionScript.
Notez bien que le script bridging permet de « passer par
référence ». Ainsi, lorsque l’on passe un objet depuis Action-
Script vers JavaScript (ou vice versa), les changements effectués
sur cette instance dans un environnement affecteront l’ins-
tance dans l’autre environnement. Entre autres choses, cela
permet de maintenir une référence vers des nœuds HTML
depuis ActionScript et de les modifier, ou encore, d’écouter des
événements.
1 Le script bridging est le nom donné à la technique qui permet aux lan-
gages ActionScript et JavaScript de communiquer entre eux
_Apollo.book Page 13 Vendredi, 8. juin 2007 1:50 13
14
Chapitre 1 — Introduction à Apollo
Cette communication de bas niveau entre scripts et environne-
ments facilite la création d’applications qui combinent HTML
et Flash.
Au final, si vous êtes développeur web, vous possédez déjà les
compétences nécessaires à la création d’une application Apollo.
Les fonctionnalités propres à Apollo
Si Apollo n’apportait pas d’API ou de fonctionnalités supplé-
mentaires et qu’il permettait simplement à des applications
web de s’exécuter sur le bureau, cela n’aurait pas grand interêt.
Par chance, Apollo fournit un jeu d’API et une intégration avec
le bureau qui permet aux développeurs de construire des appli-
cations qui profitent du fait qu’elles s’exécutent sur le bureau.
Les API d’Apollo
En plus de toutes les fonctionnalités et API déjà offertes par le
lecteur Flash et le moteur WebKit, Apollo fournit ses propres
fonctionnalités et API.
Parmis ces nouvelles fonctionnalités, on trouve :
• une API d’entrée/sortie de fichiers ;
• une API de fenêtrage native ;
• une API de menu native ;
ASTUCE
Le Script Bridging sera étudié plus en détails dans le chapi-
tre 4.
ASTUCE
Les API d’Apollo seront accessible à la fois depuis Action-
Script et depuis JavaScript.
_Apollo.book Page 14 Vendredi, 8. juin 2007 1:50 13
15
Les technologies fondamentales d’Apollo
• une API Online/Offline qui permet de savoir quand la con-
nectivité réseau change ;
• des API de cache et de synchronisation des données afin de
faciliter le développement d’applications qui fonctionnent à
la fois en ligne et en mode déconnecté ;
• un contrôle complet sur le chrome (ensemble des éléments
d’interface utilisateur d’une fenêtre spécifiques à un système
d’exploitation) de l’application ;
• des API de stockage et de préférences locales ;
• des API de notification système (liées aux mécanismes spéci-
fiques au système d’exploitation) ;
• des API de mise à jour d’application.
Notez que ces fonctionnalités peuvent être implémentées direc-
tement dans l’environnement d’exécution Apollo ou au niveau
du framework (avec Flex et JavaScript), ou encore en combi-
nant les deux.
L’intégration d’Apollo au bureau
Comme mentionné plus haut, les applications déployées dans
le navigateur ne peuvent gérer les mêmes interactions que les
applications de bureau. Cela peut conduire à des applications
aux interactions peu pratiques pour l’utilisateur, puisqu’elles
sont différentes de celles auxquelles il est habitué.
Puisqu’une application Apollo est une application de bureau,
elle peut fournir à l’utilisateur le type d’interaction que l’utilisa-
teur est en droit d’attendre. Parmis ces fonctionnalités, on
retrouve :
• les rituels d’installation et de désinstallation appropriés ;
• les options d’installation bureau (raccourcis, etc.) ;
• le glissé-déposé riche :
– entre le système d’exploitation et les applications Apollo ;
– entre applications Apollo ;
_Apollo.book Page 15 Vendredi, 8. juin 2007 1:50 13
16
Chapitre 1 — Introduction à Apollo
– entre les applications natives et les applications Apollo ;
• le support du presse-papiers riche ;
• les notifications système ;
• les icônes ;
• la possibilité pour les applications de s’exécuter en tâche de
fond.
Une fois installée, une application Apollo est une application
native comme les autres, ce qui signifie que le système d’exploi-
tation et les utilisateurs peuvent interagir avec elle comme ils le
font avec n’importe quelle autre application. Par exemple, le
préchargement ou le basculement d’une application à une
autre fonctionne de la même manière avec Apollo qu’avec les
applications natives.
Le but est que l’utilisateur final ne sache pas qu’il est entrain
d’exécuter une application Apollo. Il doit pouvoir interagir
avec elle de la même manière qu’il le ferait avec n’importe
quelle autre application bureau.
Les outils de développement d’Apollo
L’une des raisons pour lesquelles les applications web ont eu
tant de succès est qu’elles permettent aux développeurs de
déployer facilement des applications que les utilisateurs peu-
vent exécuter quel que soit leur système d’exploitation. Qu’ils
soient sous Mac, Windows, Linux, Solaris ou téléphone cellu-
laire, les applications web sont disponibles.
Néanmoins, ce succès est dû non seulement à un déploiement
multi-plateformes, mais aussi à la nature même de l’environne-
ment de développement. Celui-ci permet à n’importe quel
développeur de développer pour cette technologie. Ni l’envi-
ronnement d’exécution, ni les outils de développement ne sont
spécifiques à un système d’exploitation.
C’est également vrai en ce qui concerne Apollo. Apollo apporte
non seulement la disponibilité multi-plateformes des applica-
tions web, mais, de manière toute aussi importante, une
_Apollo.book Page 16 Vendredi, 8. juin 2007 1:50 13
17
Les technologies fondamentales d’Apollo
application Apollo peut être développée et empaquetée sur vir-
tuellement n’importe quel système d’exploitation.
En réalité, Apollo lui-même n’a ni compilateur, ni IDE (envi-
ronnement de développement intégré) spécialisé. Ses
applications ne sont constituées que de contenu web, tels que
du Flash ou du HTML. N’importe quel éditeur de fichier
HTML ou JavaScript peut créer une application Apollo.
Puisque que les applications Apollo sont construites à l’aide de
technologies déjà existantes, telles que HTML ou Flash, vous
pouvez utiliser les mêmes outils que vous employez déjà pour
un contenu destiné à un navigateur pour créer des applications
Apollo. Le SDK d’Apollo fournit un certain nombre d’outils en
ligne de commande gratuits, qui permettent de tester, débo-
guer et empaquetter des applications Apollo avec virtuellement
n’importe quel outil de développement et de conception.
Bien qu’Adobe permettra à ses propres outils de développe-
ment Web de créer du contenu Apollo, ils ne seront pas
indispensables. En utilisant les outils Apollo en ligne de com-
mande, vous pouvez créer une application avec n’importe quel
outil de développement web. Vous pouvez utiliser les mêmes
outils de développement et de conception que vous utilisez
aujourd’hui.
ASTUCE
Une version béta de Flex Builder avec le support d’Apollo
est incluse avec la version Alpha.
ADL

Permet aux applications Apollo d’être exécutées sans
avoir à les installer.
ADT

Crée des paquetages d’installation distribuables à
partir d’applications Apollo.
ASTUCE
Le processus de développement sera abordé en détails dans
le chapitre 2.
_Apollo.book Page 17 Vendredi, 8. juin 2007 1:50 13
18
Chapitre 1 — Introduction à Apollo
Apollo signifie-t-il la fin des applications web au
sein du navigateur?
À ce stade, vous vous demandez peut être : « Bien, Apollo a
l’air génial ! Pourquoi est-ce que quelqu’un s’amuserait encore
à vouloir déployer une application dans un navigateur ? »
Apollo sonne-t-il le glas des applications dans le navigateur ?
Non.
Répétons-le encore une fois : non.
Apollo résoud la plupart des problèmes de déploiement d’appli-
cations vers le navigateur. Néanmoins, il reste des avantages à
ce type de déploiement. Le fait qu’il existe de si nombreuses
applications web, malgré les défauts évoqués plus haut
démontre ces avantages. Quand ces derniers surpassent les
inconvénients, les développeurs continueront de vouloir
déployer leur application via le navigateur web.
Mais le choix n’est pas forcément si tranché. Puisque les appli-
cations Apollo sont créées en utilisant des technologies web,
une application créée pour être déployée vers le navigateur
peut aisément être transformée en application Apollo. Vous
pourriez avoir une application basée sur le Web qui connaisse
des fonctionnalités propres au navigateur, ainsi qu’une version
Apollo qui profite des avantages du bureau. Les deux versions
pourraient partager les mêmes technologies, les mêmes lan-
gages et le même code.
Les applications Apollo sont un complément aux applications
web. Elles ne les remplacent pas.
_Apollo.book Page 18 Vendredi, 8. juin 2007 1:50 13
19
Chapitre 2
Commencer le développement
d’applications Apollo
Ce chapitre traite de la manière de préparer votre environne-
ment de développement à la création d’applications Apollo
avec le framework Flex. Les points suivants seront abordés :
• où trouver les outils et ressources nécessaires au développe-
ment d’applications Apollo ;
• comment mettre en place votre environnement de
développement ;
• comment développer, tester et déployer une simple applica-
tion de type Hello world.
Ce chapitre contient également toutes les informations néces-
saires à la compilation, au test, à l’empaquetage et à la
distribution d’applications Apollo.
Installer l’environnement d’exécution
Apollo Alpha 1
Vous devrez installer l’environnement d’exécution Apollo
Alpha 1 sur votre ordinateur ainsi que sur tous les ordinateurs
sur lesquels vous voudrez exécuter des applications Apollo. Le
fichier d’installation d’Apollo Alpha 1 est disponible sur le site
d’Adobe à l’adresse suivante : http://www.adobe.com/go/apollo
_Apollo.book Page 19 Vendredi, 8. juin 2007 1:50 13
20
Chapitre 2 — Commencer le développement d’applications Apollo
Installation sous Windows
Pour installer l’environnement d’exécution Apollo sur un ordi-
nateur Windows :
1.Téléchargez le fichier d’installation de l’environnement
d’exécution Apollo Alpha 1 pour Windows sur la page http://
www.adobe.com/go/apollo.
2.Ouvrez le fichier ZIP.
3.Double-cliquez sur le fichier Apollo.msi.
4.Une fenêtre d’installation s’affiche alors.
5.Quand l’installation est terminée, cliquez sur le bouton
OK
.
Installation sous Mac OS
Pour installer l’environnement d’exécution Apollo sous Mac
OS :
1.Téléchargez le fichier d’installation de l’environnement
d’exécution Apollo Alpha 1 pour Mac sur la page http://
www.adobe.com/go/apollo.
2.Ouvrez le fichier zip et double-cliquez sur le fichier Adobe
Apollo.dmg.
La fenêtre Adobe Apollo s’affiche alors.
3.Double-cliquez sur le fichier Adobe Apollo.pkg.
La fenêtre
Install Adobe
Apollo s’affiche alors.
4.Cliquez sur le bouton
Continuer
dans le coin en bas à gauche
de la fenêtre.
La fenêtre
Sélectionner la Destination
s’affiche alors.
5.Choisissez un volume de destination et cliquez sur le bouton
Continuer
.
Le bouton
Installation rapide
s’affiche alors.
6.Cliquez sur le bouton
Installer
, dans le coin en bas à gauche
de la fenêtre.
_Apollo.book Page 20 Vendredi, 8. juin 2007 1:50 13
21
Outils nécessaires pour le développement d’applications Apollo
7.Une fois l’installation terminée, cliquez sur le bouton
Fermer
, dans le coin en bas à droite de la fenêtre
d’installation.
Outils nécessaires pour le
développement d’applications Apollo
Vous devez installer l’environnement d’exécution Apollo
Alpha 1 sur votre ordinateur (voir la section précédente).
Pour développer des applications Apollo avec Flex, vous aurez
besoin de l’un des outils suivants :
Adobe Flex Builder 2.0.1 avec les extensions Apollo pour Flex Builder
2.0.1
Flex Builder 2.0.1 est un IDE complet pour développer et
déboguer des applications Flex.
Les extensions Apollo pour Flex Builder 2.0.1 permettent de
développer, de déboguer et d’empaqueter des applications
Apollo depuis Flex Builder 2.0.1. Elles fournissent une assis-
tance pour l’API Apollo. Elles contiennent également les
outils et ressources du SDK Apollo. Les extensions Apollo
pour Flex Builder 2.0.1 sont disponibles sur la page http://
www.adobe.com/go/apollo.
Le SDK Apollo
Le SDK Apollo est téléchargeable gratuitement depuis le site
d’Adobe. Bien qu’il ne dispose, ni d’interface visuelle, ni des
outils de débogage disponibles avec Flex Builder 2.0.1, il est
pourvu d’un compilateur Flex complet en ligne de
commande.
Le SDK Apollo contient les outils qui permettent de déve-
lopper, déboguer et empaqueter des applications Apollo.
Vous pouvez télécharger le SDK Apollo sur la page http://
www.adobe.com/go/apollo.
_Apollo.book Page 21 Vendredi, 8. juin 2007 1:50 13
22
Chapitre 2 — Commencer le développement d’applications Apollo
Télécharger et mettre en place Flex Builder 2.0.1
et les extensions Apollo
Une version d’essai de Flex Builder 2.0.1 est disponible sur le
site adobe.com : http://www.adobe.com/products/flex/flexbuilder/.
Les versions béta des extensions Apollo pour Flex Builder 2.0.1
sont disponibles sur le site web d’Adobe à l’adresse : http://
www.adobe.com/go/apollo.
Ces extensions pour Flex Builder permettent de créer, déve-
lopper, déboguer et déployer des applications Apollo depuis
Flex Builder.
Pour installer et configurer les extensions Apollo pour Flex
Builder :
1.Installez Flex Builder 2.0.1 (soit en version autonome, soit
en version Plug-in pour Eclipse).
2.Exécutez le fichier d’installation des extensions Apollo pour
Flex Builder. Acceptez le contrat de licence et, lorsqu’on
vous le propose, naviguez vers le répertoire qui contient Flex
Builder 2.0.1.
Télécharger et mettre en place le SDK Apollo
Si vous n’utilisez pas Flex Builder 2.0.1, vous devrez installer le
SDK Apollo qui est disponible gratuitement sur le site web
d’Adobe à la page :
http://www.adobe.com/go/apollo
.
Vous devrez également avoir installé un environnement d’exé-
cution Java ou un kit de développement Java sur votre
ordinateur. Si Java n’est pas encore installé et configuré sur
votre ordinateur, vous pouvez le télécharger depuis la page :
http://www.java.com/fr/download/.
Suivez alors les directives pour l’installer et le configurer.
Le SDK Apollo contient les ressources listées dans le tableau qui
suit.
_Apollo.book Page 22 Vendredi, 8. juin 2007 1:50 13
23
Outils nécessaires pour le développement d’applications Apollo
Installation et configuration sous Mac OS
Sous Mac OS, suivez les étapes suivantes :
1.Téléchargez le fichier apollo_sdk.zip sur votre bureau.
2.Créez un sous-répertoire Apollo_SDK dans le répertoire
/Applications (le répertoire Applications situé à la racine de
votre ordinateur). Vous pouvez placer le SDK à un autre
endroit, mais veillez dans ce cas à bien remplacer le chemin
dans les instructions qui suivent.
3.Double-cliquez sur le fichier ZIP et copiez puis collez son
contenu dans le répertoire Apollo_SDK. (Par exemple, le
fichier .bin devra se trouver à la racine du répertoire Apollo_
SDK.)
4.Ouvrez le répertoire /Applications/Apollo_SDK/runtime et
double-cliquez sur le fichier Adobe Apollo.dmg.
5.Déposez le dossier Adobe Apollo.framework contenu dans le
fichier DMG dans le répertoire /Applications/Apollo_SDK/
runtime (dans le Finder).
Cela installe l’environnement d’exécution Apollo utilisé par
ADL.
Elément
Description
ADL Utilisé pour lancer et tester une application
Apollo sans avoir à l’installer en premier lieu.
ADT Utilisé pour empaqueter une application
Apollo afin de la distribuer.
Fichiers apollo-
framework.swc et
apolloglobal.swc
Bibliothèques contenant les classes de bases et
de framework d’Apollo que le compilateur
MXMLC utilise lorsque vous compilez un
fichier SWF en vue d’une utilisation au sein
d’une application Apollo.
Fichier
application.xml
Exemple de fichier descriptif d’application,
utilisé pour indiquer les paramètres d’une
application.
Fichier
application.xsd
Le schéma XML du fichier application.xml.
_Apollo.book Page 23 Vendredi, 8. juin 2007 1:50 13
24
Chapitre 2 — Commencer le développement d’applications Apollo
6.La prochaine étape consiste à s’assurer que les outils en ligne
de commande ont été ajoutés au chemin système et qu’ils
peuvent donc s’exécuter depuis n’importe quel répertoire.
Ouvrez une nouvelle fenêtre du Terminal de Mac OS.
La session du Terminal doit s’ouvrir sur votre répertoire uti-
lisateur. Si ce n’est pas le cas, naviguez jusqu’à lui.
7.Tapez :
open -e .profile
Le fichier .profile s’ouvre dans l’éditeur de texte de votre
ordinateur.
8.Ajoutez cette ligne à la fin du fichier :
export PATH=$PATH:/Applications/Apollo_SDK/bin/
Si un chemin PATH est déjà indiqué dans ce fichier, ajoutez-
y le chemin du SDK Apollo.
9.Enregistrez le fichier.
10. Dans le Terminal, tapez :
source .profile
Cela aura pour effet d’appliquer les modifications.
À l’heure de la rédaction, la version en cours est une béta.
Ainsi, ne vous étonnez pas si par la suite vous rencontrez des
différences. La page http://labs.adobe.com/wiki/index.php/Apollo:
Documentation:Set_up_instructions_for_Flex_SDK_users vous don-
nera toutes les informations nécessaires.
Installation et configuration sous Windows
Sous Windows, suivez avec précaution les étapes suivantes :
1.Téléchargez le fichier ZIP du SDK Apollo.
2.Ouvrez le fichier apollo_sdk.zip puis extrayez son contenu
dans C:\Program Files\apollo_sdk.
_Apollo.book Page 24 Vendredi, 8. juin 2007 1:50 13
25
Créer une première application Apollo
3.Ouvrez la boîte de dialogue des propriétés système et cliquez
sur l’onglet
Avancé
. Vous le trouverez dans les paramètres
système du panneau de configuration.
4.Cliquez sur le bouton
Variables d’environnement
.
5.sélectionnez
PATH
et cliquez sur le bouton
Modifier
. Ajouter
le chemin vers le répertoire bin à la fin de la valeur actuelle
de la variable :
; C:\Program Files\Apollo_SDK\bin\
Créer une première application Apollo
Le processus de développement d’une application Apollo peut
être résumé en quatre étapes :
1.Créer un fichier descriptif de l’application.
2.Concevoir et programmer l’application.
3.Tester et déboguer l’application.
4.Empaqueter l’application en vue de la distribuer.
Ce chapitre décrit ces étapes à l’aide d’une application très
simple de type Hello World. En suivant ces étapes, vous pourrez
vérifier que votre environnement de développement fonc-
tionne correctement. Après avoir écrit cette première
application Apollo, vous serez assuré que votre environnement
de développement est bien en place et qu’il est correctement
configuré.
En créant cette première application, vous apprendrez à réa-
liser les tâches suivantes :
• écrire un simple code MXML pour une application Apollo ;
• tester et déboguer une application ;
• empaqueter l’application dans un fichier AIR qui pourra
être distribué aux utilisateurs, afin qu’ils installent l’applica-
tion sur leur ordinateur.
_Apollo.book Page 25 Vendredi, 8. juin 2007 1:50 13
26
Chapitre 2 — Commencer le développement d’applications Apollo
Les étapes de création et de développement sont différentes
selon que vous utilisiez Flex Builder tool ou le SDK Apollo. Des
sections séparées existent donc pour chacun de ces outils.
Des idées d’applications plus interessantes seront données dans
les chapitres 3 et 5.
Créer et déboguer l’application Hello World avec
Flex Builder 2.0.1
Si vous n’avez pas installé Flex Builder 2.0.1 et que vous uti-
lisez le SDK Apollo, rendez-vous directement à la section Créer
et déboguer l’application Hello World avec le SDK Apollo
, page 30
.
Avec Flex Flex Builder 2.0.1, une application Apollo se crée de
la même manière qu’une application Flex pour le Web. Pour
commencer, suivez ces étapes :
1.Ouvrez Flex Builder 2.0.1.
2.Choisissez
File → New → Other
. La boîte de dialogue New
s’affiche alors.
3.Ouvrez le dossier Flex et sélectionnez
Apollo Project
. Cliquez
alors sur le bouton
Next
.
La boîte de dialogue
New Apollo Project
(figure 2-1) s’affiche.
4.Laissez sélectionnées les options de base et cliquez sur le
bouton
Next
.
5.Dans la page suivante de la boîte de dialogue, tapez
HelloWorld dans le champ
Project Name
et gardez sélec-
tionnée l’option
Use Default Location
. Cliquez alors sur le
bouton
Next
.
Ne cliquez pas encore sur le bouton
Finish
.
6.Dans la page suivante de la boîte de dialogue (
setting build
paths
), ne procédez à aucune modification et appuyez sur le
bouton
Next
.
Ne cliquez pas encore sur le bouton Finish.
Le panneau
Application XML Properties
s’affiche.
_Apollo.book Page 26 Vendredi, 8. juin 2007 1:50 13
27
Créer une première application Apollo
Figure 2.1. La boîte de dialogue New Apollo Project
7.Spécifiez les paramètres suivants pour l’application Apollo :
Le champ ID doit contenir une valeur qui identifie de
manière unique votre application. Pour ce faire, il est cou-
rant de commencer cet ID par l’adresse d’un domaine que
vous détenez (tel que
com.oreilly.apollo
dans cet exemple).
Champs
Entrez ceci
ID com.oreilly.apollo.gettingStarted.HelloWorld
Name Hello World
Publisher Votre nom
Description Exemple d’application Apollo
Copyright ©Votre nom. Tous droits réservés.
_Apollo.book Page 27 Vendredi, 8. juin 2007 1:50 13
28
Chapitre 2 — Commencer le développement d’applications Apollo
Le champ
Name
définit le nom de l’application tel qu’il sera
affiché pour ses utilisateurs. Les valeurs
Publisher
,
Description
et
Copyright
sont optionnelles. Elles seront affi-
chées lors de l’installation de l’application.
Les valeurs entrées dans le panneau
Application XML
seront
enregistrées dans le fichier descriptif de l’application, sous le
nom HelloWorld-app.xml.
8.Enfin, cliquez sur le bouton
Finish
en bas de la boîte de
dialogue.
Maintenant que le projet Apollo a été mis en place, vous
pouvez écrire le code MXML de cette application :
1.Ouvrez le fichier HelloWorld.mxml (il doit normalement déjà
être ouvert dans le panneau d’édition de Flex Builder). Pour
l’instant, il doit ressembler à ceci :
<?xml version="1.0" encoding="utf-8"?>
<mx:ApolloApplication xmlns:mx="http://www.adobe.com/ 2006/
mxml"
layout="absolute">
</mx:ApolloApplication>
Modifiez le code comme suit :
<?xml version="1.0" encoding="utf-8"?>
<mx:ApolloApplication xmlns:mx="http://www.adobe.com/2006/
mxml"
layout="absolute"
title="Hello World"
backgroundColor="0xFFCC00">
<mx:Label text="Hello Apollo"
fontSize="18"
horizontalCenter="0"
verticalCenter="0"/>
</mx:ApolloApplication>
Les principales modifications apportées ont été de :
_Apollo.book Page 28 Vendredi, 8. juin 2007 1:50 13
29
Créer une première application Apollo
• définir les attributs
title
et
backgroundColor
du
composant ApolloApplication, comme montré dans le
code ;
• ajouter un composant
Label
et définir ses attributs
text
,
horizontalCenter
et
verticalCenter
.
2.Enregistrez le fichier.
Vous pouvez désormais tester l’application.
3.Cliquez sur le bouton
Debug
ou sélectionnez
Run → Debug
pour déboguer l’application.
L’application résultante doit ressembler à la figure 2-2 (avec
un chrome dépendant du système d’exploitation sur lequel
vous développez).
Figure 2.2. Hello World
4.Flex Builder 2.0.1 indique toutes les erreurs dans le panneau
Console. Si vous rencontrez des erreurs, assurez-vous que
vous avez bien suivi les étapes de ce tutoriel.
5.Vous pouvez créer des points d’arrêt et utiliser les outils de
débogage de Flex Builder de la manière dont vous le feriez
avec une autre application Flex 2.0.
L’application est désormais prête à être empaquetée pour afin
d’être distribuée. Rendez-vous directement à la section Empa-
queter et distribuer l’application Hello World
, page 33
.
_Apollo.book Page 29 Vendredi, 8. juin 2007 1:50 13
30
Chapitre 2 — Commencer le développement d’applications Apollo
Créer et déboguer l’application Hello World avec
le SDK Apollo
Si vous avez installé Flex Builder 2.0.1 et que vous avez suivi les
instructions précédentes, vous pouvez passer cette section.
Dans ce tutoriel, vous allez créer les fichiers sources pour une
application Apollo, puis tester l’application avec le compilateur
en ligne de commande du SDK Apollo.
Avant de commencer, assurez-vous que vous avez bien installé
le SDK Apollo et que vous avez configuré votre système afin de
pouvoir travailler avec ces outils.
Tout d’abord, créez un répertoire pour votre projet. Ce réper-
toire contiendra tous les fichiers sources de ce projet.
Ensuite, créez le fichier descriptif de l’application, que l’on
appelle aussi parfois le fichier XML de l’application :
1.Ouvrez un éditeur de texte et tapez le texte suivant dans un
nouveau fichier :
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://ns.adobe.com/apollo/application/
1.0.M3"appId="com.oreilly.apollo.gettingStarted.HelloWorld"
version="1.0">
<properties>
<name>Hello World</name>
<publisher>Your name </publisher>
<description>A sample Apollo application.
</description>
<copyright>(C) 2007 Your name. All rights reserved.
</copyright>
</properties>
<rootContent systemChrome="standard"
transparent="false">
HelloWorld.swf
</rootContent>
</application>
_Apollo.book Page 30 Vendredi, 8. juin 2007 1:50 13
31
Créer une première application Apollo
Voici les paramètres les plus importants de ce fichier :
• La valeur de l’attribut
appId
doit identifier votre application
de manière unique. Pour ce faire, il est courant de commen-
cer cet ID par l’adresse d’un domaine que vous détenez (tel
que
com.oreilly.apollo
dans cet exemple).
• L’attribut
name
définit le nom de l’application tel qu’il sera
affiché pour ses utilisateurs.
• Les valeurs
publisher
,
description
, et
copyright
sont option-
nelles. Elles sont affichées lors de l’installation de l’applica-
tion.
• L’élément
rootContent
identifie le fichier SWF qui sera la
racine de l’application (vous compilerez bientôt ce fichier
SWF).
• L’attribut
systemChrome
a pour valeur
standard
. Cela signifie
que l’application utilisera le system chrome, le jeu standard
d’éléments d’interface utilisateur définit par le système
d’exploitation pour une fenêtre d’application normale. Ces
éléments incluent des bordures, une barre de titre, des bou-
tons pour minimiser et maximiser la fenêtre et un bouton
de fermeture. Vous pouvez également supprimer le chrome
système en attribuant la valeur
none
à cet attribut, puis en
définissant votre propre custom chrome pour la fenêtre de
l’application. Pour plus d’information, voir les sections Ren-
dre une fenêtre transparente et Utiliser vos propres éléments de
chrome de fenêtre au chapitre 5.
• L’attribut
transparent
a pour valeur
false
. Cela signifie que
le fond de l’application sera opaque plutôt que transparent.
Pour plus d’informations sur la transparence d’une fenêtre,
voir la section Rendre une fenêtre transparente au chapitre 5.
2.Enregistrez le fichier dans votre répertoire d’application et
donnez-lui le nom HelloWorld-app.xml.
_Apollo.book Page 31 Vendredi, 8. juin 2007 1:50 13
32
Chapitre 2 — Commencer le développement d’applications Apollo
Vous allez maintenant créer le code MXML de cette
application :
1.Créez un nouveau fichier dans votre éditeur de texte.
2.Ajoutez le contenu suivant :
<?xml version="1.0" encoding="utf-8"?>
<mx:ApolloApplication xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
title="Hello World"
backgroundColor="0xFFCC00">
<mx:Label text="Hello Apollo"
fontSize="18"
horizontalCenter="0"
verticalCenter="0"/>
</mx:ApolloApplication>
Ceci représente le code source MXML de l’application :
• Le composant
ApolloApplication
est une sous-classe de
du composant Application de Flex 2. Il représente la
fenêtre principale de l’application. La valeur de l’attribut
title
apparaîtra dans la barre de titre de la fenêtre
principale.
• Le composant
Label
est utilisé pour afficher le texte
Hello
Apollo
.
3.Enregistrez le fichier sous le nom HelloWorld.mxml.
Vous allez maintenant pouvoir compiler le fichier SWF, à l’aide
de l’outil en ligne de commande
amxmlc
: l’utilitaire amxmlc
appelle le compilateur MXMLC avec les options lui indiquant
comment utiliser les bibliothèques Apollo.
1.Ouvrez le Terminal sous Mac OS ou l’invite de commandes
sous Windows.
2.Utilisez la commande
cd
pour naviguer vers le répertoire
que vous avez créé pour ce projet Hello World.
_Apollo.book Page 32 Vendredi, 8. juin 2007 1:50 13
33
Créer une première application Apollo
3.Tapez la ligne de commande suivante et appuyez sur la
touche Entrée :
amxmlc HelloWorld.mxml
4.Si aucune erreur n’est générée, le compilateur génère le
fichier HelloWorld.swf dans le répertoire du projet.
Vous pouvez désormais tester l’application, en utilisant l’outil
en ligne de commande ADL :
1.Tapez le texte suivant dans la fenêtre de ligne de
commande :
adl application.xml
2.Si aucune erreur n’est générée, l’application Hello World
s’ouvre (figure 2-3).
Figure 2.3. Hello World
Empaqueter et distribuer l’application Hello
World
Les applications Apollo sont empaquetées dans un fichier AIR.
Il s’agit d’un fichier d’installation qui contient le fichier SWF
racine de l’application, le fichier descriptif de l’application, ainsi
que tout autre élément, tels que des images ou des fichiers
HTML, qui doivent être installés avec l’application.
_Apollo.book Page 33 Vendredi, 8. juin 2007 1:50 13
34
Chapitre 2 — Commencer le développement d’applications Apollo
Les utilisateurs ayant installé l’environnement d’exécution
Apollo peuvent double-cliquer sur un fichier AIR pour ins-
taller l’application sur leur machine.
Flex Builder 2.0.1 dispose des commandes nécessaires pour
empaqueter automatiquement votre application en fichier AIR.
Si vous utilisez le SDK Apollo pour compiler votre application,
vous pouvez utiliser l’Apollo Developer Tool (ADT) pour créer le
fichier AIR.
Empaqueter l’application avec Flex Builder 2.0.1
1.Assurez-vous que le projet Hello World est ouvert dans Flex
Builder.
2.Sélectionnez
File → Export
depuis le menu principal de Flex
Builder.
Flex Builder affiche alors la boîte de dialogue
Export
.
3.Sélectionnez la ligne
Deployable AIR File
et cliquez sur le
bouton
Next
.
Le panneau suivant se nomme AIR Deployment Export
Wizard, comme le montre la figure 2-4.
Figure 2.4. Panneau Air Deployment Export Wizard
_Apollo.book Page 34 Vendredi, 8. juin 2007 1:50 13
35
Créer une première application Apollo
4.Trouvez, puis sélectionnez le fichier HelloWorld-app.xml dans
la liste, puis cliquez sur le bouton Next. La figure 2-5 montre
une copie d’écran de ce panneau.
Figure 2.5. Panneau de sélection du fichier pour l’exportation
5.Dans le panneau suivant, vous pouvez sélectionner tous les
éléments auxiliaires (tels que des fichiers SWF, des fichiers
HTML ou encore des fichiers media) qui vous désirez inclure
dans votre application Apollo. Dans le cas présent, notre
application Hello World ne contient aucun élément
auxiliaire.
6.Vous pouvez également modifier la destination du fichier
AIR qui sera créé. Dans cet exemple nous allons conserver la
destination par défaut. La figure 2-6 montre une copie
d’écran de ce panneau.
7.Cliquez sur le bouton
Finish
pour générer le fichier AIR.
8.Testez le fichier AIR généré en le lançant depuis votre
système d’exploitation pour vérifier que l’application Hello
World s’installe correctement.
_Apollo.book Page 35 Vendredi, 8. juin 2007 1:50 13
36
Chapitre 2 — Commencer le développement d’applications Apollo
Figure 2.6. Panneau Air Deployment Export Wizard
Empaqueter l’application avec ADT
Si vous n’utilisez pas Flex Builder 2.0.1, vous devrez utiliser
l’outil ADT (figure 2-6) pour empaqueter l’application Apollo
dans un fichier AIR.
1.Ouvrez le Terminal sous Mac OS ou l’invite de commande
sous Windows.
2.Utilisez la commande
cd
pour naviguer vers le répertoire du
projet que vous avez créé pour ce projet Hello World.
3.Tapez le texte suivant (sur une seule ligne) et appuyez sur la
touche Entrée :
adt -package HelloWorld.air HelloWorld-app.xml HelloWorld.swf
L’outil ADT crée le fichier HelloWorld.air dans le répertoire
du projet.
4.Testez le fichier AIR généré en le lançant depuis votre
système d’exploitation afin de vérifier que l’application
Hello World s’installe correctement.
_Apollo.book Page 36 Vendredi, 8. juin 2007 1:50 13
37
Etapes suivantes
Distribuer et installer votre application
Vous pouvez distribuer votre application Apollo en distribuant
le fichier AIR de cette application.
Les utilisateurs doivent d’abord installer l’environnement d’exé-
cution Apollo (disponible à la page http://www.adobe.com/go/
apollo). Ils peuvent ensuite exécuter le fichier AIR pour lancer
l’installation de votre application.
Etapes suivantes
Votre environnement de développement Apollo est désormais
prêt. Vous avez su créer, empaqueter et exécuter l’application
Hello World. Il est donc temps d’en apprendre un peu plus sur
ce qui fait la force d’Apollo. Les chapitres suivants présenteront
ses fonctionnalités les plus importantes.
ASTUCE
Dans une version future, vous pourrez créer des installa-
teurs capables de vérifier que l’environnement d’exécution
Apollo est présent sur la machine de l’utilisateur et de l’ins-
taller dans le cas contraire.
ASTUCE
Si vous avez l’intention de distribuer votre application
Apollo via un lien sur une page Web, assurez-vous de bien
associer le type MIME AIR à votre serveur web. Par exem-
ple, sur un serveur HTTP Apache, vous devriez ajouter la
ligne suivante au fichier httpd.conf :
AddType application/vnd.adobe.apollo-install-package .air
_Apollo.book Page 37 Vendredi, 8. juin 2007 1:50 13
_Apollo.book Page 38 Vendredi, 8. juin 2007 1:50 13
39
Chapitre 3
Utiliser du HTML
dans les applications
Apollo créées avec Flex
Avec Apollo, les développeurs disposent d’une nouvelle
manière d’afficher du HTML dans leurs applications pour le
bureau. Cette nouvelle fonctionnalité permet de :
• charger et afficher des pages web complètes (HTML et
XHTML) depuis des URL locales et distantes, ou depuis une
chaîne de caractères ;
• accéder au DOM (Document Object Model) complet et le
manipuler ;
• appeler des fonctions JavaScript et faire référence à des
objets JavaScript depuis votre code ActionScript et vice
versa ;
• modifier le composant Flex
HTML
dans l’interface de votre
application comme vous le feriez avec n’importe quel com-
posant d’interface utilisateur de Flex ;
• modifier graphiquement l’objet
HTMLControl
ou le compo-
sant Flex
HTML
comme n’importe quel
Sprite
ou
DisplayObject
avec ActionScript.
La nouvelle classe
flash.html.HTMLControl
prend en charge le
chargement, l’affichage et l’exécution de script d’un code
HTML. Le nouveau composant Flex
HTML
, qui se fonde sur la
classe
HTMLControl
, dispose des mêmes capacités d’affichage
HTML tout en étant intégré au sein du framework d’interface
utilisateur de Flex.
_Apollo.book Page 39 Vendredi, 8. juin 2007 1:50 13
40
Chapitre 3 — Utiliser du HTML dans les applications Apollo créées avec Flex
Une application dont les besoins d’affichage et de navigation
HTML sont assez simples peut utiliser le composant Flex
HTML
avec très peu, voire aucun, code ActionScript. Bien entendu,
des fonctionnalités plus complexes nécessiteront la rédaction
d’un programme ActionScript ou JavaScript.
Ce chapitre décrit les capacités d’Apollo en matière de HTML,
en offrant un grand nombre de petits exemples afin que vous
puissiez rapidement commencer à écrire des applications qui
profitent de cette fonctionnalité.
Vous pouvez également vous référer à la section Travailler avec
du HTML du chapitre 5 pour en savoir plus sur l’utilisation du
HTML avec Apollo.
Le support du HTML dans Apollo
La classe
HTMLControl
d’Apollo utilise WebKit (www.webkit.org)
en tant que moteur d’affichage HTML. WebKit est un moteur
de navigateur web Open Source qui, a l’origine, a été utilisé dans
le navigateur Safari.
La classe
HTMLControl
d’Apollo est capable d’afficher du con-
tenu HTML 4 ou XHTML. Elle supporte totalement le standard
CSS 1.0 et presque complètement CSS 2.1 et CSS 3. Le DOM
(Document Object Model) accepte le standard W3C DOM
Niveau 2 (www.w3.org/DOM ).
La classe
HTMLControl
prend totalement en charge le langage
JavaScript, qui est basé sur le standard ECMAScript 3. Vos
applications Flex, Flash et ActionScript peuvent donc désor-
mais utiliser les méthodes et propriétés JavaScript afin de
disposer d’interactions de type AJAX et créer une expérience
utilisateur encore meilleure.
La classe
HTMLControl
a même la capacité d’embarquer des
fichiers SWF, ce qui signifie que vous pouvez exécuter des appli-
cations Flash ou Flex au sein d’un objet
HTMLControl
dans une
application Apollo. Néanmoins, cette fonctionnalité n’est pas
encore disponible dans la version Alpha publique.
_Apollo.book Page 40 Vendredi, 8. juin 2007 1:50 13
41
Le support du HTML dans Apollo
Ni la classe Apollo
HTMLControl
, ni le composant Flex
HTML
ne
disposent de toutes les fonctionnalités d’un navigateur web
complet. En revanche, vous pouvez utiliser l’un comme l’autre
pour construire vos propres navigateurs web.
La classe HTMLControl et le composant Flex
HTML
La nouvelle classe
flash.html.HTMLControl
offre des méthodes
et propriétés qui ont pour objet de récupèrer, de charger et
d’afficher le contenu HTML. Puisque c’est une sous-classe de la
classe
flash.display.DisplayObject
, on peut la manipuler au
sein de la
display list
comme n’importe quel instance de la
classe
DisplayObject
.
Le composant Flex
HTML
présente la classe
HTMLControl
en tant
que
UIComponent
, lui offrant par là même tous les bénéfices du
framework d’interface utilisateur de Flex.
Le tableau suivant liste les similarités et les différences fonction-
nelles entre le composant Flex
HTML
et la classe
HTMLControl
.
ASTUCE
Les fonctionalités relatives au HTML de la version Alpha 1
d’Apollo ne sont que partiellement implémentées. Des fonc-
tionnalités supplémentaires, des API, ainsi que de nouveaux
événements sont actuellement en développement.
Capacités
Composant Flex HTML
Classe HTMLControl
Superclasse mx.core.Scroll-
ControlBase
flash.display.Sprite
Charger du HTML
par une URL
En affectant la
propriété location
En appelant la méthode
load()
Charger du HTML
depuis une chaîne
de caractères
En affectant la
propriété htmlText
En appelant la méthode
loadString()
_Apollo.book Page 41 Vendredi, 8. juin 2007 1:50 13
42
Chapitre 3 — Utiliser du HTML dans les applications Apollo créées avec Flex
Utiliser le composant Flex HTML
Le composant Flex
HTML
offre un support complet du HTML. Il
peut être facilement intégré à une application Flex et son inter-
face de programmation est similaire aux autres composants
Flex.
Le composant
HTML
peut être déclaré dans un code MXML
comme n’importe quel autre composant Flex. Voici un
exemple qui applique au composant
HTML
la hauteur et la lar-
geur de la fenêtre dans laquelle il est contenu :
<mx:HTML id="html" width="100%" height="100%" />
Accéder ou mani-
puler le DOM
En utilissant les
propriétés
javascriptWindow ou
javascriptDocument
En utilisant les
propriétés window ou
window.document
Evénements
diffusés
• locationChange
• htmlTextChanged
• domInitialize
• htmlRender
• complete
• domInitialize
• complete
• htmlBoundsChange
• htmlRender
• scroll
Autres capacités • Peut être utilisé dans
une interface Flex
sans code supplémen-
taire
• Peut se voir appliqué
des styles CSS
• Peut être utilisé
comme Item
Renderer
• Dispose de barres de
défilement
• Peut écouter les
modifications des
limites du contenu
HTML affiché
• Peut contrôler la posi-
tion du défilement
• Ne dispose pas de bar-
res de défilement
Capacités
Composant Flex HTML
Classe HTMLControl
_Apollo.book Page 42 Vendredi, 8. juin 2007 1:50 13
43
Utiliser le composant Flex HTML
Naviguer vers une page web