際際滷

際際滷Share a Scribd company logo
HAVING       WITH ADOBE AIR

                      WELCOME

Friday, March 1, 13
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
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
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
Adobe AIR su mobile




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
Adobe AIR su desktop




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
Adobe AIR su...




             HAVING
Friday, March 1, 13
                      WITH ADOBE 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/鍖ashplatform/


             HAVING                WITH ADOBE AIR
      whitepapers/roadmap.html

Friday, March 1, 13
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
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
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
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
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
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
Adobe Scout




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
Creative Cloud!




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
Case History




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
Case History




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
Case History ITALIA




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
Case History ITALIA




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
IDE



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


             HAVING
Friday, March 1, 13
                                       WITH ADOBE AIR
Versioni AIR
                  3.6   3.6       3.1




             HAVING
Friday, March 1, 13
                         WITH ADOBE AIR
File di con鍖gurazione




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
Icone



                      http://help.adobe.com/en_US/air/build/
                      WS901d38e593cd1bac1e63e3d12990
                      7d2886-8000.html
             HAVING
Friday, March 1, 13
                               WITH ADOBE AIR
Splash page iOS




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
Splash page BB
     http://devblog.blackberry.com/2012/11/porting-air-playbook-
     apps-to-blackberry-10/




             HAVING
Friday, March 1, 13
                                  WITH ADOBE AIR
HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
HAVING
Friday, March 1, 13
                      WITH ADOBE 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...)




             HAVING
Friday, March 1, 13
                                 WITH ADOBE 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
             HAVING
Friday, March 1, 13
                                  WITH ADOBE 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:
             . 鍖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
Starling




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
Starling Startup




             HAVING
Friday, March 1, 13
                      WITH ADOBE 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


             HAVING
Friday, March 1, 13
                                         WITH ADOBE 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
             HAVING
Friday, March 1, 13
                                     WITH ADOBE 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/鍖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
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
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
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
Screen Navigator
       . Utilizzato per cambiare vista su applicativi o game




             HAVING
Friday, March 1, 13
                                     WITH ADOBE 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

             HAVING
Friday, March 1, 13
                                      WITH ADOBE AIR
HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
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
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
Wor鍖ow gra鍖co
       De鍖nizione UI   SWC o Texture Atlas   Programmazione




             HAVING
Friday, March 1, 13
                                WITH ADOBE AIR
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
BB 10 mobile guideline
       . Context Menu, Active Menu e Application Menu




             HAVING
Friday, March 1, 13
                                  WITH ADOBE AIR
... e gli altri?
      MultiDPIBitmapSource




      CSS




             HAVING
Friday, March 1, 13
                             WITH ADOBE AIR
... e gli altri?
       nomi 鍖le con suf鍖ssi   maschere




             HAVING
Friday, March 1, 13
                                WITH ADOBE AIR
Compilazione Condizionale




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
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
Android Screen Resolution




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
HAVING
Friday, March 1, 13
                      WITH ADOBE 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)
             HAVING
Friday, March 1, 13
                                         WITH ADOBE AIR
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
Perch竪 RobotLegs ?
       . Dependency Injection




       . Inversion of Control




             HAVING
Friday, March 1, 13
                                WITH ADOBE AIR
RobotLegs




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
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
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
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
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
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
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
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
More...




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
CODING TIME!




             HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
HAVING
Friday, March 1, 13
                      WITH ADOBE AIR
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
Friday, March 1, 13
HAVING        WITH ADOBE AIR

                      Thank you!

Friday, March 1, 13

More Related Content

Having fun with Adobe AIR 2013

  • 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
  • 7. Adobe AIR su... 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
  • 16. Creative Cloud! HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 17. HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 18. Case History HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 19. Case History HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 20. Case History ITALIA HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 21. Case History ITALIA HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 22. IDE http://developer.blackberry.com/air/ HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 23. Versioni AIR 3.6 3.6 3.1 HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 24. File di con鍖gurazione HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 25. Icone http://help.adobe.com/en_US/air/build/ WS901d38e593cd1bac1e63e3d12990 7d2886-8000.html HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 26. Splash page iOS HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 27. Splash page BB http://devblog.blackberry.com/2012/11/porting-air-playbook- apps-to-blackberry-10/ HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 28. HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 29. 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
  • 34. Starling Startup 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
  • 43. HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 44. 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
  • 52. Compilazione Condizionale 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
  • 54. Android Screen Resolution HAVING Friday, March 1, 13 WITH ADOBE AIR
  • 55. 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
  • 69. 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
  • 72. HAVING WITH ADOBE AIR Thank you! Friday, March 1, 13