SlideShare a Scribd company logo
1 of 40
Building Mobile Applications with Flex “Hero”
Ryan Stewart
         Developer Evangelist, Adobe

                 ryan@adobe.com

                blog.digitalbackcountry.com
                 @ryanstewart

                 github.com/ryanstewart



Based in Seattle
Things I Like:
 Beer
 Mountaineering/Hiking/Backpacking
 Geolocation/Mapping stuff
People here smarter than I am
Agenda

      Flash on Mobile Devices
    Introduction to Flex Mobile
   UI Paradigms with Flex Mobile
    Optimizing for Flex Mobile

Bonus! - Features of Flash Player 10.2
Mobile Flash Development
Flash Player 10.1




In-browser content

  Games, video

 Deploy as a SWF,
  put on the web
Flash Player 10.1       Adobe AIR




In-browser content   Mobile applications

  Games, video       Native APIs, extra
                       functionality
 Deploy as a SWF,
  put on the web     Package to target
                     individual devices
AIR for Devices




.ipa       .bar   .apk
AIR for Device Applications are
             “Native”

That means they can be put on app
             stores
 NOT that the UI components are
             native
So we can use Flex to build native apps
Issues with Flex on
   Mobile Devices
Complex Components: DataGrids,
         Charts, Tree

       Memory Footprint

   Desktop UI Screen Patterns
http://designingwebinterfaces.com/
   designing-web-interfaces-12-
          screen-patterns
Addressing those issues with
        Flex “Hero”
Mobile-Optimized Components
What does Mobile Optimized
          Mean?

 Rewrote and optimized UIComponent

Created a mobile theme which supports:
           Bigger components
 CSS Style for enabling touch (Scrollers)
The Mobile Theme




Used automatically when MobileApplication tag is
                      used
    Includes larger, touch-friendly controls
      Adds inputMode CSS style for touch
interactionMode Style

        mouse                   touch

Fires hover events   Creates wider hit area
   Use scrollbar        Hides scrollbar
interactionMode can in theory be used to swap
   between devices while keeping the same
                 codebase.
Mobile UI Patterns in Flex “Hero”
ViewNavigator
     The pattern for screens
           on devices

     Can define transitions
        between views

    Uses push/pop stack to
     move between views
ViewNavigator
     The pattern for screens
           on devices

     Can define transitions
        between views

    Uses push/pop stack to
     move between views
TabNavigator
      Tab through views

      Just set up multiple
      ViewNavigators with
     the firstView property

     Can’t use push/pop
ActionBar
navigationContent                     actionContent

                       titleContent



Provides easy access to important features

                    Won’t scroll

  Can be defined globally or for each view
Optimization Techniques
Use as Much ActionScript as
         Possible



              ItemRenders
                 Skins*
          Custom Components

*In general, a few MXML skins won’t hurt,
     especially if you use FXG assets
Graphical Assets
   In general, the fastest type
will be ActionScript and Bitmaps

     MXML is pretty slow:
  Don’t use MXML Graphics
Don’t use MXML skins with FXG

  Pre-compiled FXG with AS3
   is a pretty good solution
Use a SplashScreen




       Flex takes a bit of time to load
splashScreenImage is set to be fast and first
    Provides near-instant user feedback
View Events
  Perform data actions
  AFTER the Transition

  The View dispatches a
  CREATION_COMPLETE
event before the transition
         happens

      Listen for the
  VIEW_ACTIVATE event,
    then perform data
       operations
View B Added to Display List


View A    View B Dispatches FlexEvent.ADD     View B

                  View B Dispatches
           FlexEvent.CREATION_COMPLETE


                  View A Dispatches
             FlexEvent.VIEW_DEACTIVATE


                    Do Transition


         View A Dispatches FlexEvent.REMOVE


                  View B Dispatches
              FlexEvent.VIEW_ACTIVATE
Flash Player 10.2!
http://labs.adobe.com/downloads/
         flashplayer10.html
New Stuff
              StageVideo
             NativeCursor
Full Screen Mode for Multiple Monitors
     Hardware Acceleration for IE9
StageVideo
What’s Happening?

