SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
FRESH AIR: Developing AIR
          applications with Aptana Studio
                                   Mark Drew
             4th-6th June 2008
             Edinburgh, Scotland

Friday, 6 June 2008                            1
What’s this about then?
                      •   Getting a “breath” of AIR (Adobe’s Integrated
                          Runtime)

                      •   Getting Aptana Studio up and running for AIR
                          development

                      •   Writing a real application using technologies
                          ColdFusion developers already know: JavaScript
                          (JQuery) and HTML

                      •   Mainly a coding demo (so you might want to
                          move closer rather than going blind)
Friday, 6 June 2008                                                        2
What’s this not about?

                      •   Using FlexBuilder or CFEclipse

                      •   Writing ColdFusion

                      •   Open Sourcing a CFML Engine

                      •   A JQuery tutorial (although I shall
                          show you some of what it can do)

                      •   A slide rich environment. (sorry if
                          you like looking at pretty slides)


Friday, 6 June 2008                                             3
Who is Mark Drew?
              •       CFEclipse’s Lead Developer

              •       Product Manager at Design UK
                      http://www.designuk.com

              •       LavaSuite Content Management System

              •       UK ColdFusion User Group’s Co-Manager

              •       A ColdFusion Developer since ‘97 and Web
                      developer since ‘94

              •       An occasional presenter on topics such as
                      CFEclipse, ColdFusion, Ajax, ColdSpring and
                      ModelGlue

              •       A guy with very little ‘air

Friday, 6 June 2008                                                 4
Top Secret

                      • Don’t tell anyone but....
                      • This is only my second AIR
                        application.
                      • So don’t laugh.
                      • Be kind.

Friday, 6 June 2008                                  5
What is AIR?
                      •   Bringing Rich Internet Applications
                          (RIAs) to the desktop

                      •   Flex/Flash and HTML/JavaScript on
                          the Desktop

                      •   Mac/PC and soon Linux

                      •   Provides access to the filesystem,
                          SQL light database, network
                          functions, custom chrome, drag and
                          drop and more...

                      •   How can we build these applications?


Friday, 6 June 2008                                              6
Flex, Flash or HTML?




Friday, 6 June 2008                          7
Use what you know

                      • As a web developer you can leverage your
                        current knowledge
                      • HTML, JavaScript, JavaScript libraries
                      • Use your weapons of choice


Friday, 6 June 2008                                                8
Enter: Aptana Studio
                      • HTML, JavaScript, SQL, CSS,
                        XML, etc IDE
                      • AutoMagically handles *most*
                        JavaScript libraries
                      • Develop iPhone, PHP and
                        RoR Applications
                      • ... and of course, HTML AIR
                        applications

