SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Adobe Integrate Runtime (AIR)
                                                   RIA on Desktop


                                               Abdul Qabiz
                                  http://linkedin.com/in/abdulqabiz


Adobe and Adobe AIR are either the registered trademark or trademark of Adobe Systems Incorporated in the United States and/or other countries.
Desktop Apps?

 Use-cases
    Desktop is still important
    We still use those most of times
    Some data still on Desktop
    We are not always connected
    Some of us are occasionally-connected
 Current Issues
    Smart developers moved to Web :-)
    Gap between Web and Desktop
    Development requires special skills
    Hard to update/patch
    Bandwidth costs :-)
Topics

  Introduction
  Examples
  Development
      SDK/IDE/Tools
      Frameworks
  Security
  Installation/Deployment
  More Examples
  Q/A
AIR: Introduction
AIR: Some more features

  Native Windows/Menus
  Clipboard (read/write)
  Command-line arugements
  Launch on Login ( != startup)
  File associations (mime type handlers)
  Tracking user presence (idle timeout, etc)
  Taskbar/Dock icons
  Application termination
  Inter application communication
  Application updates
  DRM ;-)
  Encrypted storage (uses Keychain or DPAPI - AES-CBC
  128-bit)
AIR: Examples
AIR: Development

 Tools
    AIR SDK - compiler/debugger/packager
    Aptana (Eclipse-based) for AJAX apps
    Adobe FlexBuilder for Flex/Flash apps
 Frameworks
    No special requirement for AIR
    Generally, we use these for web-apps
       YUI, ExtJs, Dojo, Prototype, etc - Any AJAX
       framework*
       Adobe Flex Framework (Flex/Flash)
AIR: Development

 AJAX app structure
    Structure - HTML
    Presentation - CSS
    Behaviour - JS
    Assets - images, swf, flv, etc
    application descriptor (application.xml) - XML
 Flex/Flash app structure
    Application - .swf
    Libs/modules - .swf
    Assets - images, swf, flv, etc
    application descriptor (application.xml) - XML
AIR: Descriptor format
  <?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?>
  <application xmlns=quot;http://ns.adobe.com/air/application/1.0quot;>
      <id>com.abdulqabiz.air.BloglinesReader</id>
      <name>Bloglines Reader</name>
      <version>1.0</version>
      <filename>BloglinesReader</filename>
      <description>An offline Bloglines reader with lots of features.</description>
      <initialWindow>
          <title>Bloglines Reader</title>
          <content>root.html</content>
          <systemChrome>standard</systemChrome>
          <transparent>false</transparent>
          <visible>true</visible>
          <width>640</width>
          <height>480</height>
          <minimizable>true</minimizable>
          <maximizable>false</maximizable>
          <minSize>320 240</minSize>
          <maxSize>800 600</maxSize>      
      </initialWindow>
      <icon>
          <image16x16>icons/AIRApp_16.png</image16x16>     
          <image32x32>icons/AIRApp_32.png</image32x32>     
          <image48x48>icons/AIRApp_48.png</image48x48>     
          <image128x128>icons/AIRApp_128.png</image128x128>
      </icon>
  </application>
AIR: Security - Sandbox types

There are different sandbox types:
  application
     assigned to all the files in app directory
  remote
     Files from Internet URI
  local-trusted
     trusted local .swf can acces local and remote but doesn't have all AIR
     privileges.
  local-with-networking
     local .swf (published with -use-network flag) can communicate with
     remote only.
  local-with-filesystem
     local file (.swf, .js, .htm, etc) can read local but not remote.
AIR: Security - AJAX
   application                     non-application (classic)
  AIR API allowed                   No access to AIR API
  XHR - all domains                 XHR - same domain, can be
  Limited eval () - only JSON       allowed to all domains
  literals                          Window.open (..) work in
  Limited dynamic code              response of user-triggered
  generation                        event.
       javascript:<code>            AJAX frameworks would
       innerHtml                    work
       outerHtml                    CSS/frame/iframe/image
       dynamic-script/script-src    loading
       setInterval/setTimeOut
       (quot;x=4quot;, 1000)
  AJAX frameworks might
  break
AIR: Security - Sandbox bridging

   Without bridge      With bridge
