SlideShare a Scribd company logo
1 of 62
Download to read offline
Mobile ECM Apps
                             with Nuxeo EP


                         March 2011 - Stefane Fermigier - Nuxeo



mercredi 16 mars 2011
Outline

                    • Why?
                    • How?
                    • Experience reports
                    • Future work

mercredi 16 mars 2011
Why content-enabled
                        enterprise mobile apps?



mercredi 16 mars 2011
•   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
Gartner: mobile apps and
                        tablets are HOT




         Source: http://blogs.techrepublic.com.com/10things/?p=1871
mercredi 16 mars 2011
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
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
New opportunities

                    • Just use your finger! (ex: Zosh)
                    • Geolocation
                    • Camera
                     • Ex: Barcode scanning
                    • Other sensors?

mercredi 16 mars 2011
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
Technological options
                         Mobile apps vs. the mobile Web




mercredi 16 mars 2011
Our Focus: Smart Phones
                and Tablets, for Enterprise apps




mercredi 16 mars 2011
Web Apps vs. Native Apps

                                • Objective-C
                                • Java / Dalvik
                          vs.   • C++
                                • .NET
                                • ...

mercredi 16 mars 2011
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
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
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

mercredi 16 mars 2011
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
Example: mobile
                           Wikipedia




mercredi 16 mars 2011
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
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
Example:
                        mobile gmail




mercredi 16 mars 2011
4.
                    • 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
mercredi 16 mars 2011
5.

                    • 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



mercredi 16 mars 2011
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
Current State



mercredi 16 mars 2011
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
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
Architecture

                                   HTTP


                                   CMIS or
                                JSON-RPC or
                              Nuxeo Automation

                   Client                        Server


mercredi 16 mars 2011
Initial design (iPhone)




mercredi 16 mars 2011
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
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
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
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
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
DEMO



mercredi 16 mars 2011
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
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
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
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
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
mercredi 16 mars 2011
mercredi 16 mars 2011
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
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
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
mercredi 16 mars 2011
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
Android: the bad


                    • The market is not ready yet, specially for
                        tablets
                    • Device fragmentation


mercredi 16 mars 2011
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
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
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
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
Next Steps



mercredi 16 mars 2011
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
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
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
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
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
More info

                    • Watch http://blogs.nuxeo.com/ for news
                     • Android: http://blogs.nuxeo.com/dev/
                          2011/03/android-client-for-nuxeo-
                          dm.html
                        • iPhone: coming soon

mercredi 16 mars 2011
Source Code
                    •   Android client: https://github.com/nuxeo/
                        nuxeo-android
                    •   Web: https://bitbucket.org/sfermigier/nuxeo-
                        mobile-web
                    •   Titanium (tested on iPhone only): https://
                        github.com/sfermigier/nuxeo-mobile
                    •   (old) iOS/ObjC prototype: http://
                        hg.nuxeo.org/mobile/iphone/


mercredi 16 mars 2011
Questions?



mercredi 16 mars 2011
Up Next...
          March 30, 2011 - Webinar
    Nuxeo DAM - The Platform for Rich
           Media Management

        April 13, 2011 - Webinar
Why a Framework? Case Management
          with Nuxeo EP

mercredi 16 mars 2011
Thank you!



mercredi 16 mars 2011

More Related Content

What's hot

Mobile Web to Mobile Apps
Mobile Web to Mobile AppsMobile Web to Mobile Apps
Mobile Web to Mobile AppsTroy Miles
 
New voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerNew voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerKeith Boyd
 
Mobile applications chapter 5
Mobile applications chapter 5Mobile applications chapter 5
Mobile applications chapter 5Akib B. Momin
 
Mobile applications chapter 2
Mobile applications chapter 2Mobile applications chapter 2
Mobile applications chapter 2Akib B. Momin
 

What's hot (7)

Mobile Web to Mobile Apps
Mobile Web to Mobile AppsMobile Web to Mobile Apps
Mobile Web to Mobile Apps
 