StageVideo is being hardware accelerated

  Plus, normally Flash content all runs
  through the same rendering pipeline

  StageVideo puts the video on its own
  layer, so it can’t be transformed, but
           it performs very well
Native Cursors




http://corlan.org/2010/12/02/working-with-
       native-custom-cursors-in-flash/
flash.display.MouseCursor
Data
   Lets you define bitmap sources
          as native cursors

   Vastly improved performance
      over current methods
Full Screen Mode for Multiple
          Monitors
   When something is full screen on
    one monitor, you can still work
   on the other without taking it out
        of fullscreen mode......

          The Hulu feature :)
Hardware acceleration on IE9



    We’ve been working with Microsoft
to make the Flash/IE9 experience top notch

      Flash Player 10.2 uses IE9 APIs
         for hardware acceleration

  Should see great performance with IE9
Q&A

Ryan Stewart
Developer Evangelist, Adobe

        ryan@adobe.com

       blog.digitalbackcountry.com
        @ryanstewart

        github.com/ryanstewart

More Related Content

What's hot

Bad Light Stops Play
Bad Light Stops PlayBad Light Stops Play
Bad Light Stops Play
george.james
 
Widget Workshop Advanced Development
Widget Workshop Advanced DevelopmentWidget Workshop Advanced Development
Widget Workshop Advanced Development
Dominik Helleberg
 

What's hot (20)

Adobe Max 2009 - Learnings
Adobe Max 2009 -  LearningsAdobe Max 2009 -  Learnings
Adobe Max 2009 - Learnings
 
Asp.net mvc - Better User Experience with Kendo UI
Asp.net mvc - Better User Experience with Kendo UIAsp.net mvc - Better User Experience with Kendo UI
Asp.net mvc - Better User Experience with Kendo UI
 
Continuous delivery with azure app service
Continuous delivery with azure app serviceContinuous delivery with azure app service
Continuous delivery with azure app service
 
Air Presentation
Air PresentationAir Presentation
Air Presentation
 
Do You Want to Build a Dashboard?
Do You Want to Build a Dashboard?Do You Want to Build a Dashboard?
Do You Want to Build a Dashboard?
 
Project on mp4 Media Player using JavaFx
Project on mp4 Media Player using JavaFxProject on mp4 Media Player using JavaFx
Project on mp4 Media Player using JavaFx
 
EVOLVE'16 | Enhance | Anthony Rumsey | Do you want to build a dashboard?
EVOLVE'16 | Enhance | Anthony Rumsey | Do you want to build a dashboard?EVOLVE'16 | Enhance | Anthony Rumsey | Do you want to build a dashboard?
EVOLVE'16 | Enhance | Anthony Rumsey | Do you want to build a dashboard?
 
Bad Light Stops Play
Bad Light Stops PlayBad Light Stops Play
Bad Light Stops Play
 
Simplifying Desktop Development With Glimmer
Simplifying Desktop Development With GlimmerSimplifying Desktop Development With Glimmer
Simplifying Desktop Development With Glimmer
 
VSTS and VS AppCenter overview and mobile releases 2018-05-30
VSTS and VS AppCenter overview and mobile releases 2018-05-30VSTS and VS AppCenter overview and mobile releases 2018-05-30
VSTS and VS AppCenter overview and mobile releases 2018-05-30
 
Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5Developing AIR for Mobile with Flash Professional CS5.5
Developing AIR for Mobile with Flash Professional CS5.5
 
Hybrid Mobile Development
Hybrid Mobile DevelopmentHybrid Mobile Development
Hybrid Mobile Development
 
Making Money with Adobe AIR
Making Money with Adobe AIRMaking Money with Adobe AIR
Making Money with Adobe AIR
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.
 
iOS for C# Developers - DevConnections Talk
iOS for C# Developers - DevConnections TalkiOS for C# Developers - DevConnections Talk
iOS for C# Developers - DevConnections Talk
 
Widget Workshop Advanced Development
Widget Workshop Advanced DevelopmentWidget Workshop Advanced Development
Widget Workshop Advanced Development
 
