SlideShare une entreprise Scribd logo
1  sur  56
JSE 2011



  Mobile ECM Apps
with Titanium and PhoneGap


   Jan. 20 2011 - Stefane Fermigier - Nuxeo
Outline

• What? And why?
• How?
• Experience reports
• Future work
Why content-enabled
enterprise mobile apps?
•   Open source ECM (Enterprise Content
    Management) vendor, since 2000
•   50 people, in Paris, Boston and San Francisco
•   Provides and supports a Java-based, modular,
    extensible platform for ECM, as well as
    Document Management, Digital Asset
    Management and Case Management
    applications
Gartner: mobile apps and
         tablets are HOT




Source: http://blogs.techrepublic.com.com/10things/?p=1871
Gartner again
             (but emphasis is mine)
•   “Enterprise apps will need to be designed for
    the tablet;”

•   “Delivering these apps gets complicated due to the
    selection of platforms;”

•   “Marketing will drive a lot of projects to utilize
    tablets, but these devices can be used for
    inspections, surveys, image capture,
    documentation and training.”

•   “The PC era is over. Think of mobile design
    points.”
Technical limitations
• Limited screen size
• No keyboard; touch interface not a mouse either
• Limited computing power
• Limited network availability and bandwidth
• Limited content types
• Platforms proliferation!
• Etc.
New opportunities

• Just use your finger! (ex: Zosh)
• Geolocation
• Camera
 • Ex: Barcode scanning
• Other sensors?
Don’t fight, but embrace
   the constraints!
• Well defined (but per-platform) UI guidelines
• New standard to the rescue: HTML5
  • Mobile-specific enhancements to CSS
  • Local storage (file and DB)
  • Offline mode
  • ...
Technological options
  Mobile apps or mobile web?
Our Focus: Smart Phones
and Tablets, for Enterprise apps
Web Apps vs. Native Apps

                • Objective-C
                • Java / Dalvik
          vs.   • C++
                • .NET
                • ...
Web Apps
• Multi-platform
  • Depending on HTML5 support by your
    platform vendor
• Easy deployment
• But: UI won’t look and feel “native”
  • Users will know they are in a browser
• And: Limited access to device APIs
Native Apps

• Optimized for a single platform capabilities
  •   Optimal user experience

  •   Access to sensors and proprietary APIs

• Tempting business model (App Store)
• But: Need platform-specific training, longer
  development time, too many platforms
Actually there are more options
    Web Apps                      Native Apps
 • Pure HTML (with ad-         • Cross-platforms, “web
   hoc CSS)                       oriented”, frameworks
 • HTML “enhanced”             • Cross-platforms,
   with jQuery                    “native UI oriented”,
                                  frameworks
 • One Page or SOFEA
   web apps                    • “Pure” Native apps
        Note: 4 out of 6 are JavaScript platforms
“Pure” HTML

• Classical web application made of pages,
  with a bit of CSS to make them more
  readable on a tiny screen
• Good enough for mobile web sites
• For any kind of web applications, we can
  do better for a very tiny price
Example: mobile
   Wikipedia
“Enhanced” HTML
•   HTML content delivered with AJAX requests
    using “link hijacking” techniques (using usually a
    bit of jQuery love)

•   CSS and JS tricks to emulate native UI

•   Libraries: iUI, jQTouch, jQuery Mobile...

    •   iUI: already mature, full-featured

    •   jQuery Mobile: recent project, focus on
        portability
1-page Web apps
•   Applications built using the SOFEA paradigm
    (Service-Oriented Front-End Architecture)

•   Web assets (html, js, css...) are loaded only
    once, then all interaction with server takes
    place as web services (usually JSON RPC or
    other “kinda restish” API)

•   (Too?) Many frameworks, still immature: GWT,
    Sencha Touch, SproutCore Mobile, Dojo, etc.
Example:
mobile gmail
• Embeds your web app into a custom-
  built web browser
  • Removes URL and bottom tab bars
  • Extends the browser JS API with
    platform-specific API
• Easiest transition from web app to native
  • But you still get a web-like UI
• Open source community project
• Initially similar to PhoneGap (browser API
  extensions)
• Then refocussed on providing a JS-based API
  to native UI and platform APIs
• 3 supported platforms: iOS, Android and
  BlackBerry
