1. HAVING WITH ADOBE AIR
WELCOME
Friday, March 1, 13
2. Thank you for attending
today's Adobe Camp
Please 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.
HAVING
Friday, March 1, 13
WITH ADOBE AIR
3. Agenda
. Overview Adobe AIR e novit della piattaforma
. Stage3D, Starling e Feathers UI
. Work鍖ow progetto AIR multipiattaforma
. Tips & Tricks GUI mobile + Responsive Design
. Microarchitettura per applicativi sviluppati con AIR
. Debugging AIR application
HAVING
Friday, March 1, 13
WITH ADOBE AIR
4. Adobe Integrated Runtime
. presente nelle principali piattaforme
. interazione con sistemi operativi
. estendibile
. buon work鍖ow dallideazione allo sviluppo
. non dobbiamo imparare nuovi linguaggi di programmazione
. tool di sviluppo conosciuti
HAVING
Friday, March 1, 13
WITH ADOBE AIR
5. Adobe AIR su mobile
HAVING
Friday, March 1, 13
WITH ADOBE AIR
6. Adobe AIR su desktop
HAVING
Friday, March 1, 13
WITH ADOBE AIR
8. 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/鍖ashplatform/
HAVING WITH ADOBE AIR
whitepapers/roadmap.html
Friday, March 1, 13
9. 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 noti鍖cation
. iOS: background task (audio, location, network, exit app)
HAVING
Friday, March 1, 13
WITH ADOBE AIR
10. Novit ultime release
. Graphics data query
. Telemetry (Adobe Scout)
. Concurrency
. StageVideo.attachCamera() (rendering in GPU)
. Native Extension
http://www.adobe.com/devnet/articles/鍖ashplayer-air-
HAVING WITH ADOBE AIR
feature-list.html
Friday, March 1, 13
11. 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
HAVING
Friday, March 1, 13
WITH ADOBE AIR
12. 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
HAVING
Friday, March 1, 13
WITH ADOBE AIR
13. 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)
HAVING
Friday, March 1, 13
WITH ADOBE AIR
14. GAMING SDK
Frameworks ANE
AWAY3D Game Center
Starling In-App
Feathers UI Test鍖ight
Social
Samples StageAd
HAVING
Friday, March 1, 13
WITH ADOBE AIR
15. Adobe Scout
HAVING
Friday, March 1, 13
WITH ADOBE AIR
30. 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...)
HAVING
Friday, March 1, 13
WITH ADOBE AIR
31. 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
HAVING
Friday, March 1, 13
WITH ADOBE AIR
32. 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:
. 鍖ltri
. 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
HAVING
Friday, March 1, 13
WITH ADOBE AIR
33. Starling
HAVING
Friday, March 1, 13
WITH ADOBE AIR
35. Starling Event Model
. identica alla gestione di Actionscript 3
. addEventListener
. hasEventListener
. removeEventListener
. removeEventListeners
. Per custom event si estendono gli Starling event anzich竪
Flash event
HAVING
Friday, March 1, 13
WITH ADOBE AIR
36. 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
HAVING
Friday, March 1, 13
WITH ADOBE AIR
37. 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/鍖ashruntimes/
articles/atf-users-guide.html
. grandezza massima texture 2048x2048
. possiamo usare la texture per renderizzare unimmagine o
salvare allinterno tutti gli assets del nostro applicativo
HAVING
Friday, March 1, 13
WITH ADOBE AIR
38. 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 ...
HAVING
Friday, March 1, 13
WITH ADOBE AIR
39. Starling TextField
. Tipologie di testi renderizzabili: BitmapFont o TTF font
. I testi vengono sempre renderizzati in GPU
. il textformat 竪 integrato nel text鍖eld
. 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
HAVING
embeddarlo nel campo di testo
Friday, March 1, 13
WITH ADOBE AIR
40. Feathers UI
. Feathers 竪 una libreria di componenti basata su Starling
. Feathers comprende:
. List
. Button
. Switch
. ScrollContainer
. ScrollText
. Image Loader
http://feathersui.com/examples/components-explorer/
HAVING WITH ADOBE AIR
http://wiki.starling-framework.org/feathers/start
Friday, March 1, 13
41. Screen Navigator
. Utilizzato per cambiare vista su applicativi o game
HAVING
Friday, March 1, 13
WITH ADOBE AIR
42. 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
HAVING
Friday, March 1, 13
WITH ADOBE AIR
45. Sviluppo Crossplatform
. Grande plus di AIR 竪 lo sviluppo crossplatform
. le problematiche maggiori sono:
. gra鍖ca
. architettura software
. gestione codice differente per ogni piattaforma
. testing su pi湛 piattaforme
HAVING
Friday, March 1, 13
WITH ADOBE AIR
46. De鍖nizione screensize
. de鍖nizione screen resolution
. creare gra鍖ca adattata per ogni device
. preparare gra鍖ca 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
HAVING
Friday, March 1, 13
WITH ADOBE AIR
47. Wor鍖ow gra鍖co
De鍖nizione UI SWC o Texture Atlas Programmazione
HAVING
Friday, March 1, 13
WITH ADOBE AIR
48. Tips GUI mobile
. aree attive non inferiori a 50x50px
. non mettere troppe funzionalit per schermata
. textinput utilizzare StageText ove possibile
. de鍖nire 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 allutente (click, progress, alert)
. gra鍖ca landscape/portrait non solo resize ma riorganizzala!
. fare attenzione ai pattern gra鍖ci del sistema operativo!
HAVING
Friday, March 1, 13
WITH ADOBE AIR
49. BB 10 mobile guideline
. Context Menu, Active Menu e Application Menu
HAVING
Friday, March 1, 13
WITH ADOBE AIR
50. ... e gli altri?
MultiDPIBitmapSource
CSS
HAVING
Friday, March 1, 13
WITH ADOBE AIR
51. ... e gli altri?
nomi 鍖le con suf鍖ssi maschere
HAVING
Friday, March 1, 13
WITH ADOBE AIR
53. Occhio al peso!
. Android Store -> max 50mb + 2 鍖le da 2GB
. App Store -> 2GB (sopra i 50mb download solo da WiFi)
. Quando lavoriamo con 鍖le audio, video e immagini
dobbiamo tener presente questi limiti!
HAVING
Friday, March 1, 13
WITH ADOBE AIR
56. 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)
HAVING
Friday, March 1, 13
WITH ADOBE AIR
57. Perch竪 RobotLegs ?
. MVC+S
. semplice da utilizzare
. non bisogna appoggiarsi pesantemente al framework
. obbliga a suddividere in maniera chiara e semplice le logiche
dellapplicazione
. ben documentato
. utilizzabile sia su Flex che Flash
. buone prestazioni su mobile
. ancora aggiornato!
HAVING
Friday, March 1, 13
WITH ADOBE AIR
58. Perch竪 RobotLegs ?
. Dependency Injection
. Inversion of Control
HAVING
Friday, March 1, 13
WITH ADOBE AIR
59. RobotLegs
HAVING
Friday, March 1, 13
WITH ADOBE AIR
60. View
. Contiene linterfaccia dellapplicazione
. E totalmente slegata dal resto dellapplicazione e da
Robotlegs in generale
. Dialoga tramite eventi con il proprio mediatore
HAVING
Friday, March 1, 13
WITH ADOBE AIR
61. 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
HAVING
Friday, March 1, 13
WITH ADOBE AIR
62. Context
. il context rappresenta il centro nevralgico dellapplicativo
dove vengono de鍖nite le associazioni tra eventi, mediatori e
viste, modelli e via dicendo
. il context devessere sempre una variabile di classe
altrimenti verrebbe cancellato dal garbage collector
. posso avere molteplici context se lapplicazione lavora con
moduli esterni
HAVING
Friday, March 1, 13
WITH ADOBE AIR
63. Command
. Vengono creati per essere eseguiti immediatamente ed
eseguire unazione, poi vengono cancellati
. Spesso son legati ad un evento da cui possono ricevere dei
dati
. Fanno da collante tra lapplicazione e il dialogo tra Service e
Model
HAVING
Friday, March 1, 13
WITH ADOBE AIR
64. Actor
. Actor sono delle classi che vengono generalmente estese
dai model e dai service
. Actor implementano linterfaccia IEventDispatcher che
permette di dispatchare eventi allinterno delle suddette classi
. Posso inoltre iniettare oggetti allinterno delle classi estese
HAVING
Friday, March 1, 13
WITH ADOBE AIR
65. 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
HAVING
Friday, March 1, 13
WITH ADOBE AIR
66. 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
HAVING
Friday, March 1, 13
WITH ADOBE AIR
67. More...
HAVING
Friday, March 1, 13
WITH ADOBE AIR
68. CODING TIME!
HAVING
Friday, March 1, 13
WITH ADOBE AIR
70. Last but not least...
. codice: https://github.com/lucamezzalira/
having_fun_with_adobe_air/
. slides: http://www.slideshare.net/鍖ashplatform/
. contatti:
. email: luca.mezzalira@insideabit.com
. twitter: @lucamezzalira
HAVING
Friday, March 1, 13
WITH ADOBE AIR