Building native mobile apps for Digital Factory



Similar documents
Esigate Module Documentation

Developing and deploying mobile apps

Portal Factory CMIS Connector Module documentation

ios SDK possibilities & limitations

ADF Mobile Overview and Frequently Asked Questions

Enterprise Mobile Application Development: Native or Hybrid?

SYST35300 Hybrid Mobile Application Development

Electronic Ticket and Check-in System for Indico Conferences

MOBILIZING ORACLE APPLICATIONS ERP. An Approach for Building Scalable Mobility Solutions. A RapidValue Solutions Whitepaper

Mobile development with Apache OFBiz. Ean Schuessler, Brainfood

Mobile Application Development

BASIC COMPONENTS. There are 3 basic components in every Apache Cordova project:

Best practices building multi-platform apps. John Hasthorpe & Josh Venman

Cross-Platform Tools

Smartphone Application Development using HTML5-based Cross- Platform Framework

Middleware- Driven Mobile Applications

Value Added Services (VAS) - Mobile Applications Business Cases

Developing multidevice-apps using Apache Cordova and HTML5. Guadalajara Java User Group Guillermo Muñoz Java Developer

A Beginners Guide To Responsive, Mobile & Native Websites 2013 Enhance.ie.All Rights Reserved.

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7

How To Develop A Mobile App With Phonegap

Take full advantage of IBM s IDEs for end- to- end mobile development

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects.

Mobile App Infrastructure for Cross-Platform Deployment (N11-38)

Native, web or hybrid mobile-app development

Introduction to Oracle Mobile Application Framework Raghu Srinivasan, Director Development Mobile and Cloud Development Tools Oracle

Lecture 4 Cross-Platform Development. <lecturer, date>

ORACLE ADF MOBILE DATA SHEET

Adobe Summit 2015 Lab 712: Building Mobile Apps: A PhoneGap Enterprise Introduction for Developers

The Decaffeinated Robot

Introduction to IBM Worklight Mobile Platform

How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE

Choosing a Mobile Strategy for Your Business

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

Retool your HTML/JavaScript to go Mobile

Building a Simple Mobile optimized Web App/Site Using the jquery Mobile Framework

Mobile web developer guide

How To Use Titanium Studio

Syllabus INFO-UB Design and Development of Web and Mobile Applications (Especially for Start Ups)

BELATRIX SOFTWARE. Why you should be moving to mobile Cross Platform Development? Introduction

separate the content technology display or delivery technology

research: technical implemenation

Developing Cross-platform Mobile and Web Apps

Cross Platform Applications with IBM Worklight

An Analysis of Mobile Application Development Approaches

Cross-Platform Development

Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application

Kony Mobile Application Management (MAM)

MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER

Architecture Guide Jahia EE v6.1

Adobe Summit 2015 Lab 718: Managing Mobile Apps: A PhoneGap Enterprise Introduction for Marketers

Choosing a Mobile Application Development Approach

Implementing Mobile Thin client Architecture For Enterprise Application

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Portability Study of Android and ios

HTML5: Separating Fact and Fiction. #wipjam

Mobile App Proposal Magazine company- @address.com. January 12, y. Direct Contact.

Spyros Xanthopoulos Dimitris Daskopoulos Charalambos Tsipizidis. IT Center Aristotle University of Thessaloniki Greece

SAP Mobile Platform Intro

KonyOne Server Prerequisites _ MS SQL Server

Making Mobile a Reality

A Way Out of the Mobile App Development Conundrum

Statement of Direction

CiviMobile & CiviSync Mobile. Peter McAndrew Rohit Thakral

Quick Start Guide Mobile Entrée 4

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

WEB, HYBRID, NATIVE EXPLAINED CRAIG ISAKSON. June 2013 MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

Developing Exceptional Mobile and Multi-Channel Applications using IBM Web Experience Factory IBM Corporation 1

HTML5 the new. standard for Interactive Web

CASE STUDY. Enhancing the Patient Experience Harris Mobile Patient Engagement Platform

How to pick the right development model for your next mobile project

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

Appery.io Overview. However mobile also presents many challenges for enterprises:

Cross-Platform Phone Apps & Sites with jquery Mobile

Using Cloud Services for Building Next Generation Mobile Apps

ipad, a revolutionary device - Apple

Leveraging Partners and Open Source Technology in your Mobility Strategy. emids webinar Thursday, August 11, :00 pm 2:00 pm EDT

The Bootstrapper's Guide to the Mobile Web by Deltina Hay. Mobile App Strategy Worksheet. I. Target Market, App Category, Platforms

