Overview of AIR, the APIs you get access to and how to build a simple Flex and HTML application with it. From there we will explore some of the tools available to make AIR development easier and faster. We’ll finish up with a few important usability guidelines and real world case studies of AIR projects.
1. AIR 101
Web Directions North 08
Andre Charland, Nitobi
andre@nitobi.com
Monday, February 4, 2008
2. About Me
Andre Charland
Co-Founder/CE0 @ Nitobi
Usability & RIA Focus
Author, Blogger, Skier
Monday, February 4, 2008
3. About Nitobi
Ajax and Flex Components and Services
Founded in 1998
Revenue funded
Over 1000+ customers worldwide
12 Employees
Vancouver, BC
Monday, February 4, 2008
5. AIR?
Cross OS Runtime
Web developers can build desktop apps
Supports: Flash, Flex, HTML, PDF, JavaScript
Totally Free
OS Level APIs
Monday, February 4, 2008
6. AIR APIs and Features
File I/O Local Storage
Native Windowing System Notifications
Menuing Auto Updates
Online/Offline SQL Lite Database
Detection
Background
Chrome Control Processes
Monday, February 4, 2008
7. Neat Things...
Call ActionScript directly from JavaScript
HTML content in Flash
Badge Install
Air Aliases.js
Use ActionScript Libraries
Keyboard Shortcuts
Monday, February 4, 2008
8. Technicalities
Flash 9
WebKit (Safari) - Not a Browser
Windows, Mac (Linux Coming Soon!)
Not a Plug-In
AIR is not Flex, Ajax, Flash...it’s a run-time
Monday, February 4, 2008
9. How To’s
Flex Builder 3
HTML/Ajax
Monday, February 4, 2008
11. File I/O
• Setup a File object
var myFile:File = File.appStorageDirectory;
myFile = myFile.resolve( “contacts.xml” );
• Instantiate and FileStream object
var myStream:FileStream = new FileStream();
• Setup the appropriate event listeners
myStream.addEventListener( Event.COMPLETE, doReadData );
• Call FileStream.open() or FileStream.openAsync() with the appropriate m
myStream.openAsync( myFile, FileMode.READ );
• Call the appropriate read and write methods
• Close the file using FileStream.close()
myStream.close();
Monday, February 4, 2008
12. Windowing
Create a new Native Window
var options:NativeWindowInitOptions = new NativeWindowInitOptions();
options.systemChrome = NativeWindowSystemChrome.STANDARD;
options.transparent = false;
var newWin:NativeWindow = new NativeWindow(options);
Window Size:
var maxOSSize:Point = NativeWindow.systemMaxSize;
var minOSSize:Point = NativeWindow.systemMinSize;
Monday, February 4, 2008
13. Service Monitor
Include the external SWF Library
<script type=quot;application/x-shockwave-flashquot; src=quot;servicemonitor.swfquot;></script>
Check for the availability of a particular URL
var monitor;
function checkURLStatus(url) {
! var req = new air.URLRequest(url);
! monitor = new window.runtime.air.net.URLMonitor(req);
! monitor.pollInterval = 5000;
! monitor.addEventListener(air.StatusEvent.STATUS, showStatus);
! monitor.start();
Monday, February 4, 2008
14. Snitter
http://snook.ca/snitter/
Monday, February 4, 2008
15. Scrutinizer
http://about.stompernet.com/scrutinizer
Monday, February 4, 2008
16. Analytics Reporting
http://analytics.boulevart.be/
http://analytics.boulevart.be/
Monday, February 4, 2008
17. Opportunities
Companion Applications
API Libraries
File Libraries
Advanced features – syncing, etc..
Casual games
Downloadable games
Monday, February 4, 2008
18. Usability Gotchas
Keyboard shortcuts (tab, enter…)
Throbbers / Activity indicators – no spinner
Allow text to be copied
Add functions for minimize, move, resize,
close when ‘chromeless’
Mouse hints, invitations, tool tips
Monday, February 4, 2008
19. Limitations in 1.0
No support for hardware acceleration (3D games, video compositing
tools, video encoders, etc)
No access to native libraries (DLLs, etc)
Cannot connect to devices (other than web cams and microphones)
Accessibility support is limited
Printing support is limited
Limited localization in 1.0
Monday, February 4, 2008
20. Questions:)
andre@nitobi.com
http://blogs.nitobi.com/andre
http://www.nitobi.com
Monday, February 4, 2008