tvOS: An Introduction for iOS Developers
tvOS: An Introduction for iOS DeveloperstvOS: An Introduction for iOS Developers
tvOS: An Introduction for iOS Developers
 
App Development: Create Cross Platform Mobile App with Just 6 Steps
App Development: Create Cross Platform Mobile App with Just 6 StepsApp Development: Create Cross Platform Mobile App with Just 6 Steps
App Development: Create Cross Platform Mobile App with Just 6 Steps
 
Stunning Mobile Apps with the Xamarin Visual Design System​
Stunning Mobile Apps with the Xamarin Visual Design System​Stunning Mobile Apps with the Xamarin Visual Design System​
Stunning Mobile Apps with the Xamarin Visual Design System​
 
Developing AIR for Android with Flash Professional CS5
Developing AIR for Android with Flash Professional CS5Developing AIR for Android with Flash Professional CS5
Developing AIR for Android with Flash Professional CS5
 

Viewers also liked (7)

The Agile Process - Taming Your Process To Work For You
The Agile Process - Taming Your Process To Work For YouThe Agile Process - Taming Your Process To Work For You
The Agile Process - Taming Your Process To Work For You
 
Visualización de datos enlazados
Visualización de datos enlazadosVisualización de datos enlazados
Visualización de datos enlazados
 
Cisco IOS Attack & Defense - The State of the Art
Cisco IOS Attack & Defense - The State of the Art Cisco IOS Attack & Defense - The State of the Art
Cisco IOS Attack & Defense - The State of the Art
 
Hacking Client Side Insecurities
Hacking Client Side InsecuritiesHacking Client Side Insecurities
Hacking Client Side Insecurities
 
Phishing As Tragedy of the Commons
Phishing As Tragedy of the CommonsPhishing As Tragedy of the Commons
Phishing As Tragedy of the Commons
 
Secrets of Top Pentesters
Secrets of Top PentestersSecrets of Top Pentesters
Secrets of Top Pentesters
 
Defeating Cross-Site Scripting with Content Security Policy (updated)
Defeating Cross-Site Scripting with Content Security Policy (updated)Defeating Cross-Site Scripting with Content Security Policy (updated)
Defeating Cross-Site Scripting with Content Security Policy (updated)
 

Similar to Introduction to Flex Hero for Mobile Devices

Adobe AIR Mobile development for Android and PlayBook
Adobe AIR Mobile development for Android and PlayBookAdobe AIR Mobile development for Android and PlayBook
Adobe AIR Mobile development for Android and PlayBook
Mihai Corlan
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010
Patrick Lauke
 

Similar to Introduction to Flex Hero for Mobile Devices (20)

Flash Builder and Flex Future - Multiscreen Development
Flash Builder and Flex Future - Multiscreen DevelopmentFlash Builder and Flex Future - Multiscreen Development
Flash Builder and Flex Future - Multiscreen Development
 
AD503: XPages Mobile Development in IBM Domino 9.0.1 and Beyond
AD503: XPages Mobile Development in IBM Domino 9.0.1 and BeyondAD503: XPages Mobile Development in IBM Domino 9.0.1 and Beyond
AD503: XPages Mobile Development in IBM Domino 9.0.1 and Beyond
 
Developing for Mobile with Adobe AIR
Developing for Mobile with Adobe AIRDeveloping for Mobile with Adobe AIR
Developing for Mobile with Adobe AIR
 
Android Development with Flash Platform
Android Development with Flash PlatformAndroid Development with Flash Platform
Android Development with Flash Platform
 
Flex multi-screen development
Flex multi-screen developmentFlex multi-screen development
Flex multi-screen development
 
Adobe AIR Mobile development for Android and PlayBook
Adobe AIR Mobile development for Android and PlayBookAdobe AIR Mobile development for Android and PlayBook
Adobe AIR Mobile development for Android and PlayBook
 
DanNotes XPages Mobile Controls
DanNotes XPages Mobile ControlsDanNotes XPages Mobile Controls
DanNotes XPages Mobile Controls
 
Creating Flash Content for Multiple Screens
Creating Flash Content for Multiple ScreensCreating Flash Content for Multiple Screens
Creating Flash Content for Multiple Screens
 
