Top Banner
March 2011 - Stefane Fermigier - Nuxeo Mobile ECM Apps with Nuxeo EP mercredi 16 mars 2011
62

Webinar Mobile ECM Apps with Nuxeo EP

Nov 01, 2014

Download

Documents

Nuxeo

Mobile content-centric applications are coming to an enterprise near you! Why do you need them? What are the constraints and opportunities of mobile ECM development? What technologies are available and what solutions will Nuxeo propose to help developers create these applications?
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Webinar Mobile ECM Apps with Nuxeo EP

March 2011 - Stefane Fermigier - Nuxeo

Mobile ECM Appswith Nuxeo EP

mercredi 16 mars 2011

Page 2: Webinar Mobile ECM Apps with Nuxeo EP

Outline

• Why?

• How?

• Experience reports

• Future work

mercredi 16 mars 2011

Page 3: Webinar Mobile ECM Apps with Nuxeo EP

Why content-enabled enterprise mobile apps?

mercredi 16 mars 2011

Page 4: Webinar Mobile ECM Apps with Nuxeo EP

• 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

mercredi 16 mars 2011

Page 5: Webinar Mobile ECM Apps with Nuxeo EP

Gartner: mobile apps and tablets are HOT

Source: http://blogs.techrepublic.com.com/10things/?p=1871mercredi 16 mars 2011

Page 6: Webinar Mobile ECM Apps with Nuxeo EP

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.”

mercredi 16 mars 2011

Page 7: Webinar Mobile ECM Apps with Nuxeo EP

Technical limitations

• Limited screen size

• No keyboard; touch interface not a mouse either

• Limited computing power

• Limited network availability and bandwidth

• Limited content types

• Platform proliferation!

• Etc.

mercredi 16 mars 2011

Page 8: Webinar Mobile ECM Apps with Nuxeo EP

New opportunities

• Just use your finger! (ex: Zosh)

• Geolocation

• Camera

• Ex: Barcode scanning

• Other sensors?

mercredi 16 mars 2011

Page 9: Webinar Mobile ECM Apps with Nuxeo EP

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

• ...

mercredi 16 mars 2011

Page 10: Webinar Mobile ECM Apps with Nuxeo EP

Technological optionsMobile apps vs. the mobile Web

mercredi 16 mars 2011

Page 11: Webinar Mobile ECM Apps with Nuxeo EP

Our Focus: Smart Phonesand Tablets, for Enterprise apps

mercredi 16 mars 2011

Page 12: Webinar Mobile ECM Apps with Nuxeo EP

Web Apps vs. Native Apps

vs.

• Objective-C

• Java / Dalvik

• C++

• .NET

• ...

mercredi 16 mars 2011

Page 13: Webinar Mobile ECM Apps with Nuxeo EP

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

mercredi 16 mars 2011

Page 14: Webinar Mobile ECM Apps with Nuxeo EP

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

mercredi 16 mars 2011

Page 15: Webinar Mobile ECM Apps with Nuxeo EP

Web Apps

• Pure HTML (with ad-hoc CSS)

• HTML “enhanced” with jQuery

• One Page or SOFEA web apps

• Cross-platforms, “web oriented”, frameworks

• Cross-platforms, “native UI oriented”, frameworks

• “Pure” Native apps

Native Apps

Actually there are more options

mercredi 16 mars 2011

Page 16: Webinar Mobile ECM Apps with Nuxeo EP

1. “Static” 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

mercredi 16 mars 2011

Page 17: Webinar Mobile ECM Apps with Nuxeo EP

Example: mobile Wikipedia

mercredi 16 mars 2011

Page 18: Webinar Mobile ECM Apps with Nuxeo EP

2. “Dynamic” HTML• HTML content delivered with AJAX requests

