Having fun with Adobe AIR 2013

72
HAVING WITH ADOBE AIR WELCOME Friday, March 1, 13

Transcript of Having fun with Adobe AIR 2013

Page 1: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

WELCOME

Friday, March 1, 13

Page 2: Having fun with Adobe AIR 2013

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

Page 3: Having fun with Adobe AIR 2013

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

Page 4: Having fun with Adobe AIR 2013

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

Page 5: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Adobe AIR su mobile

Friday, March 1, 13

Page 6: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Adobe AIR su desktop

Friday, March 1, 13

Page 7: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Adobe AIR su...

Friday, March 1, 13

Page 8: Having fun with Adobe AIR 2013

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

Page 9: Having fun with Adobe AIR 2013

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

Page 10: Having fun with Adobe AIR 2013

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

Page 11: Having fun with Adobe AIR 2013

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

Page 12: Having fun with Adobe AIR 2013

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

Page 13: Having fun with Adobe AIR 2013

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

Page 14: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

GAMING SDKAWAY3D

Starling

Feathers UI

FrameworksGame Center

In-App

Testflight

Social

StageAd

ANE

Samples

Friday, March 1, 13

Page 15: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Adobe Scout

Friday, March 1, 13

Page 16: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Creative Cloud!

Friday, March 1, 13

Page 17: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIRFriday, March 1, 13

Page 18: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Case History

Friday, March 1, 13

Page 19: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Case History

Friday, March 1, 13

Page 20: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Case History ITALIA

Friday, March 1, 13

Page 21: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Case History ITALIA

Friday, March 1, 13

Page 22: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

IDE

http://developer.blackberry.com/air/

Friday, March 1, 13

Page 23: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Versioni AIR3.6 3.6 3.1

Friday, March 1, 13

Page 24: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

File di configurazione

Friday, March 1, 13

Page 26: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Splash page iOS

Friday, March 1, 13

Page 28: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIRFriday, March 1, 13

Page 29: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIRFriday, March 1, 13

Page 30: Having fun with Adobe AIR 2013

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

Page 31: Having fun with Adobe AIR 2013

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

Page 32: Having fun with Adobe AIR 2013

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

Page 33: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Starling

Friday, March 1, 13

Page 34: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Starling Startup

Friday, March 1, 13

Page 35: Having fun with Adobe AIR 2013

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

Page 36: Having fun with Adobe AIR 2013

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

Page 37: Having fun with Adobe AIR 2013

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

Page 38: Having fun with Adobe AIR 2013

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

Page 39: Having fun with Adobe AIR 2013

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

Page 40: Having fun with Adobe AIR 2013

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

Page 41: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Screen Navigator. Utilizzato per cambiare vista su applicativi o game

Friday, March 1, 13

Page 42: Having fun with Adobe AIR 2013

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

Page 43: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIRFriday, March 1, 13

Page 44: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIRFriday, March 1, 13

Page 45: Having fun with Adobe AIR 2013

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

Page 46: Having fun with Adobe AIR 2013

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

Page 47: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Worflow graficoDefinizione UI SWC o Texture Atlas Programmazione

Friday, March 1, 13

Page 48: Having fun with Adobe AIR 2013

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

Page 49: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

BB 10 mobile guideline. Context Menu, Active Menu e Application Menu

Friday, March 1, 13

Page 50: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

... e gli altri?MultiDPIBitmapSource

CSS

Friday, March 1, 13

Page 51: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

... e gli altri?nomi file con suffissi maschere

Friday, March 1, 13

Page 52: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Compilazione Condizionale

Friday, March 1, 13

Page 53: Having fun with Adobe AIR 2013

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

Page 54: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Android Screen Resolution

Friday, March 1, 13

Page 55: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIRFriday, March 1, 13

Page 56: Having fun with Adobe AIR 2013

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

Page 57: Having fun with Adobe AIR 2013

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

Page 58: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

Perchè RobotLegs ?. Dependency Injection

. Inversion of Control

Friday, March 1, 13

Page 59: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

RobotLegs

Friday, March 1, 13

Page 60: Having fun with Adobe AIR 2013

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

Page 61: Having fun with Adobe AIR 2013

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

Page 62: Having fun with Adobe AIR 2013

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

Page 63: Having fun with Adobe AIR 2013

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

Page 64: Having fun with Adobe AIR 2013

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

Page 65: Having fun with Adobe AIR 2013

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

Page 66: Having fun with Adobe AIR 2013

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

Page 67: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

More...

Friday, March 1, 13

Page 68: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIR

CODING TIME!

Friday, March 1, 13

Page 69: Having fun with Adobe AIR 2013

HAVING WITHADOBE AIRFriday, March 1, 13

Page 71: Having fun with Adobe AIR 2013

Friday, March 1, 13

Page 72: Having fun with Adobe AIR 2013

Thank you!

HAVING WITHADOBE AIR

Friday, March 1, 13