AIR: Security: Sandbox Bridging
    <html>
     <head>
     <title>Simple test</title>
     <script type=quot;text/javascriptquot; src=quot;AIRAliases.jsquot;></script>
     <script type=quot;text/javascriptquot;>
            var Exposed = {};
            Exposed.trace = function(str) { air.trace(str); }
            Exposed.readApplicationDescriptorFile = function() {
                                      var content;
                                      //set content to descriptor content
                                      return content;
                                    }
            function doLoad()
            {
            document.getElementById('UI').contentWindow.parentSandboxBridge = Exposed;
              }
     </script>
     </head>
     <body onload=quot;doLoad();quot;>
     <iframe id=quot;UIquot;
            src=quot;ui.htmlquot;
            sandboxRoot=quot;http://SomeRemoteDomain.com/quot;
            documentRoot=quot;app:/quot;
     </iframe>
     </body>
     </html>
AIR: Security: Sandbox Bridging
    <html>
     <head>
     <title>UI</title>
     <script type=quot;text/javascriptquot;>
            var Exposed = {};
            Exposed.trace = function(str) { air.trace(str); }
            function doLoad() {
            childSandboxBridge = Exposed;
            }
     </script>
     </head>
     <body onload=quot;doLoad();quot;>
     <h3>Browser Sandbox Content</h3>
    <ul>
    <input type=quot;buttonquot;
    onclick=quot;alert(parentSandboxBridge.readApplicationDescriptorFile())quot; value=quot;Call the
    exposed function for reading application.xmlquot;/>
    </ul>
     </body>
     </html>
AIR: Installation

  Seamless install
     installs AIR, if not found
     requires Flash Player
  Manual Install
     download .air file and run it.
     AIR needs to be installed before that.
  Package AIR (the runtime) and App together?
AIR: Installation: Experience

Installation experience is consistent, it can not be modified by
the developer.
AIR: Deployment

 AIR apps are deployed as .air file
    Created using adt (the packager)
    .air files need to be digitally signed
    Certificates could be:
        Self-signed - created using adt
        Verisign or Thawte
 Badge-installer (widget for web-site)
 Version (in application.xml) - choose a right scheme
    Helps while updating app
AIR: Some best practices

  Be responsible - You have more privileges
     FileSystem, etc.
  Try not to store sensitive data on client
     If you have to, encrypt it
  Structure application properly
     Only keep trusted files in application sandbox
     Keep UI or other files in different sandbox
  Digitally sign .air files
      use Verisign or Thawte certificates
AIR: Some more examples
AIR: Q/A

That's it for now, you got the idea :-)

Q/A?

Más contenido relacionado

La actualidad más candente

Cross-platform mobile apps with Apache Cordova
Cross-platform mobile apps with Apache CordovaCross-platform mobile apps with Apache Cordova
Cross-platform mobile apps with Apache Cordova
Ivano Malavolta
 
AIR 開發應用程式實務
AIR 開發應用程式實務AIR 開發應用程式實務
AIR 開發應用程式實務
angelliya00
 
Firefox OS Introduction at Bontouch
Firefox OS Introduction at BontouchFirefox OS Introduction at Bontouch
Firefox OS Introduction at Bontouch
Robert Nyman
 
Mozilla, Firefox OS and the Open Web
Mozilla, Firefox OS and the Open WebMozilla, Firefox OS and the Open Web
Mozilla, Firefox OS and the Open Web
Robert Nyman
 
Advanced CSRF and Stateless Anti-CSRF
Advanced CSRF and Stateless Anti-CSRFAdvanced CSRF and Stateless Anti-CSRF
Advanced CSRF and Stateless Anti-CSRF
johnwilander
 

La actualidad más candente (19)

AEM responsive
AEM responsiveAEM responsive
AEM responsive
 
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...
 
JCR and Sling Quick Dive
JCR and Sling Quick DiveJCR and Sling Quick Dive
JCR and Sling Quick Dive
 
Cross-platform mobile apps with Apache Cordova
Cross-platform mobile apps with Apache CordovaCross-platform mobile apps with Apache Cordova
Cross-platform mobile apps with Apache Cordova
 
AIR 開發應用程式實務
AIR 開發應用程式實務AIR 開發應用程式實務
AIR 開發應用程式實務
 
Building Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsBuilding Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in Rails
 