Integrating Mobile apps with your Enterprise

the future of mobile web by startech.ro

Bridging the Gap: from a Web App to a Mobile Device App

Creating Enterprise Mobile Apps with Red Hat

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Introduction: The Xcode templates are not available in Cordova or above, so we'll use the previous version, for this recipe.

Enabling Cordova (aka PhoneGap) on Tizen. René Pourtier / Luc Yriarte

Mobile application testing is a process by which application software developed for hand held mobile devices is tested for its functionality,

RapidValue Enabling Mobility. How to Choose the Right Architecture For Your Mobile Application

Mobile Cross Platform Development really? Jonathan Marshall, IBM Mobile Technical Specialist IBM Corporation

Cross Platform Applications with IBM Worklight

Transcription:

DIGITAL FACTORY 7.0 Building native mobile apps for Digital Factory Rooted in Open Source CMS, Jahia s Digital Industrialization paradigm is about streamlining Enterprise digital projects across channels to truly control time-to-market and TCO, project after project. Jahia Solutions Group SA 9 route des Jeunes, CH-1227 Les acacias Geneva, Switzerland http://www.jahia.com

Summary 1 Introduction... 3 2 Target audience & assumptions... 4 3 Native mobile applications... 5 3.1 Native multi-platform frameworks... 7 3.1.1 Adobe PhoneGap / Apache Cordova... 8 3.1.2 Pugpig... 8 3.1.3 Titanium... 9 4 Additional resources... 10 Page 2 / 11

1 Introduction This document presents one of the two main possibilities of how to address the mobile rendering needs for your CMS/WCM projects using Digital Factory. Our product has two technologies that can help in this regard: - Channel-based rendering and editing - REST API to build native clients This guide covers the second technology. If you re interested in the first, building mobile web sites using Digital Factory, please read our companion document: Mobile web developer guide. Page 3 / 11

2 Target audience & assumptions It this document it is assumed that the reader has a working knowledge of the following: - Java programming - JSP programming - Jahia template development - Mobile development If you are not familiar with one of the above-mentioned fields, we recommend you get at least familiar with them. For Digital Factory template development, please check our documentation on http://www.jahia.com. The first chapters will be more focus on presenting some of the concepts behind mobile application development using the Digital Factory platform, but the next ones will go into technical details as how to implement such solutions. A working knowledge of Digital Factory development and integration is therefore strongly recommended. Page 4 / 11

3 Native mobile applications An alternative to building web sites that target mobile devices is developing a native mobile application. This is usually a tradeoff since building a mobile application means that it will be proprietary to the device s operating system. So the development of a native mobile application will not be reusable when targeting another device. But building a native application usually makes for a better user experience, as the interactions will be smoother and less dependent on network availability. A native application must use some kind of protocol to communicate with a server, and in the case of integrating with Digital Factory, it is of course possible to request HTML renderings to display directly on the mobile screen using a web view. But if the data needs to be re-formatted or presented in different views in the native app, or if network traffic must be reduced to an absolute minimum, it is best to use Digital Factory s REST API. Digital Factory REST API makes it possible to retrieve, create, edit and delete content simply by using basic HTTP requests that retrieve JSON content and use HTTP POST to perform content actions. This seemingly simple protocol is actually very powerful and most content actions you perform through Digital Factory s UI are also available through the REST API. And as it is possible to develop custom actions, any missing functionality may be implemented by developing custom actions packaged in custom modules. An interesting example application illustrating the usefulness of the REST API is a prototype of a native iphone/ipad application that was designed by Digital Factory. As this is a prototype that is not available publicly, if you are interested in learning more about it, please contact us at support@jahia.com. The native application connects to Digital Factory on startup, retrieves a configuration file that contains different screen properties, notably queries that will be executed with the REST find servlet. The results are generated using JSON output. The native application can then display the content anyway it chooses. Having the content in JSON format makes it easy to adapt to multiple screen sizes, as the native prototype is a dual iphone and ipad application. The application is also capable of creating new content by using POST HTTP requests to create Page 5 / 11

new content objects. All this is quite optimal and integrated with Digital Factory s authentication as it also uses the login and logout servlets. As you can see in the above example, the native application displays the ACME demo content with native device rendering. This makes for a strong mobile user experience while having exactly the same content base as the regular web site. It is also possible to cache the data on the native client for offline browsing. The prototype demo application is also a native ipad application, as may be seen in the screenshot below: Page 6 / 11