Building Cross-Platform Mobile Apps
Building Cross-Platform Mobile AppsBuilding Cross-Platform Mobile Apps
Building Cross-Platform Mobile Apps
 
Adobe AIR 2.5 Beta for Android
Adobe AIR 2.5 Beta for AndroidAdobe AIR 2.5 Beta for Android
Adobe AIR 2.5 Beta for Android
 
Top Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentTop Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web Development
 
Practical Design and Development with Flash on Mobile and Devices
Practical Design and Development with Flash on Mobile and DevicesPractical Design and Development with Flash on Mobile and Devices
Practical Design and Development with Flash on Mobile and Devices
 
Developing for Mobile with the Flex Framework
Developing for Mobile with the Flex FrameworkDeveloping for Mobile with the Flex Framework
Developing for Mobile with the Flex Framework
 
Videogram - Building a product with Sencha Touch
Videogram - Building a product with Sencha TouchVideogram - Building a product with Sencha Touch
Videogram - Building a product with Sencha Touch
 
Flash for Mobile Devices
Flash for Mobile DevicesFlash for Mobile Devices
Flash for Mobile Devices
 
Getting Acquainted with PhoneGap
Getting Acquainted with PhoneGapGetting Acquainted with PhoneGap
Getting Acquainted with PhoneGap
 
Making mobile flex apps blazing fast
Making mobile flex apps blazing fastMaking mobile flex apps blazing fast
Making mobile flex apps blazing fast
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-air
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010
 
Cordova and PhoneGap Insights
Cordova and PhoneGap InsightsCordova and PhoneGap Insights
Cordova and PhoneGap Insights
 

More from Ryan Stewart

More from Ryan Stewart (11)

Intro to PhoneGap
Intro to PhoneGapIntro to PhoneGap
Intro to PhoneGap
 
From mobile browser to mobile app
From mobile browser to mobile appFrom mobile browser to mobile app
From mobile browser to mobile app
 
Developing with Phonegap - Adobe Refresh 2012
Developing with Phonegap - Adobe Refresh 2012Developing with Phonegap - Adobe Refresh 2012
Developing with Phonegap - Adobe Refresh 2012
 
Debugging and deploying with phone gap
Debugging and deploying with phone gapDebugging and deploying with phone gap
Debugging and deploying with phone gap
 
PhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JSPhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JS
 
HTML5 and jQuery for Flex Developers
HTML5 and jQuery for Flex DevelopersHTML5 and jQuery for Flex Developers
HTML5 and jQuery for Flex Developers
 
Getting Started with Flex and PHP
Getting Started with Flex and PHPGetting Started with Flex and PHP
Getting Started with Flex and PHP
 
Mapping and Geolocation on the Flash Platform
Mapping and Geolocation on the Flash PlatformMapping and Geolocation on the Flash Platform
Mapping and Geolocation on the Flash Platform
 
Getting Started with Flex and PHP
Getting Started with Flex and PHPGetting Started with Flex and PHP
Getting Started with Flex and PHP
 
Mapping and Geolocation with the Flash Platform
Mapping and Geolocation with the Flash PlatformMapping and Geolocation with the Flash Platform
Mapping and Geolocation with the Flash Platform
 
DelveNYC: Flash Catalyst
DelveNYC: Flash CatalystDelveNYC: Flash Catalyst
DelveNYC: Flash Catalyst
 