Tutorial asp.net
Tutorial  asp.netTutorial  asp.net
Tutorial asp.net
 
Firefox OS Introduction at Bontouch
Firefox OS Introduction at BontouchFirefox OS Introduction at Bontouch
Firefox OS Introduction at Bontouch
 
Mozilla, Firefox OS and the Open Web
Mozilla, Firefox OS and the Open WebMozilla, Firefox OS and the Open Web
Mozilla, Firefox OS and the Open Web
 
Desenvolvendo uma aplicação híbrida para Android e IOs utilizando Ionic, aces...
Desenvolvendo uma aplicação híbrida para Android e IOs utilizando Ionic, aces...Desenvolvendo uma aplicação híbrida para Android e IOs utilizando Ionic, aces...
Desenvolvendo uma aplicação híbrida para Android e IOs utilizando Ionic, aces...
 
Java script Tutorial - QaTrainingHub
Java script Tutorial - QaTrainingHubJava script Tutorial - QaTrainingHub
Java script Tutorial - QaTrainingHub
 
Web Components: Web back to future.
Web Components: Web back to future.Web Components: Web back to future.
Web Components: Web back to future.
 
JSF 2.0 Preview
JSF 2.0 PreviewJSF 2.0 Preview
JSF 2.0 Preview
 
Node JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web AppNode JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web App
 
PHP on Windows and on Azure
PHP on Windows and on AzurePHP on Windows and on Azure
PHP on Windows and on Azure
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVC
 
Advanced CSRF and Stateless Anti-CSRF
Advanced CSRF and Stateless Anti-CSRFAdvanced CSRF and Stateless Anti-CSRF
Advanced CSRF and Stateless Anti-CSRF
 
CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC Framework
 
QA Lab: тестирование ПО. Владимир Гарбуз: "Application Security 101"
QA Lab: тестирование ПО. Владимир Гарбуз: "Application Security 101"QA Lab: тестирование ПО. Владимир Гарбуз: "Application Security 101"
QA Lab: тестирование ПО. Владимир Гарбуз: "Application Security 101"
 

Destacado (6)

Presentacion1
Presentacion1Presentacion1
Presentacion1
 
Cib 09 Umlage Vs Verrechnung
Cib 09 Umlage Vs VerrechnungCib 09 Umlage Vs Verrechnung
Cib 09 Umlage Vs Verrechnung
 
Happy Halloween
Happy HalloweenHappy Halloween
Happy Halloween
 
Test
TestTest
Test
 
Networking New York: Die Marke ich im Internet
Networking New York: Die Marke ich im InternetNetworking New York: Die Marke ich im Internet
Networking New York: Die Marke ich im Internet
 
Lernen zu lehren im digitalen Zeitalter (Weblernen, PLN)
Lernen zu lehren im digitalen Zeitalter (Weblernen, PLN)Lernen zu lehren im digitalen Zeitalter (Weblernen, PLN)
Lernen zu lehren im digitalen Zeitalter (Weblernen, PLN)
 

Similar a A I R Presentation Dev Camp Feb 08

Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRBuilding Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIR
funkatron
 
Flash Security, OWASP Chennai
Flash Security, OWASP ChennaiFlash Security, OWASP Chennai
Flash Security, OWASP Chennai
lavakumark
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
Igor Bronovskyy
 
Ajax Performance Tuning and Best Practices
Ajax Performance Tuning and Best PracticesAjax Performance Tuning and Best Practices
Ajax Performance Tuning and Best Practices
Doris Chen
 
Andy Bosch - JavaServer Faces in the cloud
Andy Bosch -  JavaServer Faces in the cloudAndy Bosch -  JavaServer Faces in the cloud
Andy Bosch - JavaServer Faces in the cloud
Andy Bosch
 

Similar a A I R Presentation Dev Camp Feb 08 (20)

前端概述
前端概述前端概述
前端概述
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRBuilding Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIR
 
Html5 & less css
Html5 & less cssHtml5 & less css
Html5 & less css
 
Flash Security, OWASP Chennai
Flash Security, OWASP ChennaiFlash Security, OWASP Chennai
Flash Security, OWASP Chennai
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
 
Modular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJS
 
Sanjeev ghai 12
Sanjeev ghai 12Sanjeev ghai 12
Sanjeev ghai 12
 
