Flash sur iPhone : comment ça marche ?

Arnaud de la Grandière |
Adobe a donc annoncé que la prochaine version de Flash (CS5) permettrait d'exporter des applications pour iPhone. Apple refusant à Flash d'entrer par la grande porte, Adobe a réussi à passer par la fenêtre. Commençons par nous pencher sur l'approche technique qu'Adobe a choisie, et par faire le détail du fonctionnement de Flash.

Flash est basé sur le langage ActionScript, un langage de type script proche de JavaScript. Ce type de langage nécessite un « interprète » : pour pouvoir être exécuté sur tout type de processeurs, il n'est pas compilé en langage machine. En lieu et place, un interprète fait l'interface entre le script et le processeur, en convertissant à la volée les instructions du script en commandes compréhensibles pour le processeur : ainsi, un fichier Flash peut être exécuté sans modification sur toute machine qui dispose du player ad-hoc, quel que soit son processeur ou les API de son système d'exploitation. Flash étant une technologie dédiée au web, et donc susceptible de fonctionner sur tout type de machine, c'est cette approche qui a été choisie (l'ActionScript n'ayant pas vocation à s'adresser à une plateforme matérielle en particulier).

Le problème d'un tel système, c'est que l'interprétation est bien plus lente que l'exécution d'un code compilé. Pour y remédier, on a parfois recours à un compilateur JIT (pour "just-in-time", à la volée), qui, au lieu d'interpréter les commandes, les compile directement en langage machine. C'est certes plus rapide que l'interprétation, mais malgré tout pas autant qu'une compilation "ahead-of-time", qui aboutit à du code assembleur exécutable directement (mais qui n'est donc pas distribuable universellement). D'autre part, la compilation JIT doit se faire très rapidement, au moment de l'exécution, et n'est donc pas aussi finement optimisée qu'une compilation réalisée en amont (celle-ci prend en effet beaucoup plus de temps).

Flash s'est vu adjoindre un compilateur JIT depuis sa version 9, mais reste malgré tout très gourmand en ressources (sans parler de la version Mac très critiquée pour ses lourdeurs), ce qui le rend difficilement exploitable sur des machines plus modestes telles que les smartphones. Apple a fait un choix tranché : pas de Flash sur iPhone ni iPod touch. D'autres constructeurs ont intégré Flash mobile avec plus ou moins de bonheur. Apple et Adobe se sont échangé quelques amabilités sur le sujet, la seconde n'appréciant manifestement pas qu'on pointe du doigt la pesanteur de son logiciel.

Une fois cet état des lieux dressé, comment Adobe compte-t-elle remédier à cette problématique avec Flash CS5 ? Rien de plus simple, en permettant de compiler ActionScript en langage machine ARM (le processeur des iPhone), à l'aide d'une bonne vieille compilation ahead-of-time. Ainsi Flash pourra produire des applications exécutables de la même manière que Xcode le fait avec l'Objective-C. Concrètement, Flash CS5 exploitera LLVM (voir notre une Apple tire le jus des processeurs) pour créer directement une application pour iPhone. Moralité, plus de problèmes de vitesse, une application réalisée avec Flash est susceptible de fonctionner aussi bien que n'importe quelle autre, pour peu du moins qu'Adobe fasse les choses comme il faut.

Certes, on peut se réjouir de la multiplication des points d'entrée sur l'App Store, qui offrent autant d'opportunités d'augmenter le nombre d'applications pour l'iPhone de manière exponentielle. Mais toutes les solutions en la matière ne se valent pas.