Friday, 6 June 2008                                    9
Before we go, JQuery!
                      •   JavaScript framework with a difference

                      •   Its a fast, concise way to access the DOM and
                          perform manipulations, transformations,
                          animations and Ajax

                      •   Uses the CSS selector syntax to get objects

                      •   E.g.
                          $(“.someclass #withID”).text();

                          $("p.surprise").addClass("ohmy").show("slow");




Friday, 6 June 2008                                                        10
JQuery Demo




                      Paperclip and chewing gum not required
Friday, 6 June 2008                                            11
Back on topic with AIR

                      • Will be building an
                        application from
                        scratch...
                      • Well no, there will be
                        one I prepared earlier




Friday, 6 June 2008                              12
What are we going to
                             build?
                             • YafTc
                             • (Yet another funky Twitter
                               client)
                             • Uses Twitter’s JSON API to
                               get and send messages
                             • Uses features of AIR as a
                               client
                             • Stores and Sends offline
                               messages
Friday, 6 June 2008                                         13
Installation
          •       Install Aptana Studio
                  (http://www.aptana.com/studio)

          •       Install AIR and AIR SDK
                  (http://www.adobe.com/
                  products/air/)

          •       Install Aptana’s AIR Plugin using
                  the IDE’s Homepage




Friday, 6 June 2008                                   14
Building our Application

              • Create a new AIR Application
              • Choose the window options
              • Add application icons
              • Choose the JavaScript library

Friday, 6 June 2008                             15
Getting the UI ready
       • Copy over all the images/
               styles
       • Changing the Chrome in
               Application.xml
             • Custom
             • Sizes
       • Changing the Transparency
Friday, 6 June 2008                          16
Adding Window
                                   Controls
       • Move:              nativeWindow.startMove();


       • Minimize:                 window.nativeWindow.minimize();


       • Close:var closing = new air.Event(air.Event.CLOSING, true, true);


   	           window.nativeWindow.dispatchEvent(closing);
   	           if(!closing.isDefaultPrevented()){
   	               nativeWindow.close();
   	           }




       • Resize:
               window.nativeWindow.startResize(air.NativeWindowResize.BOTTOM_RIGHT);




Friday, 6 June 2008                                                                    17
Checking Network
                              Status
                      • Add servicemonitor.swf
                      • setup our request
                      • add a monitor
                      • add a listener to
                        air.Event.NETWORK_CHANGE
                      • Respond to changes
Friday, 6 June 2008                                18
Get external data

                      • JavaScript is sandboxed in browsers
                      • AIR has a different set of sandbox rules.
                      • Main change is that we can access external
                        websites via AJAX
                      • Lets do that!

Friday, 6 June 2008                                                  19
Send External Data

                      • Send messages to twitter, update them of
                        our status!
                      • Posting AJAX(AJAJ really) to a remote
                        server




Friday, 6 June 2008                                                20
Saving to the file
                                system
                      • Messages need to be stored when you are
                        not online
                      • When you go back online, we need to send
                        the messages
                      • Lets add some File IO Functionality

Friday, 6 June 2008                                                21
And its that easy!




Friday, 6 June 2008                        22
Finally...

                      • You know how to get the tools to develop
                        AIR Applications
                      • You can leverage your existing knowledge
                        to build desktop apps
                      • You saw how to create a fairly complex AIR
                        application



Friday, 6 June 2008                                                  23
Q&A

                      • mark.drew@gmail.com
                      • Mark Drew http://www.markdrew.co.uk
                      • Aptana http://www.aptana.com
                      • Adobe AIR http://www.adobe.com/air/


Friday, 6 June 2008                                           24

Mais conteúdo relacionado

Mais procurados

Overview of DroidCon UK 2015
Overview of DroidCon UK 2015 Overview of DroidCon UK 2015
Overview of DroidCon UK 2015 Elif Boncuk
 
T 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By GwtT 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By Gwtsupertoy2015
 
Building an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developersBuilding an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developerskim.mens
 
OPS4J Pax Tools - Kickstart your OSGi Adventure
OPS4J Pax Tools - Kickstart your OSGi AdventureOPS4J Pax Tools - Kickstart your OSGi Adventure
OPS4J Pax Tools - Kickstart your OSGi AdventureToni Menzel
 
Designing Puppet: Roles/Profiles Pattern
Designing Puppet: Roles/Profiles PatternDesigning Puppet: Roles/Profiles Pattern
Designing Puppet: Roles/Profiles PatternPuppet
 
Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Johan Mynhardt
 
Unobtrusive JavaScript with jQuery
Unobtrusive JavaScript with jQueryUnobtrusive JavaScript with jQuery
Unobtrusive JavaScript with jQuerySimon Willison
 
DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11DaliaAboSheasha
 

Mais procurados (11)

Overview of DroidCon UK 2015
Overview of DroidCon UK 2015 Overview of DroidCon UK 2015
Overview of DroidCon UK 2015
 
T 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By GwtT 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By Gwt
 
Building an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developersBuilding an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developers
 
OPS4J Pax Tools - Kickstart your OSGi Adventure
OPS4J Pax Tools - Kickstart your OSGi AdventureOPS4J Pax Tools - Kickstart your OSGi Adventure
OPS4J Pax Tools - Kickstart your OSGi Adventure
 
Designing Puppet: Roles/Profiles Pattern
Designing Puppet: Roles/Profiles PatternDesigning Puppet: Roles/Profiles Pattern
Designing Puppet: Roles/Profiles Pattern
 
Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)Maven: from Scratch to Production (.pdf)
Maven: from Scratch to Production (.pdf)
 
Maven
MavenMaven
Maven
 
01-a-Intro-BetterDev
01-a-Intro-BetterDev01-a-Intro-BetterDev
01-a-Intro-BetterDev
 
Eclipse e4
Eclipse e4Eclipse e4
Eclipse e4
 
Unobtrusive JavaScript with jQuery
Unobtrusive JavaScript with jQueryUnobtrusive JavaScript with jQuery
Unobtrusive JavaScript with jQuery
 
DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11
 

Destaque

An%20Intermediate%20Google%20SketchUp%20Tutorial%20-%20Part%203
An%20Intermediate%20Google%20SketchUp%20Tutorial%20-%20Part%203An%20Intermediate%20Google%20SketchUp%20Tutorial%20-%20Part%203
An%20Intermediate%20Google%20SketchUp%20Tutorial%20-%20Part%203tutorialsruby
 
Informing Faculty Case Template
Informing Faculty Case TemplateInforming Faculty Case Template
Informing Faculty Case Templatetutorialsruby
 
M Y S P I R I T U A L Q U E S T O N D R
M Y  S P I R I T U A L  Q U E S T O N   D RM Y  S P I R I T U A L  Q U E S T O N   D R
M Y S P I R I T U A L Q U E S T O N D Rdrsolapurkar
 

Destaque (6)

An%20Intermediate%20Google%20SketchUp%20Tutorial%20-%20Part%203
An%20Intermediate%20Google%20SketchUp%20Tutorial%20-%20Part%203An%20Intermediate%20Google%20SketchUp%20Tutorial%20-%20Part%203
An%20Intermediate%20Google%20SketchUp%20Tutorial%20-%20Part%203
 
rails.html
rails.htmlrails.html
rails.html
 
Informing Faculty Case Template
Informing Faculty Case TemplateInforming Faculty Case Template
Informing Faculty Case Template
 
p10
p10p10
p10
 
M Y S P I R I T U A L Q U E S T O N D R
M Y  S P I R I T U A L  Q U E S T O N   D RM Y  S P I R I T U A L  Q U E S T O N   D R
M Y S P I R I T U A L Q U E S T O N D R
 
M.S.Transcript
M.S.TranscriptM.S.Transcript
M.S.Transcript
 

Semelhante a FreshAir2008

Enterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScriptEnterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScriptTroy Miles
 
Infinite Scale - Introduction to Google App Engine
Infinite Scale - Introduction to Google App EngineInfinite Scale - Introduction to Google App Engine
Infinite Scale - Introduction to Google App EngineMarian Borca
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsC4Media
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGuillaume Laforge
 
Devfest09 App Engine Java
Devfest09  App Engine  JavaDevfest09  App Engine  Java
Devfest09 App Engine JavaChris Schalk
 
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014Gil Irizarry
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy VirinCocoaHeads France
 
Rapid Application Development on Google App Engine for Java
Rapid Application Development on Google App Engine for JavaRapid Application Development on Google App Engine for Java
Rapid Application Development on Google App Engine for JavaKunal Dabir
 
How to Build Single Page HTML5 Apps that Scale
How to Build Single Page HTML5 Apps that ScaleHow to Build Single Page HTML5 Apps that Scale
How to Build Single Page HTML5 Apps that ScalePhil Leggetter
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperMike Melusky
 
Microsoft power point automation-opensourcetestingtools_matrix-1
Microsoft power point   automation-opensourcetestingtools_matrix-1Microsoft power point   automation-opensourcetestingtools_matrix-1
Microsoft power point automation-opensourcetestingtools_matrix-1tactqa
 
Microsoft power point automation-opensourcetestingtools_matrix-1
Microsoft power point   automation-opensourcetestingtools_matrix-1Microsoft power point   automation-opensourcetestingtools_matrix-1
Microsoft power point automation-opensourcetestingtools_matrix-1tactqa
 
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)Murat Yener
 
OSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon KaegiOSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon Kaegimfrancis
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperMike Melusky
 
GWT HJUG Presentation
GWT HJUG PresentationGWT HJUG Presentation
GWT HJUG PresentationDerrick Bowen
 
Make Mobile Apps Quickly
Make Mobile Apps QuicklyMake Mobile Apps Quickly
Make Mobile Apps QuicklyGil Irizarry
 
2011 june-kuala-lumpur-gtug-hackathon
2011 june-kuala-lumpur-gtug-hackathon2011 june-kuala-lumpur-gtug-hackathon
2011 june-kuala-lumpur-gtug-hackathonikailan
 
Red Dirt Ruby Conference
Red Dirt Ruby ConferenceRed Dirt Ruby Conference
Red Dirt Ruby ConferenceJohn Woodell
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
 

Semelhante a FreshAir2008 (20)

Enterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScriptEnterprise Strength Mobile JavaScript
Enterprise Strength Mobile JavaScript
 
Infinite Scale - Introduction to Google App Engine
Infinite Scale - Introduction to Google App EngineInfinite Scale - Introduction to Google App Engine
Infinite Scale - Introduction to Google App Engine
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
 
Devfest09 App Engine Java
Devfest09  App Engine  JavaDevfest09  App Engine  Java
Devfest09 App Engine Java
 
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
Make Cross-platform Mobile Apps Quickly - SIGGRAPH 2014
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy Virin
 