Apache Cordova In Action
Apache Cordova In ActionApache Cordova In Action
Apache Cordova In Action
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascript
 
Play Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and ScalaPlay Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and Scala
 
Ajax Performance Tuning and Best Practices
Ajax Performance Tuning and Best PracticesAjax Performance Tuning and Best Practices
Ajax Performance Tuning and Best Practices
 
Andy Bosch - JavaServer Faces in the cloud
Andy Bosch -  JavaServer Faces in the cloudAndy Bosch -  JavaServer Faces in the cloud
Andy Bosch - JavaServer Faces in the cloud
 
AEM Sightly Deep Dive
AEM Sightly Deep DiveAEM Sightly Deep Dive
AEM Sightly Deep Dive
 
Client-side JavaScript Vulnerabilities
Client-side JavaScript VulnerabilitiesClient-side JavaScript Vulnerabilities
Client-side JavaScript Vulnerabilities
 
Red5 - PHUG Workshops
Red5 - PHUG WorkshopsRed5 - PHUG Workshops
Red5 - PHUG Workshops
 
Let's play with adf 3.0
Let's play with adf 3.0Let's play with adf 3.0
Let's play with adf 3.0
 
eXo SEA - JavaScript Introduction Training
eXo SEA - JavaScript Introduction TrainingeXo SEA - JavaScript Introduction Training
eXo SEA - JavaScript Introduction Training
 
Hybrid app
Hybrid appHybrid app
Hybrid app
 
20150728 100분만에 배우는 windows 10 앱 개발
20150728 100분만에 배우는 windows 10 앱 개발20150728 100분만에 배우는 windows 10 앱 개발
20150728 100분만에 배우는 windows 10 앱 개발
 
Using and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middlewareUsing and scaling Rack and Rack-based middleware
Using and scaling Rack and Rack-based middleware
 

Último

obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...
obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...
obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...
yulianti213969
 
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in PakistanChallenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
vineshkumarsajnani12
 
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai KuwaitThe Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
daisycvs
 

Último (20)

Puri CALL GIRL ❤️8084732287❤️ CALL GIRLS IN ESCORT SERVICE WE ARW PROVIDING
Puri CALL GIRL ❤️8084732287❤️ CALL GIRLS IN ESCORT SERVICE WE ARW PROVIDINGPuri CALL GIRL ❤️8084732287❤️ CALL GIRLS IN ESCORT SERVICE WE ARW PROVIDING
Puri CALL GIRL ❤️8084732287❤️ CALL GIRLS IN ESCORT SERVICE WE ARW PROVIDING
 
Buy gmail accounts.pdf buy Old Gmail Accounts
Buy gmail accounts.pdf buy Old Gmail AccountsBuy gmail accounts.pdf buy Old Gmail Accounts
Buy gmail accounts.pdf buy Old Gmail Accounts
 
KALYANI 💋 Call Girl 9827461493 Call Girls in Escort service book now
KALYANI 💋 Call Girl 9827461493 Call Girls in  Escort service book nowKALYANI 💋 Call Girl 9827461493 Call Girls in  Escort service book now
KALYANI 💋 Call Girl 9827461493 Call Girls in Escort service book now
 
WheelTug Short Pitch Deck 2024 | Byond Insights
WheelTug Short Pitch Deck 2024 | Byond InsightsWheelTug Short Pitch Deck 2024 | Byond Insights
WheelTug Short Pitch Deck 2024 | Byond Insights
 
obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...
obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...
obat aborsi bandung wa 081336238223 jual obat aborsi cytotec asli di bandung9...
 
Cannabis Legalization World Map: 2024 Updated
Cannabis Legalization World Map: 2024 UpdatedCannabis Legalization World Map: 2024 Updated
Cannabis Legalization World Map: 2024 Updated
 
JAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR ESCORTS
JAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR  ESCORTSJAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR  ESCORTS
JAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR ESCORTS
 
Escorts in Nungambakkam Phone 8250092165 Enjoy 24/7 Escort Service Enjoy Your...
Escorts in Nungambakkam Phone 8250092165 Enjoy 24/7 Escort Service Enjoy Your...Escorts in Nungambakkam Phone 8250092165 Enjoy 24/7 Escort Service Enjoy Your...
Escorts in Nungambakkam Phone 8250092165 Enjoy 24/7 Escort Service Enjoy Your...
 
