98 Cups of Tea - How to build a successful AIR application

2,738 views

Published on

98 Cups Of Tea is a presentation that I gave on Adobe AIR at webdu in Sydney May 2009.

Original session details:

Learn the ins and outs of building a successful AIR application with Flex. Andrew Muller will discuss experiences building applications for the AIR runtime using Flex, including his own checklist of what's needed and what's often overlooked by both developers and clients.

Published in: Technology

98 Cups of Tea - How to build a successful AIR application

  1. 1. 98 Cups of Tea Secrets of a successful AIR application Andrew Muller
  2. 2. Allow myself to introduce myself Andrew Muller Flash Platform consultant Developer & trainer Flex, AIR, ActionScript, Flash & ColdFusion Adobe Ambassador Adobe Community Expert
  3. 3. A good AIR app...
  4. 4. A good AIR app... Had the functionality of a web app, but now works like a desktop app
  5. 5. A good AIR app... Had the functionality of a web app, but now works like a desktop app Doesn’t have to be 100% authored in Flex
  6. 6. A good AIR app... Had the functionality of a web app, but now works like a desktop app Doesn’t have to be 100% authored in Flex Should take advantage of the AIR feature set
  7. 7. A good AIR app... Had the functionality of a web app, but now works like a desktop app Doesn’t have to be 100% authored in Flex Should take advantage of the AIR feature set Uses AIR as the platform, independent of the OS
  8. 8. A good AIR app... Had the functionality of a web app, but now works like a desktop app Doesn’t have to be 100% authored in Flex Should take advantage of the AIR feature set Uses AIR as the platform, independent of the OS Isn’t necessarily a widget or super-widget
  9. 9. Starting that AIR app...
  10. 10. Starting that AIR app... It’s an oldie but a goodie
  11. 11. Starting that AIR app... It’s an oldie but a goodie “If you fail to plan...”
  12. 12. Starting that AIR app... It’s an oldie but a goodie “If you fail to plan...” There’s no AIR disaster story here
  13. 13. Starting that AIR app... It’s an oldie but a goodie “If you fail to plan...” There’s no AIR disaster story here But there are things you should consider that should mean that you have a success story
  14. 14. Have a check list A lot of AIR apps are commissioned to use one or two features of AIR, but actually will benefit from virtually all of the feature set Typically the original spec for an AIR app doesn’t include self updating Network connectivity ( online / offline ) is under utilised
  15. 15. AIR & the UI The problem with Flex apps is that they look like Flex apps If you don’t have a designer there are great skins and styles publicly available Skin with Flex Builder’s CSS Explorer Start using Flash Catalyst as soon as you can
  16. 16. AIR & the UI The web metaphors work, but application functionality is more appropriate Remember you can have: OS specific stuff like bouncing icons and things happening in the system tray Various menus are possible but no good if the app is going to go chromeless Panels / options
  17. 17. AIR & the UI license agreement about screen
  18. 18. Good communication Good application architecture means good communication between all the parts of your application Consider the benefits of a framework like Mate or Cairngorm
  19. 19. Mix and Mash Blending HTML and Flash content Use HTML content for regularly updated content Use Ajax widgets instead of reinventing code Handle offline / online application connections Blending Flex and Flash content The Flex Component Kit for Flash CS3+ means that you can utilise existing Flash within Flex
  20. 20. Find a bit of class Don’t reinvent the wheel, there’s good public libraries of AS3 code for AIR ( for free! ) Google Code has numerous AS3 libraries specific to AIR: as3preferenceslib as3notificationlib AirLogger
  21. 21. Take the SQL challenge “AIR, you make me a better SQL developer” You may need to sharpen your SQL skills depending on the amount of data manipulation required, e.g. Top 5 Latest 10 Highest ranked, averaged Plan the DB thoroughly, release it with all the
  22. 22. SQL challenges Some pointers: No full text searching Parameters, either named or unnamed ( ? ) ?’%’ bad ? || ‘%’ good itemClass allows you to type returned data Use AS aliases when querying multiple tables
  23. 23. Making a SQL connection AIR & SQLite means connect, create & execute Start splitting into views and you might need to start sharing that around... Going further: DataAccess utility class - Brandon Ellis SQLServiceInvoker - mate extension
  24. 24. Filtering SQL results Should you hit the database every time? SQLite results are normally returned as ArrayCollections Additional ArrayCollection options: Filter Sort
  25. 25. Ooo, aah updating! Application updating is one of those moments where the client realises that they’ve made the right choice Display options Before After Release notes
  26. 26. Async & swim Recent client challenges have been building AIR apps that have downloading functionality as part of their core functionality, this requires: Handling multiple asynchronous remote service calls Handling multiple simultaneous requests for downloading files
  27. 27. Online / offline strategy Have your framework do the work Have clever content display/collapse if offline Store images locally if online Let the user know that things are up to date
  28. 28. Online / offline strategy Force storage of local data, either DB or SO Have a strategy for synchronising data Have a strategy for connecting to services Hack the status bar if you’re using the chrome
  29. 29. Online / offline strategy
  30. 30. Odds and sods Performance tuning: Reduce the framerate while minimised Grant Skinner’s FramerateThrottler class Application style hidden bits and pieces Private & public keys Encrypted SQLite databases EncryptedLocalStore
  31. 31. Application life cycle Spec/design stage Should include SQLite database design Identify and create service calls Wireframes, use tools like Balsamiq Mockups Development stage Anticipate changes to local databases Update code should be implemented in early
  32. 32. Application life cycle Test stage Have a test plan Ensure that all the objectives are being met Test on multiple OSs Deployment stage Make sure that you have updating implemented before you release
  33. 33. Thank you Andrew Muller rebel@rebelspirit.com.au

×