Kerscher, Gunderson, and Wise "Unprecedented Access: Improving the User Expe...
Kerscher, Gunderson, and Wise "Unprecedented Access:  Improving the User Expe...Kerscher, Gunderson, and Wise "Unprecedented Access:  Improving the User Expe...
Kerscher, Gunderson, and Wise "Unprecedented Access: Improving the User Expe...
 
Nokia E7 Smartphone: Business Solutions
Nokia E7 Smartphone: Business SolutionsNokia E7 Smartphone: Business Solutions
Nokia E7 Smartphone: Business Solutions
 
New voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developerNew voice, new tone, new IA: Writing for the modern developer
New voice, new tone, new IA: Writing for the modern developer
 
Mobile applications chapter 5
Mobile applications chapter 5Mobile applications chapter 5
Mobile applications chapter 5
 
Mobile applications chapter 2
Mobile applications chapter 2Mobile applications chapter 2
Mobile applications chapter 2
 
chapter2
chapter2chapter2
chapter2
 

Viewers also liked

Nuxeo World Session: GWT Integration
Nuxeo World Session: GWT IntegrationNuxeo World Session: GWT Integration
Nuxeo World Session: GWT IntegrationNuxeo
 
8 things you should know about open source ecm
8 things you should know about open source ecm8 things you should know about open source ecm
8 things you should know about open source ecmNuxeo
 
Timewarp Nuxeo2
Timewarp Nuxeo2Timewarp Nuxeo2
Timewarp Nuxeo2Nuxeo
 
Document Management with Nuxeo: Flexible approach to document & content manag...
Document Management with Nuxeo: Flexible approach to document & content manag...Document Management with Nuxeo: Flexible approach to document & content manag...
Document Management with Nuxeo: Flexible approach to document & content manag...Nuxeo
 
Why Alfresco ECM?
Why Alfresco ECM?Why Alfresco ECM?
Why Alfresco ECM?danilobuzar
 
Slide deck roadmap webinar 2013
Slide deck   roadmap webinar 2013Slide deck   roadmap webinar 2013
Slide deck roadmap webinar 2013Nuxeo
 
Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016
Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016
Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016Alex Vlachos
 
Nuxeo CMF, a framework for case centric applications
Nuxeo CMF, a framework for case centric applicationsNuxeo CMF, a framework for case centric applications
Nuxeo CMF, a framework for case centric applicationsNuxeo
 
Nuxeo World Session: Case Management Framework
Nuxeo World Session: Case Management FrameworkNuxeo World Session: Case Management Framework
Nuxeo World Session: Case Management FrameworkNuxeo
 

Viewers also liked (10)

Nuxeo World Session: GWT Integration
Nuxeo World Session: GWT IntegrationNuxeo World Session: GWT Integration
Nuxeo World Session: GWT Integration
 
8 things you should know about open source ecm
8 things you should know about open source ecm8 things you should know about open source ecm
8 things you should know about open source ecm
 
Timewarp Nuxeo2
Timewarp Nuxeo2Timewarp Nuxeo2
Timewarp Nuxeo2
 
Document Management with Nuxeo: Flexible approach to document & content manag...
Document Management with Nuxeo: Flexible approach to document & content manag...Document Management with Nuxeo: Flexible approach to document & content manag...
Document Management with Nuxeo: Flexible approach to document & content manag...
 
Why Alfresco ECM?
Why Alfresco ECM?Why Alfresco ECM?
Why Alfresco ECM?
 
Slide deck roadmap webinar 2013
Slide deck   roadmap webinar 2013Slide deck   roadmap webinar 2013
Slide deck roadmap webinar 2013
 
Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016
Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016
Alex_Vlachos_Advanced_VR_Rendering_Performance_GDC2016
 
Solving Content Chaos
Solving Content ChaosSolving Content Chaos
Solving Content Chaos
 
Nuxeo CMF, a framework for case centric applications
Nuxeo CMF, a framework for case centric applicationsNuxeo CMF, a framework for case centric applications
Nuxeo CMF, a framework for case centric applications
 