HomeRoots Pitch Deck | Investor Insights | April 2024
HomeRoots Pitch Deck | Investor Insights | April 2024HomeRoots Pitch Deck | Investor Insights | April 2024
HomeRoots Pitch Deck | Investor Insights | April 2024
 
Arti Languages Pre Seed Teaser Deck 2024.pdf
Arti Languages Pre Seed Teaser Deck 2024.pdfArti Languages Pre Seed Teaser Deck 2024.pdf
Arti Languages Pre Seed Teaser Deck 2024.pdf
 
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in PakistanChallenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
 
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai KuwaitThe Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
 
Only Cash On Delivery Call Girls In Sikandarpur Gurgaon ❤️8448577510 ⊹Escorts...
Only Cash On Delivery Call Girls In Sikandarpur Gurgaon ❤️8448577510 ⊹Escorts...Only Cash On Delivery Call Girls In Sikandarpur Gurgaon ❤️8448577510 ⊹Escorts...
Only Cash On Delivery Call Girls In Sikandarpur Gurgaon ❤️8448577510 ⊹Escorts...
 
QSM Chap 10 Service Culture in Tourism and Hospitality Industry.pptx
QSM Chap 10 Service Culture in Tourism and Hospitality Industry.pptxQSM Chap 10 Service Culture in Tourism and Hospitality Industry.pptx
QSM Chap 10 Service Culture in Tourism and Hospitality Industry.pptx
 
Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1Katrina Personal Brand Project and portfolio 1
Katrina Personal Brand Project and portfolio 1
 
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...
 
Berhampur CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Berhampur CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGBerhampur CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Berhampur CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
 
Lucknow Housewife Escorts by Sexy Bhabhi Service 8250092165
Lucknow Housewife Escorts  by Sexy Bhabhi Service 8250092165Lucknow Housewife Escorts  by Sexy Bhabhi Service 8250092165
Lucknow Housewife Escorts by Sexy Bhabhi Service 8250092165
 
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
Lundin Gold - Q1 2024 Conference Call Presentation (Revised)
 
Nanded Call Girl Just Call 8084732287 Top Class Call Girl Service Available
Nanded Call Girl Just Call 8084732287 Top Class Call Girl Service AvailableNanded Call Girl Just Call 8084732287 Top Class Call Girl Service Available
Nanded Call Girl Just Call 8084732287 Top Class Call Girl Service Available
 

