SlideShare une entreprise Scribd logo
1  sur  33
98 Cups of Tea
Secrets of a successful AIR application
Andrew Muller
Allow myself to introduce myself
   Andrew Muller
     Flash Platform consultant
     Developer & trainer
       Flex, AIR, ActionScript, Flash & ColdFusion
     Adobe Ambassador
     Adobe Community Expert
A good AIR app...
A good AIR app...
Had the functionality of a web app, but now works
like a desktop app
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
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
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
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
Starting that AIR app...
Starting that AIR app...
  It’s an oldie but a goodie
Starting that AIR app...
  It’s an oldie but a goodie
    “If you fail to plan...”
Starting that AIR app...
  It’s an oldie but a goodie
    “If you fail to plan...”
  There’s no AIR disaster story here
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
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
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
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
AIR & the UI




license agreement

                    about screen
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
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
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
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
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
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
Filtering SQL results
 Should you hit the database every time?
   SQLite results are normally returned as
   ArrayCollections
   Additional ArrayCollection options:
     Filter
     Sort
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
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
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
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
Online / offline strategy
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
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
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
Thank you
Andrew Muller
rebel@rebelspirit.com.au

Contenu connexe

Dernier

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 

Dernier (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 

En vedette

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

En vedette (20)

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 

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

  • 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
  • 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

Notes de l'éditeur