using “link hijacking” techniques (usually using 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, but only on phones (no tablets)

mercredi 16 mars 2011

Page 19: Webinar Mobile ECM Apps with Nuxeo EP

3. 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.

mercredi 16 mars 2011

Page 20: Webinar Mobile ECM Apps with Nuxeo EP

Example:mobile gmail

mercredi 16 mars 2011

Page 21: Webinar Mobile ECM Apps with Nuxeo EP

• 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

4.

mercredi 16 mars 2011

Page 22: Webinar Mobile ECM Apps with Nuxeo EP

• 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

5.

mercredi 16 mars 2011

Page 23: Webinar Mobile ECM Apps with Nuxeo EP

6. “True” Native Apps

• Develop native APIs using vendor SDKs

• iOS: Objective-C / Cocoa Touch

• Android: “Java”

• BlackBerry: another Java

• Symbian: C++

• Etc.

• Main problem: too many platforms, too little time :(

mercredi 16 mars 2011

Page 24: Webinar Mobile ECM Apps with Nuxeo EP

Current State

mercredi 16 mars 2011

Page 25: Webinar Mobile ECM Apps with Nuxeo EP

Challenge

• Write a few mobile apps to browse and interact with content managed by a Nuxeo DM document management server

• Experiment with several technologies (iPhone/Android, Native/Titanium/Web)

• Converge toward a generic Nuxeo mobile client for at least iPhone and Android

mercredi 16 mars 2011

Page 26: Webinar Mobile ECM Apps with Nuxeo EP

Specs

• Browse content on a Document Management server

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

• Full text search

• Store contextual data on the device

• Recently updated documents (“timeline”)

mercredi 16 mars 2011

Page 27: Webinar Mobile ECM Apps with Nuxeo EP

ServerClient

CMIS orJSON-RPC or

Nuxeo Automation

Architecture

HTTP

mercredi 16 mars 2011

Page 28: Webinar Mobile ECM Apps with Nuxeo EP

Initial design (iPhone)

mercredi 16 mars 2011

Page 29: Webinar Mobile ECM Apps with Nuxeo EP

5 technologies

• Native iPhone app (Obj-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

• Android

mercredi 16 mars 2011

Page 30: Webinar Mobile ECM Apps with Nuxeo EP

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

• Still unstable

• Code still there: hg.nuxeo.org/mobile/iphone

mercredi 16 mars 2011

Page 31: Webinar Mobile ECM Apps with Nuxeo EP

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

mercredi 16 mars 2011

Page 32: Webinar Mobile ECM Apps with Nuxeo EP

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

• Only for iOS, as you would guess

mercredi 16 mars 2011

Page 33: Webinar Mobile ECM Apps with Nuxeo EP

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

mercredi 16 mars 2011

Page 34: Webinar Mobile ECM Apps with Nuxeo EP

DEMO

mercredi 16 mars 2011

Page 35: Webinar Mobile ECM Apps with Nuxeo EP

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!)

mercredi 16 mars 2011

Page 36: Webinar Mobile ECM Apps with Nuxeo EP

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)

• jQuery Mobile focussed only on phones (not tablets), other frameworks (Sencha Touch) need to be investigated for tablets

mercredi 16 mars 2011

Page 37: Webinar Mobile ECM Apps with Nuxeo EP

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)

mercredi 16 mars 2011

Page 38: Webinar Mobile ECM Apps with Nuxeo EP

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)

mercredi 16 mars 2011

Page 39: Webinar Mobile ECM Apps with Nuxeo EP

Appcelerator: the results

• Took about 1 day to learn how to use the platform

• Took about 5 days to create a reasonably good looking, alpha-quality app

• 90% of the time spent on front-end, 10% on back end (currently, JSON REST API with WebEngine)

mercredi 16 mars 2011

Page 40: Webinar Mobile ECM Apps with Nuxeo EP

mercredi 16 mars 2011

Page 41: Webinar Mobile ECM Apps with Nuxeo EP

mercredi 16 mars 2011

Page 42: Webinar Mobile ECM Apps with Nuxeo EP

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

mercredi 16 mars 2011

Page 43: Webinar Mobile ECM Apps with Nuxeo EP

Appcelerator: the bad

• “IDE” is quirky and unstable