A I R Presentation Dev Camp Feb 08

  • 1. Adobe Integrate Runtime (AIR) RIA on Desktop Abdul Qabiz http://linkedin.com/in/abdulqabiz Adobe and Adobe AIR are either the registered trademark or trademark of Adobe Systems Incorporated in the United States and/or other countries.
  • 2. Desktop Apps? Use-cases Desktop is still important We still use those most of times Some data still on Desktop We are not always connected Some of us are occasionally-connected Current Issues Smart developers moved to Web :-) Gap between Web and Desktop Development requires special skills Hard to update/patch Bandwidth costs :-)
  • 3. Topics Introduction Examples Development SDK/IDE/Tools Frameworks Security Installation/Deployment More Examples Q/A
  • 5. AIR: Some more features Native Windows/Menus Clipboard (read/write) Command-line arugements Launch on Login ( != startup) File associations (mime type handlers) Tracking user presence (idle timeout, etc) Taskbar/Dock icons Application termination Inter application communication Application updates DRM ;-) Encrypted storage (uses Keychain or DPAPI - AES-CBC 128-bit)
  • 7. AIR: Development Tools AIR SDK - compiler/debugger/packager Aptana (Eclipse-based) for AJAX apps Adobe FlexBuilder for Flex/Flash apps Frameworks No special requirement for AIR Generally, we use these for web-apps YUI, ExtJs, Dojo, Prototype, etc - Any AJAX framework* Adobe Flex Framework (Flex/Flash)
  • 8. AIR: Development AJAX app structure Structure - HTML Presentation - CSS Behaviour - JS Assets - images, swf, flv, etc application descriptor (application.xml) - XML Flex/Flash app structure Application - .swf Libs/modules - .swf Assets - images, swf, flv, etc application descriptor (application.xml) - XML
  • 9. AIR: Descriptor format <?xml version=quot;1.0quot; encoding=quot;utf-8quot; ?> <application xmlns=quot;http://ns.adobe.com/air/application/1.0quot;>     <id>com.abdulqabiz.air.BloglinesReader</id>     <name>Bloglines Reader</name>     <version>1.0</version>     <filename>BloglinesReader</filename>     <description>An offline Bloglines reader with lots of features.</description>     <initialWindow>         <title>Bloglines Reader</title>         <content>root.html</content>         <systemChrome>standard</systemChrome>         <transparent>false</transparent>         <visible>true</visible>         <width>640</width>         <height>480</height>         <minimizable>true</minimizable>         <maximizable>false</maximizable>         <minSize>320 240</minSize>         <maxSize>800 600</maxSize>           </initialWindow>     <icon>         <image16x16>icons/AIRApp_16.png</image16x16>              <image32x32>icons/AIRApp_32.png</image32x32>              <image48x48>icons/AIRApp_48.png</image48x48>              <image128x128>icons/AIRApp_128.png</image128x128>     </icon> </application>
  • 10. AIR: Security - Sandbox types There are different sandbox types: application assigned to all the files in app directory remote Files from Internet URI local-trusted trusted local .swf can acces local and remote but doesn't have all AIR privileges. local-with-networking local .swf (published with -use-network flag) can communicate with remote only. local-with-filesystem local file (.swf, .js, .htm, etc) can read local but not remote.
  • 11. AIR: Security - AJAX application non-application (classic) AIR API allowed No access to AIR API XHR - all domains XHR - same domain, can be Limited eval () - only JSON allowed to all domains literals Window.open (..) work in Limited dynamic code response of user-triggered generation event. javascript:<code> AJAX frameworks would innerHtml work outerHtml CSS/frame/iframe/image dynamic-script/script-src loading setInterval/setTimeOut (quot;x=4quot;, 1000) AJAX frameworks might break
  • 12. AIR: Security - Sandbox bridging Without bridge With bridge
  • 13. AIR: Security: Sandbox Bridging <html> <head> <title>Simple test</title> <script type=quot;text/javascriptquot; src=quot;AIRAliases.jsquot;></script> <script type=quot;text/javascriptquot;> var Exposed = {}; Exposed.trace = function(str) { air.trace(str); } Exposed.readApplicationDescriptorFile = function() { var content; //set content to descriptor content return content; } function doLoad() { document.getElementById('UI').contentWindow.parentSandboxBridge = Exposed; } </script> </head> <body onload=quot;doLoad();quot;> <iframe id=quot;UIquot; src=quot;ui.htmlquot; sandboxRoot=quot;http://SomeRemoteDomain.com/quot; documentRoot=quot;app:/quot; </iframe> </body> </html>
  • 14. AIR: Security: Sandbox Bridging <html> <head> <title>UI</title> <script type=quot;text/javascriptquot;> var Exposed = {}; Exposed.trace = function(str) { air.trace(str); } function doLoad() { childSandboxBridge = Exposed; } </script> </head> <body onload=quot;doLoad();quot;> <h3>Browser Sandbox Content</h3> <ul> <input type=quot;buttonquot; onclick=quot;alert(parentSandboxBridge.readApplicationDescriptorFile())quot; value=quot;Call the exposed function for reading application.xmlquot;/> </ul> </body> </html>
  • 15. AIR: Installation Seamless install installs AIR, if not found requires Flash Player Manual Install download .air file and run it. AIR needs to be installed before that. Package AIR (the runtime) and App together?
  • 16. AIR: Installation: Experience Installation experience is consistent, it can not be modified by the developer.
  • 17. AIR: Deployment AIR apps are deployed as .air file Created using adt (the packager) .air files need to be digitally signed Certificates could be: Self-signed - created using adt Verisign or Thawte Badge-installer (widget for web-site) Version (in application.xml) - choose a right scheme Helps while updating app
  • 18. AIR: Some best practices Be responsible - You have more privileges FileSystem, etc. Try not to store sensitive data on client If you have to, encrypt it Structure application properly Only keep trusted files in application sandbox Keep UI or other files in different sandbox Digitally sign .air files use Verisign or Thawte certificates
  • 19. AIR: Some more examples
  • 20. AIR: Q/A That's it for now, you got the idea :-) Q/A?