• Open source startup, raised 9 M$ of VC
  money
“True” Native Apps
•   Develop native APIs using vendor SDKs
    •   iOS: Objective-C / Cocoa Touch

    •   Android: “Java”

    •   BlackBerry: another Java (without “”)

    •   Symbian: C++

    •   Etc.

•   Main problem: to many platforms, too little time :(
Experience report
Challenge

• Write an (iPhone) app to browse and
  interact with content managed by a Nuxeo
  DM document management server
• Experiment with several technologies
“Specs”
•   Initial target platform = iPhone

•   Browse content on a Document Management
    server

•   Show content (including PDF, Office...) and
    metadata

•   Full text search

•   Recently updated documents (“timeline”)

•   Store contextual data on the iPhone
Initial design
4 technologies
• Native iPhone app (Objective-C + Cocoa
  Touch)
• Web App using jQuery Mobile
• 1-Page App using jQuery Mobile +
  backbone.js (Web or PhoneGap)
• Portable app using Appcelerator Titanium
  Mobile
Objective-C: the results

• Took 2 days to learn the basics of Objective-
  C, Cocoa Touch, XCode
• Took about 3 days for a very basic prototype
• Unstable, now abandoned
• Code still there: hg.nuxeo.org/mobile/iphone
DEMO
Objective-C: the Good

• Learning a new language is intellectually
  stimulating :)
• This is good old UNIX, you can use open
  source libraries in C if you need
• Small ecosystem of open source libraries
  around iOS
Objective-C: the Bad

• Learning a new language takes time, learning
  a new IDE even more, and you don’t want to
  switch from two IDEs too often
• Objective-C feels like I’m back in 1990
  (explicit pointer and memory management)
• Only for iOS, as you would guess
jQuery Mobile: the results

• Took 1/2 a day to get a basic demo
  (browsing, search) running
• Standard HTML pages generated on the
  server, AJAX magic managed by the
  framework
DEMO
jQuery Mobile: the Good

• Very easy to do on the server
• Fast turnaround thanks to Nuxeo
  WebEngine
• Easiest deployment option (you don’t need
  to deploy on the phones!)
jQuery Mobile: the Bad

•   The browser’s forward/back buttons are in the
    way, but you have to use them after looking at
    a piece of content

•   No easy way to develop a tab bar as in my
    design (and there is already the browser tab bar
    on the way)
Variant: as a 1-page app

•   Exact same application, built as a 1-page app
    using jQuery Mobile and backbone.js
•   Only interaction with the server (after initial
    assets loading) is via JSON-RPC
•   HTML generated on the client (mustache.js)
And as a PhoneGap App
•   It’s trivial to convert the whole app into a
    native App using PhoneGap
•   The browser URL bar and navigation buttons
    disappear

•   But now there is no way to come back from
    a PDF or image view
•   Have to rely on third-party PhoneGap plugins
    or develop our own (-> back to native)
Appcelerator: the results
• Took about 1 day to learn how to use the
  platform
• Took about 3 days to create a reasonably
  good looking, alpha-quality app
• 90% of the time spent on front-end, 10% on
  back end (JSON REST API with WebEngine)
• Will probably take 2 or 3 more days to
  make it App Store ready
Appcelerator: the Good
• JavaScript much easier to learn than
  Objective-C
• Specially when you already know
  JavaScript ;) (or even Java)
• Productivity 2x to 5x higher that with native
  Cocoa-Touch, slightly lower than SOFEA
• Multi-platform promise seems to work
Appcelerator: the bad
•   “IDE” is quirky and unstable

    •   And not really an IDE actually!

    •   Might change with the Aptana acquisition

•   No debugger, longer code/compile/deploy
    turnaround

•   Slower than native

•   Another layer of indirection

•   Apple doesn’t want you to use it (resolved!)
Conclusion of the
  experiment
Native (Obj-C)
• Not worth of your time, unless you:
 • Are (or have) a dedicated iOS developer
 • Want to compete on design to make $$
    on the App store
  • Want to be the first to leverage newly
    introduced iOS features
• ... which was not our focus
Mobile HTML (5)
•   The fastest way to get a simple application up
    and running (no App Store hassles)
•   The most multi-platform approach
•   But: Doesn’t provide users with a 100% native
    look and specially feel
•   Doesn’t give you access to all the local features
    of the device
