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

  • 2,294 views
Uploaded on

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

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,294
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
0
Likes
7

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide































Transcript

  • 1. 98 Cups of Tea Secrets of a successful AIR application Andrew Muller
  • 2. Allow myself to introduce myself Andrew Muller Flash Platform consultant Developer & trainer Flex, AIR, ActionScript, Flash & ColdFusion Adobe Ambassador Adobe Community Expert
  • 3. A good AIR app...
  • 4. A good AIR app... Had the functionality of a web app, but now works like a desktop app
  • 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. 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. 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. 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. Starting that AIR app...
  • 10. Starting that AIR app... It’s an oldie but a goodie
  • 11. Starting that AIR app... It’s an oldie but a goodie “If you fail to plan...”
  • 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. 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. 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. 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. 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. AIR & the UI license agreement about screen
  • 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. 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. 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. 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. 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. 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. Filtering SQL results Should you hit the database every time? SQLite results are normally returned as ArrayCollections Additional ArrayCollection options: Filter Sort
  • 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. 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. 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. 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. Online / offline strategy
  • 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. 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. 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. Thank you Andrew Muller rebel@rebelspirit.com.au