Car l'approche d'Adobe n'est pas sans inconvénients : si l'éditeur ouvre les portes de l'App Store aux innombrables développeurs Flash de tous bords, elle n'en reste pas moins un intermédiaire. Dès lors, si Apple vient à modifier ses API (ce qu'elle fait régulièrement), il en résultera nombre d'incompatibilités. De même, pour peu qu'Adobe ait laissé quelques bugs dans son compilateur, et ce sont toutes les applications développées par ce biais qui en souffriront, sans possible recours.

De même, pour peu que certaines fonctions de l'iPhone ne soient pas prises en compte par le compilateur d'Adobe, (comme c'est le cas pour l'accès au micro ou à la caméra par exemple), il n'y aura aucun moyen de contourner cette limitation. En outre, le « débugage » d'une application iPhone développée avec Flash consistera à tâtonner dans le noir, puisqu'un tel système ne permet aucun outil de traçage du code ni de remonter la piste d'un plantage, la seule manière de tester le code étant de le faire tourner sur un iPhone et de brûler un cierge. Enfin, ce système ne permet d'utiliser aucun des éléments d'interface graphique natifs de l'iPhone, dans lesquels Apple a mis tant d'efforts. Chaque application créée par ce biais proposera donc ses propres ersatz hétéroclites.

Cependant, Adobe est loin d'être la première à proposer une alternative pour le développement sur iPhone. On en compte nombre d'autres, comme Unity, Mono, GameSalad, ou encore Torque 3D qui permettent chacun de créer des applications compatibles iPhone OS sans coder en Objective-C. Cependant, pour la plupart, ces solutions proposent de convertir le code en Objective-C plutôt que de le compiler directement en assembleur ARM, ce qui laisse autrement plus de latitudes de contrôler la chaîne de production, et ce qui répond également aux problématiques soulevées plus haut.

L'autre élément à noter sur la démarche d'Adobe concerne le plan stratégique : pour mieux faire la démonstration de sa solution, Adobe a fait publier par des développeurs tiers une poignée d'applications sur l'App Store, toutes réalisées par le biais de Flash (Chroma Circuit, Trading Stuff, Fickleblox, Just Letters, South Park Avatar Creator, That Roach Game (ci-dessous), Red Hood).

phototahtroachgame


Quel meilleur moyen en effet de montrer la validité du principe que de montrer des applications validées par Apple et publiées sur l'App Store ? Certains pourraient d'ailleurs y voir la démonstration que Flash peut bel et bien fonctionner normalement sur un iPhone, mais ce serait oublier les nombreuses différences entre ce moteur et le player Flash standard. Cependant, aucune des applications en question ne fait figurer de fonctionnalité avancée ou gourmande en ressources, difficile donc de juger de son efficacité. Cependant, les différentes applications ont montré quelques saccades sur des appareils de générations précédentes, ce qui ne laisse guère augurer du meilleur pour des fonctions plus poussées (voir l'article Premier test des applications Flash pour iPhone). N'oublions pas cependant qu'il ne s'agit encore que d'une version bêta (Adobe a annoncé qu'une bêta publique de ses outils sera disponible d'ici la fin de l'année).

Une fois qu'on a fait le tour de la question, il reste cependant une inconnue : comment Apple va-t-elle réagir à cette initiative ? D'une part, c'est un pied de nez autour du bras de fer concernant Flash sur iPhone, et d'autre part Apple perd le contrôle de la façon dont les applications sont créées pour iPhone, qui plus est sans cohérence graphique, et avec le risque de se retrouver avec des applications trop lentes. D'un autre côté, Flash pourrait également offrir une manne de nouvelles applications, permettant à l'App Store de continuer à gagner de l'importance, pour peu que les applications soient dignes d'intérêt. Enfin, si jusqu'ici il fallait obligatoirement avoir un Mac pour compiler une application pour iPhone, avec Flash CS5 il sera possible de le faire également à partir de Windows.
avatar misterbrown | 
AH ! Voila un bel article qui me réconforte dans mon choix de lire encore Macgé.
avatar GStepper | 
L'article est sympa en effet. Par contre je reste dubitatif. Quel intérêt pour les utilisateurs d'iPhone iPod Touch ? Quelles "merveilleuses" applications que l'on ne peut pas faire avec Objective-C/CocoaTouch ??? J'ai quand même un peu l'impression que c'est juste pour permettre aux devs paresseux de ne pas apprendre un langage OO extrement simple (Objective-C)... Le prix ne peut être en cause car un mac mini (avec Xcode) coute moins cher qu'une licence Adobe... Quand je verrais un "Beatmaker" ou un "Blades Of Fury" écrit en ActionScript la seule chose que je me dirais c'est: "Super, ils font la meme chose qu'avec le Framework d'origine !!!" Bref, je ne vois pas l'interet pour les users... Et, franchement, un dev qui peut pas apprendre en moins de 2 jours un langage aussi simple que l'Objective-C il peut changer de metier...
avatar f-factor | 
"c'est un pied de nez autour du bras de fer" Faites attention, vous allez vous faire un noeud ;-) !
avatar 406 | 
ha cool. on va pouvoir avoir les pubs à la noix sur iphone :-p
avatar Lemmings | 
On dit "interpréteur" et non "interprète" ;) GStepper : L'Obective C est loin d'être un langage simple, et pour m'être attelé à la programmation d'application iPhone c'est loin d'être une sinécure sur les débuts. Accessoirement il y a bien bien bien plus de développeurs déjà formés en ActionScript 3 (qui n'est qu'une surcouche de l'ECMA Script, utilisé aussi par JavaScript). Donc l'intérêt est évident. Maintenant c'est certain que c'est pas une solution à toutes les applications.
avatar Lemmings | 
406 : il y en a déjà, et c'est pas lié à flash.
avatar GStepper | 
@Lemmings "'Obective C est loin d'être un langage simple, et pour m'être attelé à la programmation d'application iPhone c'est loin d'être une sinécure sur les débuts." C'est ton avis basé sur ton expérience que je respecte. En revanche, d'autres (dont moi) trouvent cela simple (et pas seulement sur iPhone, mais aussi *NIX avec GNUstep).En tout cas le livre PDF gratuit fourni par Apple est suffisament simple et bien fait (et pour cause puisque produit à l'origine par NeXT) pour apprendre le langage en moins de 2 jours, désolé. "Accessoirement il y a bien bien bien plus de développeurs déjà formés en ActionScript 3" En effet, mais 1 an et quelque après l'ouverture de l'appStore AUCUN de ces nombreux devs ne nous a manqué je t'assure. Le succès de l'iPhone et de l'appStore nous le démontre tous les jours... "Donc l'intérêt est évident." Non justement cela est tout sauf évident. Petites questions: - Quelles applications vont nous fournir ces nombreux devs que nous ne pouvons déjà faire avec Objective-C/CocoaTouch ? - Quel interet pour les utilisateurs ? Merci d'avance
avatar Workke | 
Moi je dirais que tout ça n'a rien à voir avec du flash. Finalement dans cette approche Adobe propose d'utiliser Flash comme plate-forme de dev, or dans mon esprit quand on dit flash c'est plutôt du genre "intégré" dans une apge web ... Oui il y a des milliers d'appli flash qui traine par ici et par là mais peut-on réellement parler d'intégration du flash dans l'iPhone ? Je répondrai non !
avatar GStepper | 
@Workke "Flash comme plate-forme de dev," C'est bien ce qui me choque car c'est loin d'être la spécialité d'Adobe. C'est juste un moyen détourné de profiter du très lucratif marché iPhone/AppStore. J'espère vraiment qu'Apple va réagir.
avatar Zed-K | 
Petite précision vis à vis de l'article, l'ActionScript 3 n'est pas ce qu'on pourrait qualifier de "proche de Javascript" (dieu merci), c'est juste que les 2 langages se basent sur la norme ECMAScript (dont JS implémente la version 3 et l'AS3 la version 4). @ GStepper: Tout l'intérêt est de bénéficier d'une communauté de plusieurs milliers (me demandez pas les chiffres exacts ^^; ) de développeurs AS3, dont beaucoup développent des jeux, dont beaucoup de qualité (il suffit de faire un tour sur Kongregate pour vous en convaincre). La compilation via LLVM permettra de s'affranchir des problèmes de ressources du Flash Player, et d'avoir à priori des jeux tout à fait fluides et honnête en terme de consommation de mémoire/processeur. Ça permettra aussi, au grand dam d'Apple, de développer des applications pour iPhone... sous Windows, et ce sans avoir à apprendre un langage guère peu utilisé en dehors du monde Mac.
avatar lennoyl | 
Finalement, au lieu d'avoir une seule application pour lire le flash sur iphone, on va (ou plutot vous allez ^^ ) avoir pleins d'applications faites avec flash. Ça sera mieux pour Apple, mais pas pour ceux qui paieront chacune de ces applications qu'ils auraient pu avoir gratuitement sur le web s'il y avait eu un flash player.
avatar 6ix | 
D'accord avec Workke. Il ne s'agit donc pas de "profiter" du flash intégré à certains sites / applications Web, mais de pouvoir développer et faire tourner une application Flash, au même titre que n'importe quelle autre application. Et tout comme GStepper, je n'en vois pas trop le but… Déjà car ce n'est pas forcément cela qu'on attend de la part d'Adobe avec Flash (mieux vaudrait faire des plug-ins légers et robustes), et puis on en revient à la même problématique qu'avec Mono et son C#: si on veut développer pour iPhone, on utilise les outils mis à disposition par Apple (qui sont d'ailleurs bien foutus). Apprendre l'objective-c ce n'est pas dramatique quand on est développeur (le gars qui apprend un langage et demi et s'en tient à ça pour tout ce qu'il veut faire, désolé mais c'est passer à côté de bcp de choses; l'idée ce serait plutôt d'utiliser les meilleurs outils selon le contexte), et on rentre assez vite dans l'API d'Apple. J'ai plutôt l'impression que ce genre d'action permettra aux devs C#/Flash/etc… de se jeter sur l'iPhone sans chercher à comprendre ce que cela implique. Et le résultat risque pour l'utilisateur de se retrouver avec plein d'apps qui n'ont plus du tout de cohérence. Ca vaut pour l'iPhone, mais c'est pareil pour d'autres plate-formes (par exemple Google met à disposition toute une API (essentiellement en Java) pour Android, pourquoi chercherait-on à utiliser à tout prix autre chose ?).
avatar Zed-K | 
Il faut savoir au passage qu'il était déjà possible depuis peu de compiler des applications iPhone sous Windows et Linux en utilisant HaXe. Quant à une réaction d'Apple, je ne sais pas s'ils pourront faire grand chose. On va vite voir s'ils préfèrent forcer les gens à développer sur Mac en Objective-C, ou encaisser les revenus grassement générés par la multitude de développeurs AS3 qui vont payer les 100€ annuels + les 30% par vente via l'AppStore... Dilemme =)
avatar ederntal | 
Je craint le pire, mais on verra bien !
avatar DarkDestiny | 
GStepper de quel PDF parle tu ? Et si vous avez des liens vers des forums/sites aux tutoriaux et à l'aide bien garnie sur le Cocoa je suis preneur.
avatar Rez2a | 
Bravo pour cet article synthétique et la rapidité de réaction compte tenu de la date de l'annonce. Et évidemment bravo à Adobe, qui après avoir tiré la qualité perçue des Mac vers le bas (allez faire comprendre à un novice que si un Mac se met à souffler dans tous les sens à la moindre animation Flash, ce n'est pas à cause du matériel), s'attaque maintenant à l'iPhone, pourquoi pas aller chercher le pognon là où il est après tout. Cette boîte me donne de plus en plus envie de chier, ils auraient vraiment mieux fait de s'en tenir aux outils de retouche graphique. [Edit] @ en-dessous : oups, il a suffi que tu postes pour que je fasse mon intégriste... ;)
avatar gazobu | 
bravo à Arnauld de La Grandière pour son article (comme d'hab) mais surtout bravo à vous tous pour vos réactions, pour une (rarissime) fois c'est de bon niveau, pas de troll, pas de fanatique, pas d'Ayatollah de la Pomme, des opinions, des avis divergents, du bon macG comme on l'aime.
avatar GStepper | 
@DarkDestiny Voici le lien vers le PDF sur le langage Objective-C: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/ObjC.pdf Attention toute la doc dev d'Apple est en anglais ! Le site est: http://developer.apple.com de là l'inscription est gratuite et tu as accès à toute la doc Apple (des dizaines de milliers de pages...) ainsi qu'aux divers outils de développement. Bon développement et bon courage ;)
avatar dorfr | 
Alors quelques lectures intéressantes à l'adresse suivante : http://developer.apple.com/mac/library/navigation/index.html Les pdf sont accessibles à partir des pages de présentation, en haut à droite, sous la loupe. Ah mince, gratté...
avatar thierry61 | 
Bon papier. Finalement, on arrive à une sorte de compromis. D'une certaine façon l'intransigeance d'Apple a payé. Pour ce qui est de la performance et de la qualité technique et fonctionnelle des futures applications, les testeurs en tous genre auront un nouveau terrain de jeu qui s'ouvrira à eux (au boulot Macge :-) ). Quant aux utilisateurs, ils gardent la possibilité de critiquer ou descendre les dites applications sur l'Appstore si le coeur leur en dit :-). Donc tout va bien non ? Les "flasheux" vont devoir faire attention à ne pas sortir n'importe quoi.
avatar Goldevil | 
Il est en effet possible d'avoir une connaissance suffisante d'ObjectiveC en 2 jours pour commencer à travailler mais il est illusoire de savoir programmer une appli qui tiens la route en moins de 2 semaines. L'apprentissage des APIs est de loin le gros du boulot. Par ailleurs c'est la même chose avec ActionScript et tout autre langage. L'avantage de développer en Flash pour iPhone est de pouvoir faire la même appli sur plusieurs OS et browsers/environnements différents. Le portage d'une appli flash vers iPhone est certainement plus facile qu'une appli objectiveC. Le langage est le même mais pas les API.
avatar GStepper | 
@Goldevil "il est illusoire de savoir programmer une appli qui tiens la route en moins de 2 semaines. L'apprentissage des APIs est de loin le gros du boulot. Par ailleurs c'est la même chose avec ActionScript et tout autre langage." - Entièrement d'accord avec ça. "L'avantage de développer en Flash pour iPhone est de pouvoir faire la même appli sur plusieurs OS et browsers/environnements différents." - Certes, toutefois tu conviendras que fonctionnellement cela n'apporte rien de nouveau par rapport à l'existant et que, dans le meilleur des cas les applis ActionScript/Flash feront aussi bien que les applis Objective-C/CocoaTouch (ce qui est déjà très optimiste voire utopique). Explique moi juste comment tu vas coder un "BeatMaker" en ActionScript ou un "Blades Of Fury"!?! "Le portage d'une appli flash vers iPhone est certainement plus facile qu'une appli objectiveC." - Tout dépend le type d'application portées (pour le fun je code des applis simples qui tournent aussi bien sur mes veilles NeXTstation, sur mac, sur iPhone et sur linux via GNUstep moyennant très très peu de modifications ca fait juste 6 architectures différentes:Motorola 68k, x86, x64, PPC, PPC64 et ARM...). Et comme tu le sais surement le premier inconvénient de la portabilité c'est la performance. Vouloir me faire croire qu'on peut être portable ET optimisé relève du rêve et les codeurs Java le savent bien (Sun en premier lieu). "Le langage est le même mais pas les API." En respectant tant que faire se peut le paradigme MVC, tes modèles sont portables sans soucis, les vues demandent au pire quelques cliques (merci interface builder et merci M, Hullot) et tes controleurs demandent plus ou moins de boulot selon ton appli et surtout la qualité de son design parce porter une applis lorsque elle est finie et prévoir une appli dans le but de la porter n'amène pas forcement le même design, ce sont des choix à faire, et ce, quelque soit le langage/plateforme choisi(e)
avatar Bjeko | 
Flash peut être un trés bon produit pour développer des applis, mais des applis différentes : des présentations multimédia interactives de produits par exemple, n'oubliez pas que Flash est le fils spirituel de Director, qui à la base servait à faire des "applis" offline ;) En tout cas, bonne démarche de Adobe pour moi, qui s'il elle n'apportera rien à certains utilisateurs comme ça a été dit, ne leur retirera rien non plus... et pourra en satisfaire d'autres :)
avatar jean_claude_duss | 
" Explique moi juste comment tu vas coder un "BeatMaker" en ActionScript ou un "Blades Of Fury"!?! --> l'idée n'est pas vraiment de coder blades of fury, c'est de permettre à énormément de monde de développeur sur iphone sans avoir à connaitre OC... au niveau technique, ca n'apporte rien, au niveau pratique énormément... maintenant, n'importe quelle boite pourra faire des aplis iphone en confiant le dev à un dev flash. la solution est moins élégante que de tout faire en natif mais si ca marche bien, je vois pas vraiment ou est le problème. Et même si OC s'apprend en 2 minutes ou 2 jours, il rete toujours bien plus compliqué et moins convivial que l'AS3 basé sur l'ecma script... des fois j'ai fini mes 100 lignes en OC et je me marre en me disant que j'aurai fait la même chose en moins de 2 lignes en AS3... bon, pour l'instant c'est des grandes démos d'adobe...on ne sais pas vraiment en pratique ce que ça va donner !... si c'est fluide cool, si ça rame : poubelle !
avatar GStepper | 
@jean_claude_duss "c'est de permettre à énormément de monde de développeur sur iphone sans avoir à connaitre OC..." - J'entend bien, mais je vois pas pourquoi Apple se devrait de satisfaire les besoins des devs ActionScript sur sa plateforme la plus lucrative ? Apple n'a jamais demandé au devs AC/Flash de venir... Et franchement aucun des programmes AC/Flash ne nous manques (en terme de fonctionnalité). Moins de 2 ans après l'ouverture de l'AppStore il y a juste environ 80000 apps, tu penses réelement qu'il y a carence ? Tu connais d'autre plateforme qui ont eu un tel succès ? Pour moi Adobe veut juste prendre sa part du gateau (pardon de marché)en vendant des licences Flash, ca n'est que mon avis. "il rete toujours bien plus compliqué et moins convivial que l'AS3 basé sur l'ecma script..." - ActionScript et Flash sont propriétaires et fermés(avec des prix prohibitifs) alors le coup du c'est basé sur une norme, s'il te plait à d'autre. Objective-C est basé sur le C ANSI, GCC est libre et gratuit tout comme GNUstep d'ailleurs. "j'ai fini mes 100 lignes en OC et je me marre en me disant que j'aurai fait la même chose en moins de 2 lignes en AS3..." - Et moi je te fais un viewer d'image avec dragndrop, copier/coller sans une seule ligne de code !!! Comment tu fais en ActionSctipt ? Tu vois moi aussi je peux me "marrer".
avatar Bjeko | 
@Gstepper : je ne vois vraiment pas ce qui te dérange dans cette histoire : à priori c'est que du "plus" non ? Je vois pas ou se trouve le "moins" pour l'utilisateur ??? Et j'espère vraiment qu'Apple ne va pas adopter une attitude réticente face à ce projet : autant je peux comprendre que Flash direct dans le browser ça puisse concurrencer "les" apps, autant là, sans bypass de iTunes, ils n'ont eux non plus rien à perdre.
avatar GStepper | 
@Bjeko Quid du multi-touch ? Des accéléromètres ? Des fonctions sonores avancées ? AS/Flash n'a jamais été prévu pour ça.. OC/CocoaTouch si et est optimisé pour iPhone (pas seulement au niveau hardware mais aussi au niveau d'OS X)! En l'état actuel de l'API Flash, les apps AS pour iPhone seront de toute manière plus pauvre en intéraction avec le hard et l'OS, c'est donc un gros moins. L'API pourrait évoluer mais dans ce cas finit l'argument qui dit que de très nombreux devs pourront developper en restant sur leurs acquis... Et finit la fameuse "portabilité". Je ne parlerais même pas du passif d'Adobe en ce qui concerne Flash et OS X. Toutefois, chacun fera comme il voudra, pour ma part je veillerais à ne pas avoir de d'app basée sur AS dans mon iPhone.
avatar jean_claude_duss | 
"J'entend bien, mais je vois pas pourquoi Apple se devrait de satisfaire les besoins des devs ActionScript sur sa plateforme la plus lucrative ?" --> ils satisfont rien du tout... ils font rien, c'est adobe qui fait tout ! je vois pas au contraire pourquoi s'en pleindre... ils sont 80 000 apps l'année prochaine ils seront surement à 300 000 ! "tu penses réelement qu'il y a carence ? " --> non non ! c'était pas du tout mon propos :-) Tu connais d'autre plateforme qui ont eu un tel succès ? --> non, et je connais pas beaucoup de plateformes aussi excitantes ! "Pour moi Adobe veut juste prendre sa part du gateau (pardon de marché)en vendant des licences Flash, ca n'est que mon avis." --> bien oui... ca parait normal comme démarche de leur part de vouloir gagner des sous ! au final pour l'utilisateur ca change pas grand chose, les applis en falsh puor iphone seront moins performantes que celles en OC mais pour des milliers de dev, ca ouvre d'iphone sans qu'il n'y ai rien à apprendre...
avatar Goldevil | 
@GStepper : "ActionScript et Flash sont propriétaires et fermés". C'est simplement faux : d'autres logiciels génères du Flash, le format est public, le SDK Flex est gratuit, FlexBuilder est gratuit pour les étudiants et informaticiens sans emplois. Les technologies iPhone sont bien plus protégées. @GStepper : Il est évident que la portabilité va à l'encontre de l'optimisation des performances. On ne peut faire un logiciel universel qui utilise à 100% les ressources de chaque plateforme. Flash est juste un très bon compromis. Développer pour l'iPhone n'est pas gratuit ! Je connais un développeur freelance qui a abandonné l'idée de développer sur iPhone car il ne veux pas investir dans un Mac, seul moyen d'avoir XCode qui est le seul environnement mature de développement pour iPhone OS. En tant que développeur, je ne m'intéresse pas du tout à la création de jeux pour iPhone. Je développe des applications client-serveur web qui doivent être disponibles sur plusieurs plateforme. Avec Flash, je peux récupérer la majorité du code pour fournir une application qui tourne dans un navigateur sur un desktop (Flash), sur un appareil mobile Symbian ou Window mobile (FlashLite) ou encore une application StandAlone pour PC ou Mac (Air). Jusqu'à hier je n'avais aucune solution pour iPhone à moins de refaire une appli complète en Objective C. Je n'ai d'ailleurs ni le temps ni les ressources financières pour cela. Le problème est le même pour le développeur Java. Un logiciel iPhone qui permet de gérer les document ODF n'est pas prêt d'arriver simplement à cause de cela. Le problème est même pire car si Adobe a montré qu'il était possible de compiler de l'ActionScript via LLVM, pour java (bien plus complexe) c'est loin d'être aussi facile. PS: Je ne sais même pas ce que c'est "Blades of Fury" ou "BeatMaker"... et je le vis bien.
avatar GStepper | 
@Goldevil "Développer pour l'iPhone n'est pas gratuit !" Oui et ? Développer en Flash si peut être ? Je l'ai déjà dit et je le répète un mac mini (Snow leopard et Xcode inclus bien sur) coute moins cher qu'une licence Flash Adobe... Et, en plus de développer sur iPhone tu peux aussi développer pour mac. Le tout en étant parfaitement optimisé pour l'iPhone et le mac. " Un logiciel iPhone qui permet de gérer les document ODF n'est pas prêt d'arriver simplement à cause de cela." Euh, je vois pas le rapport là! Oc/cocoa ne peut pas gérer les fichiers XML ? Quand on sait que tous les fichiers de conf d'OS X sont en XML c'est plutot drole... Première nouvelle, d'ailleurs TextEdit.app (Full Objective-C/Cocoa)le fait très bien... "Je ne sais même pas ce que c'est "Blades of Fury" ou "BeatMaker"... et je le vis bien." - Ce 2 exemples d'applis poussée dans leur conception/implementation et deux exemple d'applis que tu n'es pas pret de pouvoir coder en AS/Flash pour iPhone... Pour ma part je vis très bien également sans AUCUNE applis Flash. Tous les gouts sont dans la nature.
avatar setnan | 
Très bon article, vraiment, un plaisir à lire. Je dév sur iPhone depuis 1ans 1/2 et perso ça m'inquiète un peu cette histoire (juste un peu). Ça ouvre les portes à une certaine catégorie d'app, n'utilisant pas l'interface graphique standard d'iPhoneOS (?), et pouvant se passer de tout ce que prive la non-utilisation d'XCode (outils dév, optimisation). Niveau création selon le type de projet il peut être très facile de passer une idée en app flash, bien plus qu'en obj-c, souvent avec très peu d'actionscript. Mais surtout il existe actuellement un parc énormissime de petites apps et jeux flash + ou - sympas (surout moins :) ) qui n'auraient pas beaucoup de modifs à subir pour tourner en 480x320. La tentative d'Adobe est à ranger au coté des Unity, GameSalad & co, mais avec un potentiel incomparablement plus puissant car tronant sur une une manne énorme d'app existante.
avatar GerFaut | 
@ GStepper : pourrais tu me contacter ici : ideiglenes@free.fr ? J'ai quelques questions à te poser... Merci.
avatar YenoIwesa | 
@GStepper: Concernant le multitouch et l'accéléromètre, le développeur Adobe de la vidéo annonce que ces nouvelles API feront partie intégrante de Flash 10.1 (et donc pas seulement pour l'iPhone, mais également pour les OS desktop et autres mobiles, type Android). Dans tous les cas, je ne vois pas pourquoi on se plaindrait de la création d'un nouveau moyen d'accès à l'App Store pour les développeurs. Beaucoup de jeux 3D pour l'iPhone sont développés avec Unity et Torque 3D, deux outils qui permettent déjà de développer un jeu iPhone sur PC, et personne n'en est mort !
avatar Goldevil | 
@GStepper : "Développer pour l'iPhone n'est pas gratuit !" Oui et ? Développer en Flash si peut être ? Ne me fait pas dire ce que je n'ai pas dit (ou plutôt écrit) Ce que je veux exprimer c'est qu'un programmeur qui travaille sur Windows a plus à investir pour commencer à développer pour iPhone. Quand au prix des outils de développement d'Adobe je rappelle encore une fois qu'il y a une solution entièrement gratuite et open source (Flex SDK). Si j'étais développeur Windows only, Flash pourrait bien être la porte d'entrée attendue pour aborder l'iPhone. @GStepper : "Oc/cocoa ne peut pas gérer les fichiers XML". De nouveau je n'ai jamais écrit cela. Ce que je veux dire c'est que le développeur qui veut écrire logiciel iPhone qui ouvre le format ODF doit commencer par se plonger dans ce format de fichier XML et ne peut profiter des librairies Java qu'il trouvera par exemple dans le repository d'OpenOffice. Il y a vraiment beaucoup de boulot et, à ma connaissance, personne n'a eu le courage de le faire. Et pourtant ODF est un chouette format ouvert Il est agréable de programmer pour iPhone non seulement parce que Objective C est sympa mais surtout parce qu'Apple propose des API riches et complètes. Si je veux afficher une image JPEG, je ne dois pas écrire le décodeur. Ele est là la richesse de la plateforme. Le langage, ObjectiveC, n'est finalement qu'un détail. Par contre, si je veux faire quelque chose qui n'est pas proposé par Apple dans son SDK, je démarre from scratch car je ne peux en général pas facilement exécuter du code écrit dans un autre langage. Dans le cadre du développement Mac, il est souvent possible de faire appel à des librairies Java, Python, Perl ou autres car l'environnement est beaucoup plus ouvert et tous ces langages y sont disponibles.
avatar jean_claude_duss | 
"Pour ma part je vis très bien également sans AUCUNE applis Flash. Tous les gouts sont dans la nature. " --> oui, comme plein de monde, ce qu'on comprend pas c'est que tu vive pas bien que certaines personnes aient envie de développer en flash, langage qu'ils connaissent sur le bout des droits... au final si ya pas de différence entre un app flash et une Cocoa ca devrait poser de problèmes à personne !
avatar jean_claude_duss | 
"Ça ouvre les portes à une certaine catégorie d'app, n'utilisant pas l'interface graphique standard d'iPhoneOS "--> Je pense qu'on verra très rapidement des composants falsh qui reprennent exactement l'interface de l'iphone pour faire des applis qui ressemblent à 100% à une appli cocoa
avatar GStepper | 
@ Tous Merci pour toutes ces remarques pertinentes. Time will tell !!! On verra bien ce que cette solution de developpement pourra nous fournir comme application et avec quel niveau de performance (condition critique sur une machine très limitée en ressources). @ Bientot
avatar Stanley Lubrik | 
Flash sur iphone... http://www.youtube.com/watch?v=lzqd5mHWTHE&feature=player_embedded#
avatar Bjeko | 
Je viens de voir que l'accéléromètre sera bien géré par Flash, j'espèere qu'il en sera de même pour le gps, voire même la boussole : ça pourrait donner des applis de visites guidées intéressantes.
avatar jean_claude_duss | 
Je GPS je crois pas qu'ils en parlent, juste récupérer un "point" avec latitude, longitude, je pense pas que ça pose beaucoup de problèmes, mais on aura accès à l'api de google maps.

CONNEXION UTILISATEUR