•   Specially wrt document viewing
•   Can be complemented with PhoneGap
Appcelerator
• Gives you native look and feel and
  platform access, with an original but
  familiar API, at the price of slightly longer
  development time than pure HTML
• Supports the platforms that make
  business sense to us
• Not 100% bug-free, will always lag behind
  native platform, slower than native
Additional insights
•   JavaScript programming (API, not language) felt
    initially very ≠ between HTML5 and Titanium

•   But if you do two projects in parallel (HTML5
    for maximal portability, Titanium for native
    goodness) you can probably share some code

    •   Utility functions and low-level stuff
        (network, models, preference...)

    •   And maybe some of the interaction stuff too
One more thing...
These apps have not been
    (eventually) written in
JavaScript but in CoffeeScript
CoffeeScript?
• Alternative syntax (syntactic sugar) for
  JavaScript (only “the good parts”), inspired
  by Ruby and Python
• Gives: classes, “->” notation, list
  comprehensions...
• Much (IMHO) easier to read than JS
• Semantically, it’s still JavaScript though
• Cons: no IDE nor debugger support
Code Sample
Conclusion and
 Future Work
Generic document
        browsing App
•   New web mobile browsing module to be
    added to Nuxeo Markeplace and Nuxeo DM
    5.4.1 release
•   Companion iOS App (based on
    Titanium)currently under review on the App
    Store
•   Work will continue to provide access to
    more Nuxeo DM features, better
Business-specific apps
• We’re ready to work with our customers
  and partners on business-specific apps
• Choice between web apps and native
  (Titanium) apps is up to the customer, and
  will depend on features, devices used, etc.
• We intend to leverage our business API
  (Content Automation) + develop a specific
  framework to ease development
More info
• Watch http://blogs.nuxeo.com/
• Source code:
 • https://bitbucket.org/sfermigier/nuxeo-
    mobile-web
  • https://github.com/sfermigier/nuxeo-
    mobile

Contenu connexe

Tendances

Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoPaul Withers
 
Decoupled Architecture and WordPress
Decoupled Architecture and WordPressDecoupled Architecture and WordPress
Decoupled Architecture and WordPressPantheon
 
Nuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get StartedNuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get StartedNuxeo
 
Javantura 2014 - Java 8 JavaScript Nashorn
Javantura 2014 - Java 8 JavaScript NashornJavantura 2014 - Java 8 JavaScript Nashorn
Javantura 2014 - Java 8 JavaScript NashornMiroslav Resetar
 
Découvrez Nuxeo Studio
Découvrez Nuxeo StudioDécouvrez Nuxeo Studio
Découvrez Nuxeo StudioNuxeo
 
One drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp CaceresOne drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp Cacereshernanibf
 
Bccon use notes objects in memory and other useful
Bccon   use notes objects in memory and other usefulBccon   use notes objects in memory and other useful
Bccon use notes objects in memory and other usefulFrank van der Linden
 
JavaFX and HTML5 - Like Curds and Rice
JavaFX and HTML5 - Like Curds and RiceJavaFX and HTML5 - Like Curds and Rice
JavaFX and HTML5 - Like Curds and RiceStephen Chin
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Stephen Chin
 
Chocolatey + Artifactory = A Sweet Solution for Managing Windows
Chocolatey + Artifactory = A Sweet Solution for Managing WindowsChocolatey + Artifactory = A Sweet Solution for Managing Windows
Chocolatey + Artifactory = A Sweet Solution for Managing WindowsRob Reynolds
 
Lessons from Jenkins Platform Support
Lessons from Jenkins Platform SupportLessons from Jenkins Platform Support
Lessons from Jenkins Platform SupportMark Waite
 
Losing the Document Battle? Alfresco, Drupal Combine for Solution
Losing the Document Battle? Alfresco, Drupal Combine for SolutionLosing the Document Battle? Alfresco, Drupal Combine for Solution
Losing the Document Battle? Alfresco, Drupal Combine for SolutionAcquia
 
Performance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample applicationPerformance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample applicationJulien Dubois
 
Introducing CrossWorlds for IBM Domino
Introducing CrossWorlds for IBM DominoIntroducing CrossWorlds for IBM Domino
Introducing CrossWorlds for IBM DominoDaniele Vistalli
 
Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8Arun Gupta
 
