Having fun with Adobe AIR 2013
-
Upload
luca-mezzalira -
Category
Technology
-
view
2.213 -
download
1
Transcript of Having fun with Adobe AIR 2013
HAVING WITHADOBE AIR
WELCOME
Friday, March 1, 13
HAVING WITHADOBE AIR
Thank you for attending today's Adobe CampPlease complete the survey below within three days of this
event to be entered in our quarterly drawing to win an Adobe
CS Suite software package.
https://adobeformscentral.com/?f=jey5CDPwIlGqvoSorZzx2Q
*Winner will be able to choose a Web & Design Premium or
Production Premium suite prize.
Friday, March 1, 13
HAVING WITHADOBE AIR
Agenda. Overview Adobe AIR e novità della piattaforma
. Stage3D, Starling e Feathers UI
. Workflow progetto AIR multipiattaforma
. Tips & Tricks GUI mobile + Responsive Design
. Microarchitettura per applicativi sviluppati con AIR
. Debugging AIR application
Friday, March 1, 13
HAVING WITHADOBE AIR
Adobe Integrated Runtime. presente nelle principali piattaforme
. interazione con sistemi operativi
. estendibile
. buon workflow dall’ideazione allo sviluppo
. non dobbiamo imparare nuovi linguaggi di programmazione
. tool di sviluppo conosciuti
Friday, March 1, 13
HAVING WITHADOBE AIR
Adobe AIR su mobile
Friday, March 1, 13
HAVING WITHADOBE AIR
Adobe AIR su desktop
Friday, March 1, 13
HAVING WITHADOBE AIR
Adobe AIR su...
Friday, March 1, 13
HAVING WITHADOBE AIR
Adobe AIR NEWS. nuova metodologia di rilascio (labs.adobe.com)
. nuova versione SDK 3.6 (12/02/13)
. focus Adobe su Gaming e Premium Video
. Gaming SDK
. Flash Player Next e AS NEXT
. Windows 8 (NO RT e WP8)
http://www.adobe.com/devnet/flashplatform/
whitepapers/roadmap.html
Friday, March 1, 13
HAVING WITHADOBE AIR
Novità ultime release. iOS: possibilità di caricare SWF esterni (AOT mode)
. iOS: nuove API storage dati + File.preventBackup
. iOS: integrazione xml manifest per screensize da escludere
. iOS: deploy/debug diretto da Flash Builder
. iOS: push notification
. iOS: background task (audio, location, network, exit app)
Friday, March 1, 13
HAVING WITHADOBE AIR
Novità ultime release. Graphics data query
. Telemetry (Adobe Scout)
. Concurrency
. StageVideo.attachCamera() (rendering in GPU)
. Native Extension
http://www.adobe.com/devnet/articles/flashplayer-air-
feature-list.html
Friday, March 1, 13
HAVING WITHADOBE AIR
ANE. Possono essere scritte in C o in un linguaggio nativo (es.:
Objective C su iOS)
. Utilizzate per processi intensivi, possono sfruttare la GPU
. Viene integrata nel progetto come una libreria SWC
. Supporto da AIR 3.0
Friday, March 1, 13
HAVING WITHADOBE AIR
ANE vs Native Process. Native Process funzionano solo su desktop
. Native Process non interagiscono con codice nativo ma
lanciano un eseguibile
. Native Process son supportati da AIR 2.0
Friday, March 1, 13
HAVING WITHADOBE AIR
ANE online. http://www.adobe.com/devnet/air/native-extensions-for-
air.html
. http://sleepydesign.blogspot.it/2012/07/ane-free-air-native-
extensions.html?
utm_source=feedburner&utm_medium=feed&utm_campaign
=Feed:+SleepyDesign+(Sleepy+Design)
Friday, March 1, 13
HAVING WITHADOBE AIR
GAMING SDKAWAY3D
Starling
Feathers UI
FrameworksGame Center
In-App
Testflight
Social
StageAd
ANE
Samples
Friday, March 1, 13
HAVING WITHADOBE AIR
Adobe Scout
Friday, March 1, 13
HAVING WITHADOBE AIR
Creative Cloud!
Friday, March 1, 13
HAVING WITHADOBE AIRFriday, March 1, 13
HAVING WITHADOBE AIR
Case History
Friday, March 1, 13
HAVING WITHADOBE AIR
Case History
Friday, March 1, 13
HAVING WITHADOBE AIR
Case History ITALIA
Friday, March 1, 13
HAVING WITHADOBE AIR
Case History ITALIA
Friday, March 1, 13
HAVING WITHADOBE AIR
IDE
http://developer.blackberry.com/air/
Friday, March 1, 13
HAVING WITHADOBE AIR
Versioni AIR3.6 3.6 3.1
Friday, March 1, 13
HAVING WITHADOBE AIR
File di configurazione
Friday, March 1, 13
HAVING WITHADOBE AIR
Icone
http://help.adobe.com/en_US/air/build/
WS901d38e593cd1bac1e63e3d12990
7d2886-8000.html
Friday, March 1, 13
HAVING WITHADOBE AIR
Splash page iOS
Friday, March 1, 13
HAVING WITHADOBE AIR
Splash page BBhttp://devblog.blackberry.com/2012/11/porting-air-playbook-
apps-to-blackberry-10/
Friday, March 1, 13
HAVING WITHADOBE AIRFriday, March 1, 13
HAVING WITHADOBE AIRFriday, March 1, 13
HAVING WITHADOBE AIR
Stage3D. introdotto da AIR 3.0 e Flash Player 11. low-level GPU-accelerated APIs per 2D e 3D. programmabile con AGAL o framework on top ad AGAL. è totalmente crossplatform contrariamente a DirectX e OpenGL. posso creare contenuti con Stage3D mixati con AS3 old style. Stage3D non è trasparente (per ora...)
Friday, March 1, 13
HAVING WITHADOBE AIR
Stage3D. esistono molti framework basati su Stage3D che agevolano lo
sviluppo di soluzioni 2D e 3D, i più famosi:
. Starling
. Feathers UI
. Away3D
. Zest 3D
. CitrusEngine
. Alternativa3D
Friday, March 1, 13
HAVING WITHADOBE AIR
Starling. 2D framework dedicato alla creazione di game. molto simile alla DisplayList. Starling in AIR richiede rendermode a DIRECT. Attualmente siamo alla versione 1.3: . filtri . miglioramento Tween (reverse, nextTween, repeat) . asset management (sia embedded che caricati). Starling startup comune per ogni area da renderizzare. Testare Starling sempre in ReleaseMode mai in DebugMode
Friday, March 1, 13
HAVING WITHADOBE AIR
Starling
Friday, March 1, 13
HAVING WITHADOBE AIR
Starling Startup
Friday, March 1, 13
HAVING WITHADOBE AIR
Starling Event Model. identica alla gestione di Actionscript 3
. addEventListener
. hasEventListener
. removeEventListener
. removeEventListeners
. Per custom event si estendono gli Starling event anzichè
Flash event
Friday, March 1, 13
HAVING WITHADOBE AIR
Starling TouchEvent. TouchEvent.TOUCH gestisce più fasi:
. began
. ended
. hover
. moved
Inoltre possiamo recuperare il timestamp del touch o se in
concomitanza del touch è premuto il tasto shift o ctrl della
tastiera
Friday, March 1, 13
HAVING WITHADOBE AIR
Starling Texture. Le texture sono alla base di ogni cosa in Starling
. possiamo recuperare o embeddare una texture da una
PNG, JPG, ATF
. png2atf -> http://www.adobe.com/devnet/flashruntimes/
articles/atf-users-guide.html
. grandezza massima texture 2048x2048
. possiamo usare la texture per renderizzare un’immagine o
salvare all’interno tutti gli assets del nostro applicativo
Friday, March 1, 13
HAVING WITHADOBE AIR
Starling MovieClip. E’ la rappresentazione via codice di un movieclip creato in
Flash
. I frame corrispondono ai vari sprite che verranno inseriti al
suo interno
. Per animarlo usiamo lo Starling.juggler
. add
. play, stop, pause, loop
. setFrameDuration, addFrame, removeFrameAt ...
Friday, March 1, 13
HAVING WITHADOBE AIR
Starling TextField. Tipologie di testi renderizzabili: BitmapFont o TTF font. I testi vengono sempre renderizzati in GPU. il textformat è integrato nel textfield. non renderizza HTML (trick usare il webstageview). possiamo embeddare testi semplicemente embeddando il font nel progetto. altro modo di embeddare un font è usare GlyphDesigner (MAC) o Bitmap Font Generator (WIN) che convertono in spritesheet il font e tramite registerBitmapFont posso embeddarlo nel campo di testo
Friday, March 1, 13
HAVING WITHADOBE AIR
Feathers UI. Feathers è una libreria di componenti basata su Starling. Feathers comprende: . List . Button . Switch . ScrollContainer . ScrollText . Image Loaderhttp://feathersui.com/examples/components-explorer/http://wiki.starling-framework.org/feathers/start
Friday, March 1, 13
HAVING WITHADOBE AIR
Screen Navigator. Utilizzato per cambiare vista su applicativi o game
Friday, March 1, 13
HAVING WITHADOBE AIR
List. vengono usate non solo come liste ma più in generale per la gestione tramite scroll di molti elementi
. performance ottime su mobile
. possiedono un itemrenderer customizzabile e facilmente skinnabile
. utilizza il meccanismo del virtual layout
Friday, March 1, 13
HAVING WITHADOBE AIRFriday, March 1, 13
HAVING WITHADOBE AIRFriday, March 1, 13
HAVING WITHADOBE AIR
Sviluppo Crossplatform. Grande plus di AIR è lo sviluppo crossplatform. le problematiche maggiori sono: . grafica . architettura software . gestione codice differente per ogni piattaforma . testing su più piattaforme
Friday, March 1, 13
HAVING WITHADOBE AIR
Definizione screensize. definizione screen resolution. creare grafica adattata per ogni device. preparare grafica in maniera esterna al progetto (SWC o Texture Atlas). utilizzare i vettori dove possibile. in Feathers UI possiamo utilizzare i temi. lavorare sempre in maniera relativa
Friday, March 1, 13
HAVING WITHADOBE AIR
Worflow graficoDefinizione UI SWC o Texture Atlas Programmazione
Friday, March 1, 13
HAVING WITHADOBE AIR
Tips GUI mobile. aree attive non inferiori a 50x50px. non mettere troppe funzionalità per schermata. textinput utilizzare StageText ove possibile. definire le aree con maggiore importanza e quelle che possono essere ridotte o eliminate in fase di cambio schermo. create GUI sia per landscape che per portrait mode. dare sempre feedback visivo all’utente (click, progress, alert). grafica landscape/portrait non solo resize ma riorganizzala!. fare attenzione ai pattern grafici del sistema operativo!
Friday, March 1, 13
HAVING WITHADOBE AIR
BB 10 mobile guideline. Context Menu, Active Menu e Application Menu
Friday, March 1, 13
HAVING WITHADOBE AIR
... e gli altri?MultiDPIBitmapSource
CSS
Friday, March 1, 13
HAVING WITHADOBE AIR
... e gli altri?nomi file con suffissi maschere
Friday, March 1, 13
HAVING WITHADOBE AIR
Compilazione Condizionale
Friday, March 1, 13
HAVING WITHADOBE AIR
Occhio al peso!. Android Store -> max 50mb + 2 file da 2GB
. App Store -> 2GB (sopra i 50mb download solo da WiFi)
. Quando lavoriamo con file audio, video e immagini
dobbiamo tener presente questi limiti!
Friday, March 1, 13
HAVING WITHADOBE AIR
Android Screen Resolution
Friday, March 1, 13
HAVING WITHADOBE AIRFriday, March 1, 13
HAVING WITHADOBE AIR
Architettura. una buona architettura ci permette di mantenere il codice di
applicazioni multiplescreen in maniera impeccabile
. Architetture per Starling:
. StarlingMVC (http://creativebottle.github.com/
starlingMVC/)
. RobotLegs (https://github.com/s9tpepper/robotlegs-
starling-plugin)
Friday, March 1, 13
HAVING WITHADOBE AIR
Perchè RobotLegs ?. MVC+S. semplice da utilizzare. non bisogna appoggiarsi pesantemente al framework. obbliga a suddividere in maniera chiara e semplice le logiche dell’applicazione . ben documentato. utilizzabile sia su Flex che Flash. buone prestazioni su mobile. ancora aggiornato!
Friday, March 1, 13
HAVING WITHADOBE AIR
Perchè RobotLegs ?. Dependency Injection
. Inversion of Control
Friday, March 1, 13
HAVING WITHADOBE AIR
RobotLegs
Friday, March 1, 13
HAVING WITHADOBE AIR
View. Contiene l’interfaccia dell’applicazione
. E’ totalmente slegata dal resto dell’applicazione e da Robotlegs in generale
. Dialoga tramite eventi con il proprio mediatore
Friday, March 1, 13
HAVING WITHADOBE AIR
Mediator. Ha sempre iniettato la sua vista di riferimento
. Può dialogare direttamente sia con i servizi che con i modelli
. Sono in ascolto e dispatchano eventi del framework
. NON inserire mai logica della vista nel mediatore
Friday, March 1, 13
HAVING WITHADOBE AIR
Context. il context rappresenta il centro nevralgico dell’applicativo dove vengono definite le associazioni tra eventi, mediatori e viste, modelli e via dicendo
. il context dev’essere sempre una variabile di classe altrimenti verrebbe cancellato dal garbage collector
. posso avere molteplici context se l’applicazione lavora con moduli esterni
Friday, March 1, 13
HAVING WITHADOBE AIR
Command. Vengono creati per essere eseguiti immediatamente ed eseguire un’azione, poi vengono cancellati
. Spesso son legati ad un evento da cui possono ricevere dei dati
. Fanno da collante tra l’applicazione e il dialogo tra Service e Model
Friday, March 1, 13
HAVING WITHADOBE AIR
Actor. Actor sono delle classi che vengono generalmente estese
dai model e dai service
. Actor implementano l’interfaccia IEventDispatcher che
permette di dispatchare eventi all’interno delle suddette classi
. Posso inoltre iniettare oggetti all’interno delle classi estese
Friday, March 1, 13
HAVING WITHADOBE AIR
Model. Estende generalmente una classe Actor
. NON è in ascolto degli eventi del framework ma dispatcha
solo eventi verso il framework
. Salva i dati in memoria e li rende disponibili in metodi e
proprietà pubbliche
Friday, March 1, 13
HAVING WITHADOBE AIR
Service. Estende generalmente una classe Actor
. Comunica con “il mondo esterno” (es. servizi serverside)
. NON salva alcun dato in memoria ma delega il salvataggio al model
. NON è in ascolto degli eventi del framework ma dispatcha solo eventi verso il framework
Friday, March 1, 13
HAVING WITHADOBE AIR
More...
Friday, March 1, 13
HAVING WITHADOBE AIR
CODING TIME!
Friday, March 1, 13
HAVING WITHADOBE AIRFriday, March 1, 13
HAVING WITHADOBE AIR
Last but not least.... codice: https://github.com/lucamezzalira/
having_fun_with_adobe_air/
. slides: http://www.slideshare.net/flashplatform/
. contatti:
. email: [email protected]
. twitter: @lucamezzalira
Friday, March 1, 13
Friday, March 1, 13
Thank you!
HAVING WITHADOBE AIR
Friday, March 1, 13