Presented by Denard - March 2013
Adobe AIR HTML5 CSS3 Javascript/jQuery Your favorite back-end technology (CF, right?!)
Converts Flash/Flex/AS3 or HTML/JS to Desktop Applications Webkit browser based for HTML/JS apps Supports HTML5, CSS3 and jQuery* Windows, OS X, Linux SDK and compiler (Currently v1.6.x)
Security Sandboxes SQLite embedded database Local storage (encrypted) AS/JS proxies (AIRAliases.js) PDF, clipboard, drag & drop, file system integration Native menu’s and taskbars/docks Service monitoring (check service availability) Application updater (update from within) Browser distribution (distribute AIR and app)
Security Sandboxes More difficult to debug (Introspection) Requires clients to DL and install Adobe AIR runtime Applications must be digitally signed to be installed ‘Odd’ issues – colors, script behavior, etc.
Same code base can be used across multiple platforms and devices Web Exceptions: SQLite, Local Storage, File System, PhoneGap Some exceptions can be handled in AS/JS Some exceptions require code branching*
Application Sandboxed Uses AJAX to communicate with server(s) AIRAliases.js (Javascript aliases to AS3 calls) (air. not window.runtime.flash. ) Single page (v1.0+) or multi-page capable (v1.5+) HTML applications
EncryptedLocalStore.setItem(key, ) Value = EncryptedLocalStore.getItem(key) jStorage is a cross-browser local storage system $.jStorage.set(key,value) Value = $.jStorage.get(key) Use if/else with feature discovery to determine if running in AIR or in the browser
E-Commerce Apps are POS systems Best Practice = use local db and app server, app server central server (e.g. web site) Return as little data as required, or as possible (e.g. pagination) Not all POS printers are created equal (OPOS, JavaPOS, OS drivers)
Gather credit card data and split into card number, expiration, card holder XX ^CARD HOLDER^1604(^) ccNum = Right(ListGetAt(,1,'^'),Len(ListGetAt(,1,'^'))-2) cardHolder = ListGetAt(,2,'^') expDate = Mid(ListGetAt(,3,'^'),3,2) & Left(ListGetAt(,3,'^'),2)
Screen resolution is usually limited (for POS systems – typical is 1024 x 768) Inputs, buttons, selects, and even text have to be much larger than a web application On-Screen keyboard will be required for textual input (OS or javascript, typically)
MissionTix Event Kiosk MissionTix Conference Kiosk
(AIR Distributable) download.html (AIR SDK) download.html (SQLite) (jStorage) O’Reilly Adobe AIR 1.5 Cookbook (Flex and HTML)