Repository Management with JFrog Artifactory
Repository Management with JFrog ArtifactoryRepository Management with JFrog Artifactory
Repository Management with JFrog ArtifactoryStephen Chin
 

Tendances (20)

Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and Domino
 
Decoupled Architecture and WordPress
Decoupled Architecture and WordPressDecoupled Architecture and WordPress
Decoupled Architecture and WordPress
 
Nuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get StartedNuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get Started
 
Javantura 2014 - Java 8 JavaScript Nashorn
Javantura 2014 - Java 8 JavaScript NashornJavantura 2014 - Java 8 JavaScript Nashorn
Javantura 2014 - Java 8 JavaScript Nashorn
 
Javantura Zagreb 2014 - Vaadin - Peter Lehto
Javantura Zagreb 2014 - Vaadin - Peter LehtoJavantura Zagreb 2014 - Vaadin - Peter Lehto
Javantura Zagreb 2014 - Vaadin - Peter Lehto
 
Découvrez Nuxeo Studio
Découvrez Nuxeo StudioDécouvrez Nuxeo Studio
Découvrez Nuxeo Studio
 
Agile sites2
Agile sites2Agile sites2
Agile sites2
 
One drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp CaceresOne drupal to rule them all - Drupalcamp Caceres
One drupal to rule them all - Drupalcamp Caceres
 
Agile sites @ telmore
Agile sites @ telmore Agile sites @ telmore
Agile sites @ telmore
 
Bccon use notes objects in memory and other useful
Bccon   use notes objects in memory and other usefulBccon   use notes objects in memory and other useful
Bccon use notes objects in memory and other useful
 
JavaFX and HTML5 - Like Curds and Rice
JavaFX and HTML5 - Like Curds and RiceJavaFX and HTML5 - Like Curds and Rice
JavaFX and HTML5 - Like Curds and Rice
 
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5
 
Chocolatey + Artifactory = A Sweet Solution for Managing Windows
Chocolatey + Artifactory = A Sweet Solution for Managing WindowsChocolatey + Artifactory = A Sweet Solution for Managing Windows
Chocolatey + Artifactory = A Sweet Solution for Managing Windows
 
JEE 8, A Big Overview
JEE 8, A Big OverviewJEE 8, A Big Overview
JEE 8, A Big Overview
 
Lessons from Jenkins Platform Support
Lessons from Jenkins Platform SupportLessons from Jenkins Platform Support
Lessons from Jenkins Platform Support
 
Losing the Document Battle? Alfresco, Drupal Combine for Solution
Losing the Document Battle? Alfresco, Drupal Combine for SolutionLosing the Document Battle? Alfresco, Drupal Combine for Solution
Losing the Document Battle? Alfresco, Drupal Combine for Solution
 
Performance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample applicationPerformance tuning the Spring Pet Clinic sample application
Performance tuning the Spring Pet Clinic sample application
 
Introducing CrossWorlds for IBM Domino
Introducing CrossWorlds for IBM DominoIntroducing CrossWorlds for IBM Domino
Introducing CrossWorlds for IBM Domino
 
Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8Deploying Web Applications with WildFly 8
Deploying Web Applications with WildFly 8
 
Repository Management with JFrog Artifactory
Repository Management with JFrog ArtifactoryRepository Management with JFrog Artifactory
Repository Management with JFrog Artifactory
 

Similaire à Mobile ECM Apps with Titanium and PhoneGap

2011 code camp
2011 code camp2011 code camp
2011 code campimranq2
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile DevelopmentManesh Lad
 
Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building ProductsHayden Bleasel
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​FDConf
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?Reto Meier
 
Developing Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGapDeveloping Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGapAmar Mesic
 
Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with IonicMaulik Bamania
 
I knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsI knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsAlius Petraška
 
Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Indiginox
 
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesJoomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesAndy_Gaskell
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Ivano Malavolta
 
Intro to tech stacks bonny
Intro to tech stacks bonnyIntro to tech stacks bonny
Intro to tech stacks bonnyLama K Banna
 
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha TouchBuilding Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha TouchAxel Buerkle
 
Synapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps developmentSynapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps developmentsaritasingh19866
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
Cross platform mobile application development
Cross platform mobile application developmentCross platform mobile application development
Cross platform mobile application developmentwebprogr.com
 