The ipad version displays a little differently, making good usage of the extra screen space, while retaining access to the same content objects as the iphone and the public web site. It also features an example of native data input, including text input as well as upload of binaries such as pictures. In the example below the user is selecting a picture from the picture gallery after entering a title and an article body: In this native prototype we have only scratched the surface of what is possible with REST API. Please refer to Digital Factory s documentation available on http://www.jahia.com/documentationand-downloads/developers-techwiki to learn more about this and other technologies that will help you achieve your multi-channel objectives. 3.1 Native multi-platform frameworks The main problem when building native a mobile application is that each device has it s own proprietary SDK, and these are often not compatible. For example the ios SDK requires programming in the Objective C language, while the Android and Blackberry SDKs use Java as the main programming language. The provided libraries used in each SDK are quite different and incompatible, so it makes porting code from one platform to another very difficult, and often implies Page 7 / 11

building or purchasing custom compatibility layers to obtain abstractions that help code portability. There is some common ground on the 3D side though, because often OpenGL is used as an underlying 3D framework, but this technology is also very low level and requires a lot of effort to build basic 3D applications. Because of these porting difficulties, multi-platform frameworks have emerged to help code re-use across platforms, and we will now illustrate these with a few examples that might prove interesting to integrate in native mobile projects. 3.1.1 Adobe PhoneGap / Apache Cordova One of the best-know native multi-platform frameworks is Adobe PhoneGap. The main concept being this framework is quite simple: to use HTML and Javascript to build native mobile applications. This is possible because the framework simply provides minimal native code to expose a built-in web browser, and exposes as Javascript objects native device functions such as camera control, accelerometer, address book access, and so on. So in effect you can build a native mobile application by developing HTML and Javascript, and then generate each native mobile application using the provided native code from the PhoneGap framework. One important thing to mention is that the PhoneGap source code has been entirely contributed to the Apache Foundation under the name Apache Cordova, and therefore this platform is available under the Apache License, which is 100% business friendly. Also, it is possible to combine PhoneGap with jquery Mobile, making it very easy to build native mobile applications that look and feel great using a lot less development effort. If you re interested in learning more, we have a webinar recording available on our website. 3.1.2 Pugpig Pugpig is another alternative to building mobile cross-platform solutions, aimed more precisely at the publishing industry. Using Pugpig you can use HTML 5 to easily build magazines or other digital packages to publish content on the go. Digital Factory is capable of integrating with Pugpig by generating and packaging digital bundles that can then be compiled into a native application. At the same time, it is also possible to use Digital Factory s REST API to access content dynamically Page 8 / 11

from a digital bundle distributed in a Pugpig native mobile application. Again, we have a webinar recording available if you are interested in learning more about this type of framework integration. 3.1.3 Titanium The Titanium Mobile Development platform takes a slightly different approach to cross-platform native mobile development. Instead of using HTML and Javascript as a development platform, it actually uses Javascript to directly build native UIs on each platform. The way this works is that they have built a Javascript interpreter into each native code layer, and then provide Javascript abstraction libraries to build UIs using the platform s native UI elements. So there is no direct usage of the built-in browser technology, and it is possible to build applications that really look and feel like the real thing on each platform, although they will not be as fast as a real native application since they are still running in an interpreter. It is also possible to access native API using Titanium s Javascript engine, making it possible to integrate very tightly with a specific mobile platform if desired. Page 9 / 11

4 Additional resources We present in this section some references we have presented in this document as well as additional reading material that may be interesting to learn more about mobile technologies. Digital Factory s Mobile web developer guide, http://www.jahia.com Wireless Universal Resource File, WURFL, http://wurfl.sourceforge.net/ Apache Mobile Filter, http://www.idelfuschini.it/it/apache-mobile-filter-v2x.html Apache Mobile Filter sample code, http://www.idelfuschini.it/it/sample-code.html Apple ios developer center, http://developer.apple.com/ios Google Android developer center, http://developer.android.com/index.html Blackberry developer center, https://developer.blackberry.com CSS media queries, http://www.w3.org/tr/css3-mediaqueries/ Adobe Phone Gap, http://phonegap.com Apache Cordova, http://incubator.apache.org/cordova/ Pugpig, http://pugpig.com Titanium, http://www.appcelerator.com jquery Mobile, http://jquerymobile.com Bootstrap, http://twitter.github.com/bootstrap/ Page 10 / 11

Jahia Solutions Group SA 9 route des Jeunes, CH-1227 Les acacias Geneva, Switzerland http://www.jahia.com