Introduction to Flex Hero for Mobile Devices

  • 1. Building Mobile Applications with Flex “Hero”
  • 2. Ryan Stewart Developer Evangelist, Adobe ryan@adobe.com blog.digitalbackcountry.com @ryanstewart github.com/ryanstewart Based in Seattle Things I Like: Beer Mountaineering/Hiking/Backpacking Geolocation/Mapping stuff
  • 4. Agenda Flash on Mobile Devices Introduction to Flex Mobile UI Paradigms with Flex Mobile Optimizing for Flex Mobile Bonus! - Features of Flash Player 10.2
  • 6. Flash Player 10.1 In-browser content Games, video Deploy as a SWF, put on the web
  • 7. Flash Player 10.1 Adobe AIR In-browser content Mobile applications Games, video Native APIs, extra functionality Deploy as a SWF, put on the web Package to target individual devices
  • 9. AIR for Device Applications are “Native” That means they can be put on app stores NOT that the UI components are native
  • 10. So we can use Flex to build native apps
  • 11. Issues with Flex on Mobile Devices Complex Components: DataGrids, Charts, Tree Memory Footprint Desktop UI Screen Patterns
  • 12. http://designingwebinterfaces.com/ designing-web-interfaces-12- screen-patterns
  • 13. Addressing those issues with Flex “Hero”
  • 15. What does Mobile Optimized Mean? Rewrote and optimized UIComponent Created a mobile theme which supports: Bigger components CSS Style for enabling touch (Scrollers)
  • 16. The Mobile Theme Used automatically when MobileApplication tag is used Includes larger, touch-friendly controls Adds inputMode CSS style for touch
  • 17. interactionMode Style mouse touch Fires hover events Creates wider hit area Use scrollbar Hides scrollbar
  • 18. interactionMode can in theory be used to swap between devices while keeping the same codebase.
  • 19. Mobile UI Patterns in Flex “Hero”
  • 20. ViewNavigator The pattern for screens on devices Can define transitions between views Uses push/pop stack to move between views
  • 21. ViewNavigator The pattern for screens on devices Can define transitions between views Uses push/pop stack to move between views
  • 22. TabNavigator Tab through views Just set up multiple ViewNavigators with the firstView property Can’t use push/pop
  • 23. ActionBar navigationContent actionContent titleContent Provides easy access to important features Won’t scroll Can be defined globally or for each view
  • 25. Use as Much ActionScript as Possible ItemRenders Skins* Custom Components *In general, a few MXML skins won’t hurt, especially if you use FXG assets
  • 26. Graphical Assets In general, the fastest type will be ActionScript and Bitmaps MXML is pretty slow: Don’t use MXML Graphics Don’t use MXML skins with FXG Pre-compiled FXG with AS3 is a pretty good solution
  • 27. Use a SplashScreen Flex takes a bit of time to load splashScreenImage is set to be fast and first Provides near-instant user feedback
  • 28. View Events Perform data actions AFTER the Transition The View dispatches a CREATION_COMPLETE event before the transition happens Listen for the VIEW_ACTIVATE event, then perform data operations
  • 29. View B Added to Display List View A View B Dispatches FlexEvent.ADD View B View B Dispatches FlexEvent.CREATION_COMPLETE View A Dispatches FlexEvent.VIEW_DEACTIVATE Do Transition View A Dispatches FlexEvent.REMOVE View B Dispatches FlexEvent.VIEW_ACTIVATE
  • 31. http://labs.adobe.com/downloads/ flashplayer10.html
  • 32. New Stuff StageVideo NativeCursor Full Screen Mode for Multiple Monitors Hardware Acceleration for IE9
  • 34. What’s Happening? StageVideo is being hardware accelerated Plus, normally Flash content all runs through the same rendering pipeline StageVideo puts the video on its own layer, so it can’t be transformed, but it performs very well
  • 36. flash.display.MouseCursor Data Lets you define bitmap sources as native cursors Vastly improved performance over current methods
  • 37. Full Screen Mode for Multiple Monitors When something is full screen on one monitor, you can still work on the other without taking it out of fullscreen mode...... The Hulu feature :)
  • 38. Hardware acceleration on IE9 We’ve been working with Microsoft to make the Flash/IE9 experience top notch Flash Player 10.2 uses IE9 APIs for hardware acceleration Should see great performance with IE9
  • 39.
  • 40. Q&A Ryan Stewart Developer Evangelist, Adobe ryan@adobe.com blog.digitalbackcountry.com @ryanstewart github.com/ryanstewart

Editor's Notes

  1. \n
  2. http://www.smashingmagazine.com/2009/01/23/friday-freebies-flavours-icon-set-and-cute-tweeters-icon-set/\n\n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. http://www.smashingmagazine.com/2009/01/23/friday-freebies-flavours-icon-set-and-cute-tweeters-icon-set/\n\n