Synapse india reviews on mobile application development
Synapse india reviews on mobile application developmentSynapse india reviews on mobile application development
Synapse india reviews on mobile application developmentsaritasingh19866
 

Similaire à Mobile ECM Apps with Titanium and PhoneGap (20)

2011 code camp
2011 code camp2011 code camp
2011 code camp
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
 
Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building Products
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?
 
Developing Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGapDeveloping Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGap
 
Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with Ionic
 
I knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsI knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile apps
 
Future of Mobile
Future of MobileFuture of Mobile
Future of Mobile
 
Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?
 
Joomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiencesJoomla as a mobile App backend - ideas, examples and experiences
Joomla as a mobile App backend - ideas, examples and experiences
 
Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
 
Intro to tech stacks bonny
Intro to tech stacks bonnyIntro to tech stacks bonny
Intro to tech stacks bonny
 
Mobile native-hacks
Mobile native-hacksMobile native-hacks
Mobile native-hacks
 
Mobile app development
Mobile app development  Mobile app development
Mobile app development
 
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha TouchBuilding Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
 
Synapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps developmentSynapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps development
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Cross platform mobile application development
Cross platform mobile application developmentCross platform mobile application development
Cross platform mobile application development
 
Synapse india reviews on mobile application development
Synapse india reviews on mobile application developmentSynapse india reviews on mobile application development
Synapse india reviews on mobile application development
 

Plus de Nuxeo

Own the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesOwn the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesNuxeo
 
How DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureHow DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureNuxeo
 
How Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicHow Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicNuxeo
 
Manage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoManage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoNuxeo
 
Accelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportAccelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportNuxeo
 
Where are you in the DAM Continuum
Where are you in the DAM ContinuumWhere are you in the DAM Continuum
Where are you in the DAM ContinuumNuxeo
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021Nuxeo
 
L’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteL’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteNuxeo
 
Gérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoGérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoNuxeo
 
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationLe DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationNuxeo
 
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Nuxeo
 
Elevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionElevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionNuxeo
 
Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Nuxeo
 
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMDrive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMNuxeo
 
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...Nuxeo
 
How Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondHow Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondNuxeo
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMNuxeo
 
Reimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesReimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesNuxeo
 
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsComment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsNuxeo
 
Accelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceAccelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceNuxeo
 

Plus de Nuxeo (20)

Own the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesOwn the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage Companies
 
How DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureHow DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain Future
 
How Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicHow Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a Pandemic
 
Manage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoManage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and Nuxeo
 
Accelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportAccelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to Support
 
Where are you in the DAM Continuum
Where are you in the DAM ContinuumWhere are you in the DAM Continuum
Where are you in the DAM Continuum
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021
 
L’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteL’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovante
 
Gérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoGérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et Nuxeo
 
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationLe DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
 
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
 
Elevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionElevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the Competition
 
Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience
 
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMDrive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAM
 
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
 
How Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondHow Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and Beyond
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
 
Reimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesReimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof Technologies
 
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsComment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
 
Accelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceAccelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial Intelligence
 