Nuxeo World Session: Case Management Framework
Nuxeo World Session: Case Management FrameworkNuxeo World Session: Case Management Framework
Nuxeo World Session: Case Management Framework
 

Similar to Webinar Mobile ECM Apps with Nuxeo EP

Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
Nuxeo World Session: Mobile ECM Apps with Nuxeo EP
Nuxeo World Session: Mobile ECM Apps with Nuxeo EPNuxeo World Session: Mobile ECM Apps with Nuxeo EP
Nuxeo World Session: Mobile ECM Apps with Nuxeo EPNuxeo
 
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
 
2011 code camp
2011 code camp2011 code camp
2011 code campimranq2
 
Mobile - trends, choices, plans
Mobile - trends, choices, plansMobile - trends, choices, plans
Mobile - trends, choices, plansDavid Haskiya
 
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
 
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
 
Creating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile ApplicationsCreating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile ApplicationsBrian Huff
 
The future of the mobile web
The future of the mobile webThe future of the mobile web
The future of the mobile webPeter-Paul Koch
 
Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Indiginox
 
Open web platform talk by daniel hladky at rif 2012 (19 april 2012 moscow)
Open web platform talk by daniel hladky at rif 2012 (19 april 2012   moscow)Open web platform talk by daniel hladky at rif 2012 (19 april 2012   moscow)
Open web platform talk by daniel hladky at rif 2012 (19 april 2012 moscow)AI4BD GmbH
 
Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with IonicMaulik Bamania
 
Firefox os the web, mobile (for yahoo! hack europe - april 2013)
Firefox os  the web, mobile (for yahoo! hack europe - april 2013)Firefox os  the web, mobile (for yahoo! hack europe - april 2013)
Firefox os the web, mobile (for yahoo! hack europe - april 2013)Yahoo Developer Network
 
Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"
Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"
Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"BBC News Labs
 
«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
 
On Platforms
On PlatformsOn Platforms
On PlatformsNat Brown
 

Similar to Webinar Mobile ECM Apps with Nuxeo EP (20)

Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
Nuxeo World Session: Mobile ECM Apps with Nuxeo EP
Nuxeo World Session: Mobile ECM Apps with Nuxeo EPNuxeo World Session: Mobile ECM Apps with Nuxeo EP
Nuxeo World Session: Mobile ECM Apps with Nuxeo EP
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?
 
2011 code camp
2011 code camp2011 code camp
2011 code camp
 
Mobile - trends, choices, plans
Mobile - trends, choices, plansMobile - trends, choices, plans
Mobile - trends, choices, plans
 
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
 
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
 
Creating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile ApplicationsCreating Next-Generation ADF Mobile Applications
Creating Next-Generation ADF Mobile Applications
 
Titanium @ Minnebar
Titanium @ MinnebarTitanium @ Minnebar
Titanium @ Minnebar
 
The future of the mobile web
The future of the mobile webThe future of the mobile web
The future of the mobile web
 
Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?
 
Open web platform talk by daniel hladky at rif 2012 (19 april 2012 moscow)
Open web platform talk by daniel hladky at rif 2012 (19 april 2012   moscow)Open web platform talk by daniel hladky at rif 2012 (19 april 2012   moscow)
Open web platform talk by daniel hladky at rif 2012 (19 april 2012 moscow)
 
Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with Ionic
 
Multiplatform
MultiplatformMultiplatform
Multiplatform
 
Firefox os the web, mobile (for yahoo! hack europe - april 2013)
Firefox os  the web, mobile (for yahoo! hack europe - april 2013)Firefox os  the web, mobile (for yahoo! hack europe - april 2013)
Firefox os the web, mobile (for yahoo! hack europe - april 2013)
 
Future of Mobile
Future of MobileFuture of Mobile
Future of Mobile
 
Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"
Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"
Dan Appelquist at BBC News Labs : "firefoxOS - the web, mobile, web apps"
 