Rapid Application Development on Google App Engine for Java
Rapid Application Development on Google App Engine for JavaRapid Application Development on Google App Engine for Java
Rapid Application Development on Google App Engine for Java
 
How to Build Single Page HTML5 Apps that Scale
How to Build Single Page HTML5 Apps that ScaleHow to Build Single Page HTML5 Apps that Scale
How to Build Single Page HTML5 Apps that Scale
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and Dapper
 
Microsoft power point automation-opensourcetestingtools_matrix-1
Microsoft power point   automation-opensourcetestingtools_matrix-1Microsoft power point   automation-opensourcetestingtools_matrix-1
Microsoft power point automation-opensourcetestingtools_matrix-1
 
Microsoft power point automation-opensourcetestingtools_matrix-1
Microsoft power point   automation-opensourcetestingtools_matrix-1Microsoft power point   automation-opensourcetestingtools_matrix-1
Microsoft power point automation-opensourcetestingtools_matrix-1
 
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
Eclipse Orion: The IDE in the Clouds (JavaOne 2013)
 
OSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon KaegiOSGi and JavaScript - Simon Kaegi
OSGi and JavaScript - Simon Kaegi
 
Effective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and DapperEffective .NET Core Unit Testing with SQLite and Dapper
Effective .NET Core Unit Testing with SQLite and Dapper
 
GWT HJUG Presentation
GWT HJUG PresentationGWT HJUG Presentation
GWT HJUG Presentation
 
Make Mobile Apps Quickly
Make Mobile Apps QuicklyMake Mobile Apps Quickly
Make Mobile Apps Quickly
 
2011 june-kuala-lumpur-gtug-hackathon
2011 june-kuala-lumpur-gtug-hackathon2011 june-kuala-lumpur-gtug-hackathon
2011 june-kuala-lumpur-gtug-hackathon
 
Red Dirt Ruby Conference
Red Dirt Ruby ConferenceRed Dirt Ruby Conference
Red Dirt Ruby Conference
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 

Mais de tutorialsruby

<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>tutorialsruby
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>tutorialsruby
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269tutorialsruby
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008tutorialsruby
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008tutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheetstutorialsruby
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheetstutorialsruby
 

Mais de tutorialsruby (20)

<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>TopStyle Help & <b>Tutorial</b>
TopStyle Help & <b>Tutorial</b>
 
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
The Art Institute of Atlanta IMD 210 Fundamentals of Scripting <b>...</b>
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0Standardization and Knowledge Transfer – INS0
Standardization and Knowledge Transfer – INS0
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml_basics
xhtml_basicsxhtml_basics
xhtml_basics
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
xhtml-documentation
xhtml-documentationxhtml-documentation
xhtml-documentation
 
CSS
CSSCSS
CSS
 
CSS
CSSCSS
CSS
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa0602690047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
0047ecaa6ea3e9ac0a13a2fe96f4de3bfd515c88f5d90c1fae79b956363d7f02c7fa060269
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
HowTo_CSS
HowTo_CSSHowTo_CSS
HowTo_CSS
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
BloggingWithStyle_2008
BloggingWithStyle_2008BloggingWithStyle_2008
BloggingWithStyle_2008
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 
cascadingstylesheets
cascadingstylesheetscascadingstylesheets
cascadingstylesheets
 

Último

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
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
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"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
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Último (20)

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
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
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
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)
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"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
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