Dernier

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
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
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Dernier (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
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
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

Mobile ECM Apps with Titanium and PhoneGap

  • 1. JSE 2011 Mobile ECM Apps with Titanium and PhoneGap Jan. 20 2011 - Stefane Fermigier - Nuxeo
  • 2. Outline • What? And why? • How? • Experience reports • Future work
  • 4. Open source ECM (Enterprise Content Management) vendor, since 2000 • 50 people, in Paris, Boston and San Francisco • Provides and supports a Java-based, modular, extensible platform for ECM, as well as Document Management, Digital Asset Management and Case Management applications
  • 5. Gartner: mobile apps and tablets are HOT Source: http://blogs.techrepublic.com.com/10things/?p=1871
  • 6. Gartner again (but emphasis is mine) • “Enterprise apps will need to be designed for the tablet;” • “Delivering these apps gets complicated due to the selection of platforms;” • “Marketing will drive a lot of projects to utilize tablets, but these devices can be used for inspections, surveys, image capture, documentation and training.” • “The PC era is over. Think of mobile design points.”
  • 7. Technical limitations • Limited screen size • No keyboard; touch interface not a mouse either • Limited computing power • Limited network availability and bandwidth • Limited content types • Platforms proliferation! • Etc.
  • 8. New opportunities • Just use your finger! (ex: Zosh) • Geolocation • Camera • Ex: Barcode scanning • Other sensors?
  • 9. Don’t fight, but embrace the constraints! • Well defined (but per-platform) UI guidelines • New standard to the rescue: HTML5 • Mobile-specific enhancements to CSS • Local storage (file and DB) • Offline mode • ...
  • 10. Technological options Mobile apps or mobile web?
  • 11. Our Focus: Smart Phones and Tablets, for Enterprise apps
  • 12. Web Apps vs. Native Apps • Objective-C • Java / Dalvik vs. • C++ • .NET • ...
  • 13. Web Apps • Multi-platform • Depending on HTML5 support by your platform vendor • Easy deployment • But: UI won’t look and feel “native” • Users will know they are in a browser • And: Limited access to device APIs
  • 14. Native Apps • Optimized for a single platform capabilities • Optimal user experience • Access to sensors and proprietary APIs • Tempting business model (App Store) • But: Need platform-specific training, longer development time, too many platforms
  • 15. Actually there are more options Web Apps Native Apps • Pure HTML (with ad- • Cross-platforms, “web hoc CSS) oriented”, frameworks • HTML “enhanced” • Cross-platforms, with jQuery “native UI oriented”, frameworks • One Page or SOFEA web apps • “Pure” Native apps Note: 4 out of 6 are JavaScript platforms
  • 16. “Pure” HTML • Classical web application made of pages, with a bit of CSS to make them more readable on a tiny screen • Good enough for mobile web sites • For any kind of web applications, we can do better for a very tiny price
  • 17. Example: mobile Wikipedia
  • 18. “Enhanced” HTML • HTML content delivered with AJAX requests using “link hijacking” techniques (using usually a bit of jQuery love) • CSS and JS tricks to emulate native UI • Libraries: iUI, jQTouch, jQuery Mobile... • iUI: already mature, full-featured • jQuery Mobile: recent project, focus on portability
  • 19. 1-page Web apps • Applications built using the SOFEA paradigm (Service-Oriented Front-End Architecture) • Web assets (html, js, css...) are loaded only once, then all interaction with server takes place as web services (usually JSON RPC or other “kinda restish” API) • (Too?) Many frameworks, still immature: GWT, Sencha Touch, SproutCore Mobile, Dojo, etc.
  • 21. • Embeds your web app into a custom- built web browser • Removes URL and bottom tab bars • Extends the browser JS API with platform-specific API • Easiest transition from web app to native • But you still get a web-like UI • Open source community project
  • 22. • Initially similar to PhoneGap (browser API extensions) • Then refocussed on providing a JS-based API to native UI and platform APIs • 3 supported platforms: iOS, Android and BlackBerry • Open source startup, raised 9 M$ of VC money
  • 23. “True” Native Apps • Develop native APIs using vendor SDKs • iOS: Objective-C / Cocoa Touch • Android: “Java” • BlackBerry: another Java (without “”) • Symbian: C++ • Etc. • Main problem: to many platforms, too little time :(
  • 25. Challenge • Write an (iPhone) app to browse and interact with content managed by a Nuxeo DM document management server • Experiment with several technologies
  • 26. “Specs” • Initial target platform = iPhone • Browse content on a Document Management server • Show content (including PDF, Office...) and metadata • Full text search • Recently updated documents (“timeline”) • Store contextual data on the iPhone
  • 28. 4 technologies • Native iPhone app (Objective-C + Cocoa Touch) • Web App using jQuery Mobile • 1-Page App using jQuery Mobile + backbone.js (Web or PhoneGap) • Portable app using Appcelerator Titanium Mobile
  • 29. Objective-C: the results • Took 2 days to learn the basics of Objective- C, Cocoa Touch, XCode • Took about 3 days for a very basic prototype • Unstable, now abandoned • Code still there: hg.nuxeo.org/mobile/iphone
  • 30. DEMO
  • 31. Objective-C: the Good • Learning a new language is intellectually stimulating :) • This is good old UNIX, you can use open source libraries in C if you need • Small ecosystem of open source libraries around iOS
  • 32. Objective-C: the Bad • Learning a new language takes time, learning a new IDE even more, and you don’t want to switch from two IDEs too often • Objective-C feels like I’m back in 1990 (explicit pointer and memory management) • Only for iOS, as you would guess
  • 33. jQuery Mobile: the results • Took 1/2 a day to get a basic demo (browsing, search) running • Standard HTML pages generated on the server, AJAX magic managed by the framework
  • 34. DEMO
  • 35. jQuery Mobile: the Good • Very easy to do on the server • Fast turnaround thanks to Nuxeo WebEngine • Easiest deployment option (you don’t need to deploy on the phones!)
  • 36. jQuery Mobile: the Bad • The browser’s forward/back buttons are in the way, but you have to use them after looking at a piece of content • No easy way to develop a tab bar as in my design (and there is already the browser tab bar on the way)
  • 37. Variant: as a 1-page app • Exact same application, built as a 1-page app using jQuery Mobile and backbone.js • Only interaction with the server (after initial assets loading) is via JSON-RPC • HTML generated on the client (mustache.js)
  • 38. And as a PhoneGap App • It’s trivial to convert the whole app into a native App using PhoneGap • The browser URL bar and navigation buttons disappear • But now there is no way to come back from a PDF or image view • Have to rely on third-party PhoneGap plugins or develop our own (-> back to native)
  • 39. Appcelerator: the results • Took about 1 day to learn how to use the platform • Took about 3 days to create a reasonably good looking, alpha-quality app • 90% of the time spent on front-end, 10% on back end (JSON REST API with WebEngine) • Will probably take 2 or 3 more days to make it App Store ready
  • 40.
  • 41.
  • 42. Appcelerator: the Good • JavaScript much easier to learn than Objective-C • Specially when you already know JavaScript ;) (or even Java) • Productivity 2x to 5x higher that with native Cocoa-Touch, slightly lower than SOFEA • Multi-platform promise seems to work
  • 43. Appcelerator: the bad • “IDE” is quirky and unstable • And not really an IDE actually! • Might change with the Aptana acquisition • No debugger, longer code/compile/deploy turnaround • Slower than native • Another layer of indirection • Apple doesn’t want you to use it (resolved!)
  • 44. Conclusion of the experiment
  • 45. Native (Obj-C) • Not worth of your time, unless you: • Are (or have) a dedicated iOS developer • Want to compete on design to make $$ on the App store • Want to be the first to leverage newly introduced iOS features • ... which was not our focus
  • 46. Mobile HTML (5) • The fastest way to get a simple application up and running (no App Store hassles) • The most multi-platform approach • But: Doesn’t provide users with a 100% native look and specially feel • Doesn’t give you access to all the local features of the device • Specially wrt document viewing • Can be complemented with PhoneGap
  • 47. Appcelerator • Gives you native look and feel and platform access, with an original but familiar API, at the price of slightly longer development time than pure HTML • Supports the platforms that make business sense to us • Not 100% bug-free, will always lag behind native platform, slower than native
  • 48. Additional insights • JavaScript programming (API, not language) felt initially very ≠ between HTML5 and Titanium • But if you do two projects in parallel (HTML5 for maximal portability, Titanium for native goodness) you can probably share some code • Utility functions and low-level stuff (network, models, preference...) • And maybe some of the interaction stuff too
  • 50. These apps have not been (eventually) written in JavaScript but in CoffeeScript
  • 51. CoffeeScript? • Alternative syntax (syntactic sugar) for JavaScript (only “the good parts”), inspired by Ruby and Python • Gives: classes, “->” notation, list comprehensions... • Much (IMHO) easier to read than JS • Semantically, it’s still JavaScript though • Cons: no IDE nor debugger support
  • 54. Generic document browsing App • New web mobile browsing module to be added to Nuxeo Markeplace and Nuxeo DM 5.4.1 release • Companion iOS App (based on Titanium)currently under review on the App Store • Work will continue to provide access to more Nuxeo DM features, better
  • 55. Business-specific apps • We’re ready to work with our customers and partners on business-specific apps • Choice between web apps and native (Titanium) apps is up to the customer, and will depend on features, devices used, etc. • We intend to leverage our business API (Content Automation) + develop a specific framework to ease development
  • 56. More info • Watch http://blogs.nuxeo.com/ • Source code: • https://bitbucket.org/sfermigier/nuxeo- mobile-web • https://github.com/sfermigier/nuxeo- mobile

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n