«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»​
 
Maxime Thomas - eZBK
Maxime Thomas - eZBKMaxime Thomas - eZBK
Maxime Thomas - eZBK
 
On Platforms
On PlatformsOn Platforms
On Platforms
 

More from 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
 

More from 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
 

Webinar Mobile ECM Apps with Nuxeo EP

  • 1. Mobile ECM Apps with Nuxeo EP March 2011 - Stefane Fermigier - Nuxeo mercredi 16 mars 2011
  • 2. Outline • Why? • How? • Experience reports • Future work mercredi 16 mars 2011
  • 3. Why content-enabled enterprise mobile apps? mercredi 16 mars 2011
  • 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 mercredi 16 mars 2011
  • 5. Gartner: mobile apps and tablets are HOT Source: http://blogs.techrepublic.com.com/10things/?p=1871 mercredi 16 mars 2011
  • 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.” mercredi 16 mars 2011
  • 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 • Platform proliferation! • Etc. mercredi 16 mars 2011
  • 8. New opportunities • Just use your finger! (ex: Zosh) • Geolocation • Camera • Ex: Barcode scanning • Other sensors? mercredi 16 mars 2011
  • 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 • ... mercredi 16 mars 2011
  • 10. Technological options Mobile apps vs. the mobile Web mercredi 16 mars 2011
  • 11. Our Focus: Smart Phones and Tablets, for Enterprise apps mercredi 16 mars 2011
  • 12. Web Apps vs. Native Apps • Objective-C • Java / Dalvik vs. • C++ • .NET • ... mercredi 16 mars 2011
  • 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 mercredi 16 mars 2011
  • 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 mercredi 16 mars 2011
  • 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 mercredi 16 mars 2011
  • 16. 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
  • 17. Example: mobile Wikipedia mercredi 16 mars 2011
  • 18. 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
  • 19. 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
  • 20. Example: mobile gmail mercredi 16 mars 2011
  • 21. 4. • 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 mercredi 16 mars 2011
  • 22. 5. • 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 mercredi 16 mars 2011
  • 23. 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
  • 25. 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
  • 26. 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
  • 27. Architecture HTTP CMIS or JSON-RPC or Nuxeo Automation Client Server mercredi 16 mars 2011
  • 29. 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
  • 30. 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
  • 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 mercredi 16 mars 2011
  • 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 • Only for iOS, as you would guess mercredi 16 mars 2011
  • 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 mercredi 16 mars 2011
  • 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!) mercredi 16 mars 2011
  • 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) • jQuery Mobile focussed only on phones (not tablets), other frameworks (Sencha Touch) need to be investigated for tablets mercredi 16 mars 2011
  • 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) mercredi 16 mars 2011
  • 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) mercredi 16 mars 2011
  • 39. 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
  • 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 mercredi 16 mars 2011
  • 43. 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
  • 44. 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
  • 46. 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
  • 47. Android: the bad • The market is not ready yet, specially for tablets • Device fragmentation mercredi 16 mars 2011
  • 48. 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
  • 49. 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
  • 50. 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
  • 51. 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
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. 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
  • 57. 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
  • 58. More info • Watch http://blogs.nuxeo.com/ for news • Android: http://blogs.nuxeo.com/dev/ 2011/03/android-client-for-nuxeo- dm.html • iPhone: coming soon mercredi 16 mars 2011
  • 59. Source Code • Android client: https://github.com/nuxeo/ nuxeo-android • Web: https://bitbucket.org/sfermigier/nuxeo- mobile-web • Titanium (tested on iPhone only): https:// github.com/sfermigier/nuxeo-mobile • (old) iOS/ObjC prototype: http:// hg.nuxeo.org/mobile/iphone/ mercredi 16 mars 2011
  • 61. Up Next... March 30, 2011 - Webinar Nuxeo DAM - The Platform for Rich Media Management April 13, 2011 - Webinar Why a Framework? Case Management with Nuxeo EP mercredi 16 mars 2011