Building Rich Applications with Appcelerator

Matt Raible
Matt RaibleWeb Developer, Java Champion, and Developer Advocate at Okta
Building Rich Applications
    with Appcelerator
             Matt Raible
     Colorado Software Summit 2008
         http://www.linkedin.com/in/mraible
Introductions

  Your experience with web
  applications?
  Have you heard of SOFEA
  or SOUI?
  Experience with RIA
  Frameworks?
  What do you want to get from this session?
Who is Matt Raible?
  Java Blogger since 2002
  Power user of Java Frameworks
  Author of Spring Live and Pro JSP 2.0
  Founder of AppFuse (http://appfuse.org)
  Lead UI Architect at LinkedIn
  Father, Skier, Cyclist and Beer Connoisseur
  http://www.linkedin.com/in/mraible
The Problem
How do you choose?
Eliminate, Don’t Include



   It’s not about including
       choices, it’s about
       eliminating them.
Building Rich Applications with Appcelerator
Session Agenda

  SOFEA and SOUI
  Appcelerator Overview
   Creating a Project
   Application Demo
  Comparison with Flex and GWT
  Conclusion and Q & A
SOFEA and SOUI

  SOFEA first introduced in Life above the
  Service Tier on 10/12/2007.
    http://www.theserverside.com/news/
    thread.tss?thread_id=47213
  SOUI introduced by Nolan Wright and Jeff
  Haynie in early November 2007.
    http://www.infoq.com/news/2007/11/soui-
    death-of-mvc2
SOFEA and SOUI, cont.

  SOFEA Authors have since formed the Thin
  Server Architecture Working Group.
    http://www.thinserverarchitecture.com
  Nolan and Jeff developed Appcelerator.
    http://www.appcelerator.org
SOFEA Principles
  Decouple the three orthogonal Presentation Tier processes
  of Application Download, Presentation Flow and
  Data Interchange. This is the foundational principle of
  SOFEA.
  Explore various Application Download options to exploit
  usefully contrary trade-offs around client footprint, startup
  time, offline capability and a number of security-related
  parameters.
  Presentation Flow must be driven by a client-side
  component and never by a server-side component.
  Data Interchange between the Presentation Tier and the
  Service Tier must not become the weakest link in the end-
  to-end application chain of data integrity.
Building Rich Applications with Appcelerator
Recommended Frameworks

  DHTML/AJAX frameworks for Modern Browsers
     Largely handcoded with third party JavaScript libraries
     Google Web Toolkit 
     TIBCO General Interface Builder
  XML Dialects for Advanced Browsers
     XForms and XHTML 2.0
     Mozilla XUL
     Microsoft SilverLight/XAML
  Java frameworks
     Java WebStart (with/without Spring Rich Client)
     JavaFX
  Adobe Flash­based frameworks
     Adobe Flex
     OpenLaszlo
Appcelerator

  Message Oriented Architecture
  Web Expression Language
  Widget Framework
  Integrated Services Platform
    SOA Integration points for Java, Ruby,
    PHP, .NET, Python and Perl
SOA in the Browser
Web Expression Language

  Widget Syntax




  Web Expression Language Syntax




  http://try.appcelerator.org
Widgets




   http://doc.appcelerator.org/reference/widget_reference/index.html
Service Platform

public class LoginService {

    @Service(request = quot;login.requestquot;, response = quot;login.responsequot;)
    protected void login(Message request, Message response)
              throws Exception
    {
	   	  // get request data
	   	  String username = request.getData().getString(quot;usernamequot;);
	   	  String password = request.getData().getString(quot;passwordquot;);




          Also has Service Integration Points for
          PHP, Ruby, .NET, Python and Perl.
Other Examples

  appTunes - widget that wraps Flex Cover
  Flow widget
  Snappshot - photo editing application
  Radio Javan - Persian music online
  SkyBlox - builds neighborhoods
  More at http://www.appcelerator.org/demos
Creating a Project
  Download and install from
  http://appcelerator.org/download
  app create:project directory project_name
  java
  app run:project
  Go to http://localhost:4000
  To create a war, run ant
Directory Structure



              →
Application Demo
Get the Source

https://svn.appcelerator.org/appcelerator_sdk/trunk/
https://svn.appcelerator.org/appcelerator_ide/trunk/
https://svn.appcelerator.org/appcelerator_doc/trunk/
https://svn.appcelerator.org/appcelerator_examples/
trunk/
Comparing RIA Frameworks
Adobe Flex
  http://www.adobe.com/products/flex
  Flex SDK under Mozilla Public License
  Active Community
    Yahoo Group: http://tech.groups.yahoo.com/group/
    flexcoders
    User Groups: http://flex.org/usergroups_list
  360|Flex
  Recommended Books
    Flexible Rails by Peter Armstrong
    Flex 3 in Action by Tariq Ahmed
    Flex on Java by Allmon and Anderson
Google Web Toolkit
  http://code.google.com/webtoolkit
  Apache 2.0 License
  Active Community
    http://groups.google.com/group/Google-Web-Toolkit
  Pearson’s Google Web Toolkit Conference and Google I/O
  Recommended Books
    GWT in Action by Hanson and Tacy
    GWT in Practice by Cooper and Collins
    Google Web Toolkit Solutions by Geary and Gordon
Appcelerator

  http://appcelerator.org
  Apache 2.0 License
  Active Community
    http://www.appcelerator.org/groups
  No Conference
  No Books
Adobe Flex
  Pros
   Produces Flash UI
   Funded by Adobe
   Has many successful client stories
   Supports REST easily
  Cons
   Not Search Engine Friendly
   Doesn’t render HTML content well
   Doesn’t print well by default
GWT
 Pros
  Write Java ➟ Produces JavaScript
  Vibrant Community
  Zero Turnaround in Hosted Mode
 Cons
  Only good for Java Developers
  Doesn’t support REST very well
  Operates within the confines of the
  browser’s JavaScript sandbox
Appcelerator

  Pros
   Easy to Author
   Good Documentation
   Java, Ruby, PHP, .NET or Python
  Cons
   Not Widely Used
   Creating an application requires registration
   Not a Full-Stack Framework
Flex vs. JavaScript
   http://anthonyfranco.wordpress.com/
   2007/06/22/flex-and-ajax-friends-or-foes
   Use the Best Tool for the Job
     Open Web: Ajax
     Video and Rich Media: Flex
     HTML Rendering: Ajax
     Vector Graphics and Bitmap Manipulation:
     Flex
     Accessibility: Flex
Flex vs. Ajax Performance




         http://www.jamesward.com/census
Jobs
            GWT          Flex        Ajax        Flash


       90




       60




       30




        0
            Monster.com - 100 miles of Denver, Colorado
Skills from My Network
           GWT      Flex        Ajax        Flash


     500



     375



     250



     125



       0
                 Located in or near 80210
Conclusion
  Appcelerator is easy if you like HTML and
  CSS, but don’t like JavaScript.
  Appcelerator is not a full-stack framework.
  Flex/Flash is not as restricted by the
  browser sandbox.
  Flex supports REST better.
  SOFEA UIs are fun to develop, but not for
  every application.
  Don’t Believe The Hype!
My Thoughts

  Flex or Ext JS when you have a REST
  backend
    REST backends are easy with Rails, Grails
    and Struts 2
  GWT if you’re a Swing or backend
  developer
  Appcelerator if you want to be language
  neutral or don’t like authoring JavaScript
Questions?


matt@raibledesigns.com
http://raibledesigns.com
http://twitter.com/mraible
Download Presentation
 http://raibledesigns.com/rd/page/publications
1 of 37

Recommended

Intro to Eclipse Che, by Tyler Jewell by
Intro to Eclipse Che, by Tyler JewellIntro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler Jewelljwi11iams
4.8K views22 slides
Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019 by
Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019
Appium Dockerization: from Scratch to Advanced Implementation - HUSTEF 2019Sargis Sargsyan
847 views56 slides
Introduction to Eclipse Che / EclipseCon 2014 by
Introduction to Eclipse Che / EclipseCon 2014Introduction to Eclipse Che / EclipseCon 2014
Introduction to Eclipse Che / EclipseCon 2014Florent BENOIT
1.4K views15 slides
An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE by
An Introduction to Eclipse Che - Next-Gen Eclipse Java IDEAn Introduction to Eclipse Che - Next-Gen Eclipse Java IDE
An Introduction to Eclipse Che - Next-Gen Eclipse Java IDEKubeAcademy
1.5K views19 slides
Get started with AAR by
Get started with AARGet started with AAR
Get started with AARRené Mertins
4.8K views35 slides
Agility Requires Safety by
Agility Requires SafetyAgility Requires Safety
Agility Requires SafetyYevgeniy Brikman
20.4K views176 slides

More Related Content

What's hot

Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017) by
Building a Spring Boot Application - Ask the Audience!  (from JavaLand 2017)Building a Spring Boot Application - Ask the Audience!  (from JavaLand 2017)
Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017)🎤 Hanno Embregts 🎸
738 views22 slides
From zero to hero with React Native! by
From zero to hero with React Native!From zero to hero with React Native!
From zero to hero with React Native!Commit University
1.3K views31 slides
React Native by
React NativeReact Native
React NativeFatih Şimşek
963 views18 slides
ReactJS by
ReactJSReactJS
ReactJSFatih Şimşek
331 views26 slides
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst... by
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...Wim Selles
143 views83 slides
12 Best Android Libraries to use in 2021 by
12 Best Android Libraries to use in 202112 Best Android Libraries to use in 2021
12 Best Android Libraries to use in 2021Mobcoder
23 views16 slides

What's hot(20)

Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017) by 🎤 Hanno Embregts 🎸
Building a Spring Boot Application - Ask the Audience!  (from JavaLand 2017)Building a Spring Boot Application - Ask the Audience!  (from JavaLand 2017)
Building a Spring Boot Application - Ask the Audience! (from JavaLand 2017)
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst... by Wim Selles
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
Wim Selles143 views
12 Best Android Libraries to use in 2021 by Mobcoder
12 Best Android Libraries to use in 202112 Best Android Libraries to use in 2021
12 Best Android Libraries to use in 2021
Mobcoder23 views
Infinum Android Talks #04 - How to publish an Android archive (.aar) to Maven... by Denis_infinum
Infinum Android Talks #04 - How to publish an Android archive (.aar) to Maven...Infinum Android Talks #04 - How to publish an Android archive (.aar) to Maven...
Infinum Android Talks #04 - How to publish an Android archive (.aar) to Maven...
Denis_infinum396 views
Extending Eclipse Che to build custom cloud IDEs by Florent BENOIT
Extending Eclipse Che to build custom cloud IDEsExtending Eclipse Che to build custom cloud IDEs
Extending Eclipse Che to build custom cloud IDEs
Florent BENOIT284 views
Code in the cloud with Eclipse Che and Docker by Florent BENOIT
Code in the cloud with Eclipse Che and DockerCode in the cloud with Eclipse Che and Docker
Code in the cloud with Eclipse Che and Docker
Florent BENOIT631 views
Continuous Integration for your Android projects by Sergii Zhuk
Continuous Integration for your Android projectsContinuous Integration for your Android projects
Continuous Integration for your Android projects
Sergii Zhuk3.5K views
Seven Simple Reasons to Use AppFuse by Matt Raible
Seven Simple Reasons to Use AppFuseSeven Simple Reasons to Use AppFuse
Seven Simple Reasons to Use AppFuse
Matt Raible2.1K views
Android + jenkins by Fred Lin
Android + jenkinsAndroid + jenkins
Android + jenkins
Fred Lin9.4K views
When Web meet Native App by Yu-Wei Chuang
When Web meet Native AppWhen Web meet Native App
When Web meet Native App
Yu-Wei Chuang14.6K views
Experiences building apps with React Native @DomCode 2016 by Adrian Philipp
Experiences building apps with React Native @DomCode 2016Experiences building apps with React Native @DomCode 2016
Experiences building apps with React Native @DomCode 2016
Adrian Philipp780 views
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi... by RianneEmbregts
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...
Building a Spring Boot 2 Application - Ask the Audience! (from Voxxed Days Vi...
RianneEmbregts13 views
Intro to react native by ModusJesus
Intro to react nativeIntro to react native
Intro to react native
ModusJesus11.4K views

Similar to Building Rich Applications with Appcelerator

Survey of restful web services frameworks by
Survey of restful web services frameworksSurvey of restful web services frameworks
Survey of restful web services frameworksVijay Prasad Gupta
16.2K views12 slides
Front End Development | Introduction by
Front End Development | IntroductionFront End Development | Introduction
Front End Development | IntroductionJohnTaieb
10.5K views37 slides
Evaluation Ria Frameworks by
Evaluation Ria FrameworksEvaluation Ria Frameworks
Evaluation Ria FrameworksRishi Singh
855 views15 slides
Web Frameworks of the Future by
Web Frameworks of the FutureWeb Frameworks of the Future
Web Frameworks of the Futureelliando dias
839 views37 slides
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour by
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourConvert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourBrian Culver
399 views22 slides
Rest overview briefing by
Rest  overview briefingRest  overview briefing
Rest overview briefing◄ vaquar khan ► ★✔
1K views37 slides

Similar to Building Rich Applications with Appcelerator(20)

Survey of restful web services frameworks by Vijay Prasad Gupta
Survey of restful web services frameworksSurvey of restful web services frameworks
Survey of restful web services frameworks
Vijay Prasad Gupta16.2K views
Front End Development | Introduction by JohnTaieb
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
JohnTaieb10.5K views
Evaluation Ria Frameworks by Rishi Singh
Evaluation Ria FrameworksEvaluation Ria Frameworks
Evaluation Ria Frameworks
Rishi Singh855 views
Web Frameworks of the Future by elliando dias
Web Frameworks of the FutureWeb Frameworks of the Future
Web Frameworks of the Future
elliando dias839 views
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour by Brian Culver
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourConvert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Brian Culver399 views
Introduction to Microsoft Silverlight by Glen Gordon
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft Silverlight
Glen Gordon854 views
SharePoint 2013 App Provisioning Models by Shailen Sukul
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning Models
Shailen Sukul7.8K views
Full Stack Web Development: Vision, Challenges and Future Scope by IRJET Journal
Full Stack Web Development: Vision, Challenges and Future ScopeFull Stack Web Development: Vision, Challenges and Future Scope
Full Stack Web Development: Vision, Challenges and Future Scope
IRJET Journal17 views
Afik Gal @alphageeks: Flex Intro by Alphageeks
Afik Gal @alphageeks: Flex IntroAfik Gal @alphageeks: Flex Intro
Afik Gal @alphageeks: Flex Intro
Alphageeks613 views
Flex In Dot Net by pradeepfdo
Flex In Dot NetFlex In Dot Net
Flex In Dot Net
pradeepfdo1K views
Developing Java Web Applications by hchen1
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
hchen116.4K views
Wso2 product release webinar introducing jaggery by WSO2
Wso2 product release webinar   introducing jaggeryWso2 product release webinar   introducing jaggery
Wso2 product release webinar introducing jaggery
WSO2930 views
Latest Web development technologies 2021 by SWATHYSMOHAN
 Latest Web development technologies 2021 Latest Web development technologies 2021
Latest Web development technologies 2021
SWATHYSMOHAN66 views
Java Development Company | Xicom by RyanForeman5
Java Development Company | XicomJava Development Company | Xicom
Java Development Company | Xicom
RyanForeman552 views
Uncovering Windows - Silverlight Seminar by Abram John Limpin
Uncovering Windows - Silverlight SeminarUncovering Windows - Silverlight Seminar
Uncovering Windows - Silverlight Seminar
Abram John Limpin1.1K views
SharePoint 2013 Apps and the App Model by James Tramel
SharePoint 2013 Apps and the App ModelSharePoint 2013 Apps and the App Model
SharePoint 2013 Apps and the App Model
James Tramel911 views

More from Matt Raible

Micro Frontends for Java Microservices - Belfast JUG 2022 by
Micro Frontends for Java Microservices - Belfast JUG 2022Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Matt Raible
26 views57 slides
Micro Frontends for Java Microservices - Dublin JUG 2022 by
Micro Frontends for Java Microservices - Dublin JUG 2022Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022Matt Raible
19 views56 slides
Micro Frontends for Java Microservices - Cork JUG 2022 by
Micro Frontends for Java Microservices - Cork JUG 2022Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022Matt Raible
7 views56 slides
Comparing Native Java REST API Frameworks - Seattle JUG 2022 by
Comparing Native Java REST API Frameworks - Seattle JUG 2022Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022Matt Raible
48 views87 slides
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022 by
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022Matt Raible
105 views42 slides
Comparing Native Java REST API Frameworks - Devoxx France 2022 by
Comparing Native Java REST API Frameworks - Devoxx France 2022Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022Matt Raible
130 views86 slides

More from Matt Raible(20)

Micro Frontends for Java Microservices - Belfast JUG 2022 by Matt Raible
Micro Frontends for Java Microservices - Belfast JUG 2022Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022
Matt Raible26 views
Micro Frontends for Java Microservices - Dublin JUG 2022 by Matt Raible
Micro Frontends for Java Microservices - Dublin JUG 2022Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022
Matt Raible19 views
Micro Frontends for Java Microservices - Cork JUG 2022 by Matt Raible
Micro Frontends for Java Microservices - Cork JUG 2022Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022
Matt Raible7 views
Comparing Native Java REST API Frameworks - Seattle JUG 2022 by Matt Raible
Comparing Native Java REST API Frameworks - Seattle JUG 2022Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Matt Raible48 views
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022 by Matt Raible
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Matt Raible105 views
Comparing Native Java REST API Frameworks - Devoxx France 2022 by Matt Raible
Comparing Native Java REST API Frameworks - Devoxx France 2022Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022
Matt Raible130 views
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne... by Matt Raible
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Matt Raible98 views
Java REST API Framework Comparison - PWX 2021 by Matt Raible
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021
Matt Raible148 views
Web App Security for Java Developers - PWX 2021 by Matt Raible
Web App Security for Java Developers - PWX 2021Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021
Matt Raible135 views
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ... by Matt Raible
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Matt Raible187 views
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker... by Matt Raible
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Matt Raible140 views
Web App Security for Java Developers - UberConf 2021 by Matt Raible
Web App Security for Java Developers - UberConf 2021Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021
Matt Raible152 views
Java REST API Framework Comparison - UberConf 2021 by Matt Raible
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021
Matt Raible150 views
Native Java with Spring Boot and JHipster - SF JUG 2021 by Matt Raible
Native Java with Spring Boot and JHipster - SF JUG 2021Native Java with Spring Boot and JHipster - SF JUG 2021
Native Java with Spring Boot and JHipster - SF JUG 2021
Matt Raible69 views
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin... by Matt Raible
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Matt Raible182 views
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021 by Matt Raible
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Matt Raible182 views
Get Hip with JHipster - Colorado Springs Open Source User Group 2021 by Matt Raible
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Matt Raible150 views
JHipster and Okta - JHipster Virtual Meetup December 2020 by Matt Raible
JHipster and Okta - JHipster Virtual Meetup December 2020JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020
Matt Raible226 views
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020 by Matt Raible
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Matt Raible433 views
Security Patterns for Microservice Architectures - SpringOne 2020 by Matt Raible
Security Patterns for Microservice Architectures - SpringOne 2020Security Patterns for Microservice Architectures - SpringOne 2020
Security Patterns for Microservice Architectures - SpringOne 2020
Matt Raible329 views

Recently uploaded

Future of AR - Facebook Presentation by
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentationssuserb54b561
15 views27 slides
NET Conf 2023 Recap by
NET Conf 2023 RecapNET Conf 2023 Recap
NET Conf 2023 RecapLee Richardson
10 views71 slides
STPI OctaNE CoE Brochure.pdf by
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdfmadhurjyapb
14 views1 slide
"Running students' code in isolation. The hard way", Yurii Holiuk by
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk Fwdays
17 views34 slides
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...James Anderson
92 views32 slides
Info Session November 2023.pdf by
Info Session November 2023.pdfInfo Session November 2023.pdf
Info Session November 2023.pdfAleksandraKoprivica4
13 views15 slides

Recently uploaded(20)

Future of AR - Facebook Presentation by ssuserb54b561
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
ssuserb54b56115 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb14 views
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays17 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson92 views
6g - REPORT.pdf by Liveplex
6g - REPORT.pdf6g - REPORT.pdf
6g - REPORT.pdf
Liveplex10 views
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely25 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10300 views
Voice Logger - Telephony Integration Solution at Aegis by Nirmal Sharma
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at Aegis
Nirmal Sharma39 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman36 views
Powerful Google developer tools for immediate impact! (2023-24) by wesley chun
Powerful Google developer tools for immediate impact! (2023-24)Powerful Google developer tools for immediate impact! (2023-24)
Powerful Google developer tools for immediate impact! (2023-24)
wesley chun10 views
Unit 1_Lecture 2_Physical Design of IoT.pdf by StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec12 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab21 views

Building Rich Applications with Appcelerator

  • 1. Building Rich Applications with Appcelerator Matt Raible Colorado Software Summit 2008 http://www.linkedin.com/in/mraible
  • 2. Introductions Your experience with web applications? Have you heard of SOFEA or SOUI? Experience with RIA Frameworks? What do you want to get from this session?
  • 3. Who is Matt Raible? Java Blogger since 2002 Power user of Java Frameworks Author of Spring Live and Pro JSP 2.0 Founder of AppFuse (http://appfuse.org) Lead UI Architect at LinkedIn Father, Skier, Cyclist and Beer Connoisseur http://www.linkedin.com/in/mraible
  • 5. How do you choose?
  • 6. Eliminate, Don’t Include It’s not about including choices, it’s about eliminating them.
  • 8. Session Agenda SOFEA and SOUI Appcelerator Overview Creating a Project Application Demo Comparison with Flex and GWT Conclusion and Q & A
  • 9. SOFEA and SOUI SOFEA first introduced in Life above the Service Tier on 10/12/2007. http://www.theserverside.com/news/ thread.tss?thread_id=47213 SOUI introduced by Nolan Wright and Jeff Haynie in early November 2007. http://www.infoq.com/news/2007/11/soui- death-of-mvc2
  • 10. SOFEA and SOUI, cont. SOFEA Authors have since formed the Thin Server Architecture Working Group. http://www.thinserverarchitecture.com Nolan and Jeff developed Appcelerator. http://www.appcelerator.org
  • 11. SOFEA Principles Decouple the three orthogonal Presentation Tier processes of Application Download, Presentation Flow and Data Interchange. This is the foundational principle of SOFEA. Explore various Application Download options to exploit usefully contrary trade-offs around client footprint, startup time, offline capability and a number of security-related parameters. Presentation Flow must be driven by a client-side component and never by a server-side component. Data Interchange between the Presentation Tier and the Service Tier must not become the weakest link in the end- to-end application chain of data integrity.
  • 13. Recommended Frameworks DHTML/AJAX frameworks for Modern Browsers Largely handcoded with third party JavaScript libraries Google Web Toolkit  TIBCO General Interface Builder XML Dialects for Advanced Browsers XForms and XHTML 2.0 Mozilla XUL Microsoft SilverLight/XAML Java frameworks Java WebStart (with/without Spring Rich Client) JavaFX Adobe Flash­based frameworks Adobe Flex OpenLaszlo
  • 14. Appcelerator Message Oriented Architecture Web Expression Language Widget Framework Integrated Services Platform SOA Integration points for Java, Ruby, PHP, .NET, Python and Perl
  • 15. SOA in the Browser
  • 16. Web Expression Language Widget Syntax Web Expression Language Syntax http://try.appcelerator.org
  • 17. Widgets http://doc.appcelerator.org/reference/widget_reference/index.html
  • 18. Service Platform public class LoginService { @Service(request = quot;login.requestquot;, response = quot;login.responsequot;) protected void login(Message request, Message response) throws Exception { // get request data String username = request.getData().getString(quot;usernamequot;); String password = request.getData().getString(quot;passwordquot;); Also has Service Integration Points for PHP, Ruby, .NET, Python and Perl.
  • 19. Other Examples appTunes - widget that wraps Flex Cover Flow widget Snappshot - photo editing application Radio Javan - Persian music online SkyBlox - builds neighborhoods More at http://www.appcelerator.org/demos
  • 20. Creating a Project Download and install from http://appcelerator.org/download app create:project directory project_name java app run:project Go to http://localhost:4000 To create a war, run ant
  • 25. Adobe Flex http://www.adobe.com/products/flex Flex SDK under Mozilla Public License Active Community Yahoo Group: http://tech.groups.yahoo.com/group/ flexcoders User Groups: http://flex.org/usergroups_list 360|Flex Recommended Books Flexible Rails by Peter Armstrong Flex 3 in Action by Tariq Ahmed Flex on Java by Allmon and Anderson
  • 26. Google Web Toolkit http://code.google.com/webtoolkit Apache 2.0 License Active Community http://groups.google.com/group/Google-Web-Toolkit Pearson’s Google Web Toolkit Conference and Google I/O Recommended Books GWT in Action by Hanson and Tacy GWT in Practice by Cooper and Collins Google Web Toolkit Solutions by Geary and Gordon
  • 27. Appcelerator http://appcelerator.org Apache 2.0 License Active Community http://www.appcelerator.org/groups No Conference No Books
  • 28. Adobe Flex Pros Produces Flash UI Funded by Adobe Has many successful client stories Supports REST easily Cons Not Search Engine Friendly Doesn’t render HTML content well Doesn’t print well by default
  • 29. GWT Pros Write Java ➟ Produces JavaScript Vibrant Community Zero Turnaround in Hosted Mode Cons Only good for Java Developers Doesn’t support REST very well Operates within the confines of the browser’s JavaScript sandbox
  • 30. Appcelerator Pros Easy to Author Good Documentation Java, Ruby, PHP, .NET or Python Cons Not Widely Used Creating an application requires registration Not a Full-Stack Framework
  • 31. Flex vs. JavaScript http://anthonyfranco.wordpress.com/ 2007/06/22/flex-and-ajax-friends-or-foes Use the Best Tool for the Job Open Web: Ajax Video and Rich Media: Flex HTML Rendering: Ajax Vector Graphics and Bitmap Manipulation: Flex Accessibility: Flex
  • 32. Flex vs. Ajax Performance http://www.jamesward.com/census
  • 33. Jobs GWT Flex Ajax Flash 90 60 30 0 Monster.com - 100 miles of Denver, Colorado
  • 34. Skills from My Network GWT Flex Ajax Flash 500 375 250 125 0 Located in or near 80210
  • 35. Conclusion Appcelerator is easy if you like HTML and CSS, but don’t like JavaScript. Appcelerator is not a full-stack framework. Flex/Flash is not as restricted by the browser sandbox. Flex supports REST better. SOFEA UIs are fun to develop, but not for every application. Don’t Believe The Hype!
  • 36. My Thoughts Flex or Ext JS when you have a REST backend REST backends are easy with Rails, Grails and Struts 2 GWT if you’re a Swing or backend developer Appcelerator if you want to be language neutral or don’t like authoring JavaScript