FreshAir2008

  • 1. FRESH AIR: Developing AIR applications with Aptana Studio Mark Drew 4th-6th June 2008 Edinburgh, Scotland Friday, 6 June 2008 1
  • 2. What’s this about then? • Getting a “breath” of AIR (Adobe’s Integrated Runtime) • Getting Aptana Studio up and running for AIR development • Writing a real application using technologies ColdFusion developers already know: JavaScript (JQuery) and HTML • Mainly a coding demo (so you might want to move closer rather than going blind) Friday, 6 June 2008 2
  • 3. What’s this not about? • Using FlexBuilder or CFEclipse • Writing ColdFusion • Open Sourcing a CFML Engine • A JQuery tutorial (although I shall show you some of what it can do) • A slide rich environment. (sorry if you like looking at pretty slides) Friday, 6 June 2008 3
  • 4. Who is Mark Drew? • CFEclipse’s Lead Developer • Product Manager at Design UK http://www.designuk.com • LavaSuite Content Management System • UK ColdFusion User Group’s Co-Manager • A ColdFusion Developer since ‘97 and Web developer since ‘94 • An occasional presenter on topics such as CFEclipse, ColdFusion, Ajax, ColdSpring and ModelGlue • A guy with very little ‘air Friday, 6 June 2008 4
  • 5. Top Secret • Don’t tell anyone but.... • This is only my second AIR application. • So don’t laugh. • Be kind. Friday, 6 June 2008 5
  • 6. What is AIR? • Bringing Rich Internet Applications (RIAs) to the desktop • Flex/Flash and HTML/JavaScript on the Desktop • Mac/PC and soon Linux • Provides access to the filesystem, SQL light database, network functions, custom chrome, drag and drop and more... • How can we build these applications? Friday, 6 June 2008 6
  • 7. Flex, Flash or HTML? Friday, 6 June 2008 7
  • 8. Use what you know • As a web developer you can leverage your current knowledge • HTML, JavaScript, JavaScript libraries • Use your weapons of choice Friday, 6 June 2008 8
  • 9. Enter: Aptana Studio • HTML, JavaScript, SQL, CSS, XML, etc IDE • AutoMagically handles *most* JavaScript libraries • Develop iPhone, PHP and RoR Applications • ... and of course, HTML AIR applications Friday, 6 June 2008 9
  • 10. Before we go, JQuery! • JavaScript framework with a difference • Its a fast, concise way to access the DOM and perform manipulations, transformations, animations and Ajax • Uses the CSS selector syntax to get objects • E.g. $(“.someclass #withID”).text(); $("p.surprise").addClass("ohmy").show("slow"); Friday, 6 June 2008 10
  • 11. JQuery Demo Paperclip and chewing gum not required Friday, 6 June 2008 11
  • 12. Back on topic with AIR • Will be building an application from scratch... • Well no, there will be one I prepared earlier Friday, 6 June 2008 12
  • 13. What are we going to build? • YafTc • (Yet another funky Twitter client) • Uses Twitter’s JSON API to get and send messages • Uses features of AIR as a client • Stores and Sends offline messages Friday, 6 June 2008 13
  • 14. Installation • Install Aptana Studio (http://www.aptana.com/studio) • Install AIR and AIR SDK (http://www.adobe.com/ products/air/) • Install Aptana’s AIR Plugin using the IDE’s Homepage Friday, 6 June 2008 14
  • 15. Building our Application • Create a new AIR Application • Choose the window options • Add application icons • Choose the JavaScript library Friday, 6 June 2008 15
  • 16. Getting the UI ready • Copy over all the images/ styles • Changing the Chrome in Application.xml • Custom • Sizes • Changing the Transparency Friday, 6 June 2008 16
  • 17. Adding Window Controls • Move: nativeWindow.startMove(); • Minimize: window.nativeWindow.minimize(); • Close:var closing = new air.Event(air.Event.CLOSING, true, true); window.nativeWindow.dispatchEvent(closing); if(!closing.isDefaultPrevented()){ nativeWindow.close(); } • Resize: window.nativeWindow.startResize(air.NativeWindowResize.BOTTOM_RIGHT); Friday, 6 June 2008 17
  • 18. Checking Network Status • Add servicemonitor.swf • setup our request • add a monitor • add a listener to air.Event.NETWORK_CHANGE • Respond to changes Friday, 6 June 2008 18
  • 19. Get external data • JavaScript is sandboxed in browsers • AIR has a different set of sandbox rules. • Main change is that we can access external websites via AJAX • Lets do that! Friday, 6 June 2008 19
  • 20. Send External Data • Send messages to twitter, update them of our status! • Posting AJAX(AJAJ really) to a remote server Friday, 6 June 2008 20
  • 21. Saving to the file system • Messages need to be stored when you are not online • When you go back online, we need to send the messages • Lets add some File IO Functionality Friday, 6 June 2008 21
  • 22. And its that easy! Friday, 6 June 2008 22
  • 23. Finally... • You know how to get the tools to develop AIR Applications • You can leverage your existing knowledge to build desktop apps • You saw how to create a fairly complex AIR application Friday, 6 June 2008 23
  • 24. Q&A • mark.drew@gmail.com • Mark Drew http://www.markdrew.co.uk • Aptana http://www.aptana.com • Adobe AIR http://www.adobe.com/air/ Friday, 6 June 2008 24