• And not really an IDE actually!

• No debugger (yet!), longer code/compile/deploy turnaround

• Slower than native

• Another layer of indirection

mercredi 16 mars 2011

Page 44: Webinar Mobile ECM Apps with Nuxeo EP

Android: the result

• Application developed by 5 persons during a 2 days “hackathon”

• First version ready in a matter of hours

• Uses the Nuxeo Automation API and an open source library developed by Smart & Soft for caching

mercredi 16 mars 2011

Page 45: Webinar Mobile ECM Apps with Nuxeo EP

mercredi 16 mars 2011

Page 46: Webinar Mobile ECM Apps with Nuxeo EP

Android: the good

• It’s just Java, no need to learn a new language

• One can even reuse existing Java libraries, like Nuxeo Automation Client

• IDE support is great (Eclipse)

• Overall, very satisfying programming experience

mercredi 16 mars 2011

Page 47: Webinar Mobile ECM Apps with Nuxeo EP

Android: the bad

• The market is not ready yet, specially for tablets

• Device fragmentation

mercredi 16 mars 2011

Page 48: Webinar Mobile ECM Apps with Nuxeo EP

Native (Obj-C)

• Not worth 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

mercredi 16 mars 2011

Page 49: Webinar Mobile ECM Apps with Nuxeo EP

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 (especially) feel

• Doesn’t give you access to all the local features of the device

• Especially wrt document viewing

• Can be complemented with PhoneGap

mercredi 16 mars 2011

Page 50: Webinar Mobile ECM Apps with Nuxeo EP

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

mercredi 16 mars 2011

Page 51: Webinar Mobile ECM Apps with Nuxeo EP

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

mercredi 16 mars 2011

Page 52: Webinar Mobile ECM Apps with Nuxeo EP

Next Steps

mercredi 16 mars 2011

Page 53: Webinar Mobile ECM Apps with Nuxeo EP

Our mobile roadmap

• Generic mobile document browsing apps(native / web)

• Library / framework to help the development of specific (vertical) apps

• Later: directly create mobile apps from Nuxeo Studio (with little or no coding)

mercredi 16 mars 2011

Page 54: Webinar Mobile ECM Apps with Nuxeo EP

Generic document browsing App

• Generic iOS App (based on Titanium)currently under review on the App Store

• Android app prototype, ready to be tested

• Mobile web module to be added to Nuxeo Markeplace

• Work will continue to provide access to more Nuxeo DM features, better disconnected mode experience, etc.

mercredi 16 mars 2011

Page 55: Webinar Mobile ECM Apps with Nuxeo EP

Business-specific apps

• We’re ready to work with our customers and partners on business-specific apps

• Choice between web apps and native (Obj-C, Android, Titanium) apps is up to the customer, and will depend on features needed, devices used, development resources, etc.

mercredi 16 mars 2011

Page 56: Webinar Mobile ECM Apps with Nuxeo EP

Approach to business apps

• Provide to iOS and Android developers a library to access Nuxeo through the Content Automation API

• Should include caching / offline mode management

• Generic UI framework to display Nuxeo documents

mercredi 16 mars 2011

Page 57: Webinar Mobile ECM Apps with Nuxeo EP

Possible future features

• Digitally sign documents on the road

• Automatically identify different types of documents through content analysis

• See the exact location where document was uploaded or last edited

• Upload photos directly from mobile phone to the ECM repository

• Offline mode keeps content available on the mobile device when offline

mercredi 16 mars 2011

Page 60: Webinar Mobile ECM Apps with Nuxeo EP

Questions?

mercredi 16 mars 2011

Page 61: Webinar Mobile ECM Apps with Nuxeo EP

Up Next...

March 30, 2011 - WebinarNuxeo DAM - The Platform for Rich

Media Management

April 13, 2011 - WebinarWhy a Framework? Case Management

with Nuxeo EP

mercredi 16 mars 2011

Page 62: Webinar Mobile ECM Apps with Nuxeo EP

Thank you!

mercredi 16 mars 2011