Найдите свой следующий любимый книге

Станьте участником сегодня и читайте бесплатно в течение 30 дней
PhoneGap for Enterprise

PhoneGap for Enterprise

Автором Shotts Kerri

Читать отрывок

PhoneGap for Enterprise

Автором Shotts Kerri

377 pages
2 hours
Dec 26, 2014


This book covers the necessary concepts you'll need to build useful, rich, secure enterprise apps for mobile devices, and also explains portions of an example enterprise app development so that you have a working demonstration of the concepts in the book.

The book focuses heavily on security concepts such as authorization, SSL and certificates, source code protection, local data store encryption, and so on, as ensuring a secure channel of communication between the user and the enterprise servers is critical.

The book explores the entire app's design, covering the data model and business logic you'll use for your app. It then moves on to cover how to build middle-tier communication between the middle tier and the mobile device, handling application and network events (such as a network going offline), and culminates by showing you how to work with various rich presentation technologies.

This book is invaluable for anyone looking to learn how to create secure mobile apps for enterprise environments in an easy way with lots of useful examples.

Dec 26, 2014

Об авторе

Связано с PhoneGap for Enterprise

Похоже на «Книги»
Похожие статьи

Предварительный просмотр книги

PhoneGap for Enterprise - Shotts Kerri

Table of Contents

PhoneGap for Enterprise


About the Author

About the Reviewers


Support files, eBooks, discount offers, and more

Why subscribe?

Free access for Packt account holders


What this book covers

What you need for this book

Who this book is for


Reader feedback

Customer support

Downloading the example code




1. PhoneGap and Enterprise Mobility

Why PhoneGap/Cordova?

History behind PhoneGap and Cordova

Easy cross-platform development

Cordova app architecture

Cordova app structure


2. Building the Data Store and Business Logic

Introducing Tasker

Server architecture

Designing your data models

Designing the business logic

Permissions model


3. Securing PhoneGap Apps

General security precautions

Filtering and validating input

Encoding and escaping output

JavaScript/browser security

Avoiding JavaScript cryptography in the browser

Avoiding the use of JavaScript eval

Using strict mode

Avoiding untrusted HTML injection

Using Strict-Transport-Security

Securing your cookies

Using Content-Security-Policy

Avoiding JSONP

Avoiding the use of iframes

Using TLS/SSL always


Server-specific security precautions

Securing your backend

Hardening your backend against attack

Avoiding SQL injection

Preventing cross-site request forgeries

Avoid trusting your client's state

Verify message integrity with HMACs

Quick Node.js and Express server security settings

Cordova-specific security precautions

Targeting modern mobile devices

Source code protection

Using InAppBrowser for external links

Whitelisting domains

Avoiding self-signed certificates

Using a well-known certificate authority

Man-in-the-middle attacks

Local data store security/encryption


4. Building the Middle-Tier

Middle-tier architecture

Designing a RESTful-like API

Building our API using Node.js

Connecting to the backend database

Executing queries

Using Passport to handle authentication and sessions

Building API handlers


5. Communicating between Mobile and the Middle-Tier

Getting started


Ensuring secure communication

Communicating with the backend using XHR

Authenticating the user with the backend


6. Application Events and Storage

Getting ready

Determining network connectivity

Getting the current network type

Detecting changes in connectivity

Handling connectivity issues

Handling changes in the application state

Responding to application-level events

Storing local data using SQLite

Storing data in the iOS Keychain


7. Push Notifications

Delving into Push Notification architecture

Boxcar Universal Push Notifications Platform

Setting up Apple Push Notifications with Boxcar

Setting up Google Cloud Messages with Boxcar

Downloading the Boxcar PhoneGap SDK

Integrating Boxcar with PhoneGap/Cordova

Additional iOS configuration steps

Additional Android Configuration steps

Receiving Pushes from Boxcar

Background vs foreground Push Notifications

Sending a Push via Boxcar


8. Building the Presentation Tier

Mock-up design tools

Libraries and frameworks

Common patterns

MVC (Model-View-Controller)

The publish-subscribe pattern

The observables pattern

The templates pattern

The data binding pattern

The URL routing pattern

Presentation of the app

User Interface frameworks

View management

Forms and the validation

Data visualization

Seeing it in action


A. Useful Resources

Chapter 1 – PhoneGap and Enterprise Mobility

Chapter 2 – Building the Data Store and Business Logic

Database servers

Designing Data Models

Chapter 3 – Securing PhoneGap Apps

Security resources

Chapter 4 – Building the Middle-Tier

RESTful-like API resources

Chapter 5 – Communicating between Mobile and the Middle-Tier

Communication with the backend

Chapter 7 – Push Notifications

Push Notification services and BaaS

Chapter 8 – Building the Presentation Tier

Additional utility libraries and frameworks

User Interface frameworks


PhoneGap for Enterprise

PhoneGap for Enterprise

Copyright © 2014 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: December 2014

Production reference: 1191214

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-78355-475-1




Kerri Shotts


Steve Husting

Tony Radford

Julio César Sánchez

Commissioning Editor

Kunal Parikh

Acquisition Editor

Reshma Raman

Content Development Editor

Vaibhav Pawar

Technical Editors

Veronica Fernandes

Rohith Rajan

Copy Editor

Relin Hedly

Project Coordinator

Kranti Berde


Simran Bhogal

Joyce Littlejohn

Joanna McMahon


Rekha Nair


Disha Haria

Production Coordinator

Alwin Roy

Cover Work

Alwin Roy

About the Author

Kerri Shotts has worked with computers for nearly 25 years. Her love for technology and programming started when she was introduced to her first computer, which was a Commodore 64. She obtained a degree in computer science at college and eventually became a software test engineer. Later on, she worked as an Oracle Database Administrator for several years. Now, she owns her own company and works as a technology consultant. Kerri is responsible for creating, designing, and maintaining custom applications (both desktop and mobile), websites, graphics, and logos for her clients. She has been actively involved with PhoneGap for several years, and has written several native and hybrid applications. You can find her blog posts at http://www.photokandy.com. Kerri is also active on the Google Group for PhoneGap and Stack Overflow. When she isn't coding or writing, she enjoys photography, music, and fishkeeping. She is the author of three other books published by Packt Publishing, including PhoneGap 3.x Mobile Application Development Hotshot.

About the Reviewers

Steve Husting wears various hats by day, including that of a website worker, in a company that designs and manufactures radio-controlled hobby cars. By night, he writes, does calligraphy, and creates iPhone and Android apps. He posts his findings about PhoneGap app development on his blog, http://iphonedevlog.wordpress.com, which is focused towards beginners.

Julio César Sánchez has been a professional software developer since 2007. Over the years, he has worked with various web-related technologies. In 2010, he discovered PhoneGap and has been following the PhoneGap Google Group since then, learning, helping other developers, and even contributing with PhoneGap plugins. He spends part of his spare time developing mobile apps. Julio also writes tutorials about PhoneGap development for http://www.phonegap.es. You can visit his personal website (http://www.jcesarmobile.com), or follow him on twitter at @jcesarmobile to know more about him and his work.


Support files, eBooks, discount offers, and more

For support files and downloads related to your book, please visit www.PacktPub.com.

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.


Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can search, access, and read Packt's entire library of books.

Why subscribe?

Fully searchable across every book published by Packt

Copy and paste, print, and bookmark content

On demand and accessible via a web browser

Free access for Packt account holders

If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view 9 entirely free books. Simply use your login credentials for immediate access.


Mobile devices are virtually ubiquitous among the enterprise workforce, and employees are becoming increasingly mobile. This book discusses how the enterprise workforce can take advantage of Apache Cordova/Adobe PhoneGap applications to create cross-platform hybrid mobile applications that can serve the varied needs of the user and the enterprise.

This book will cover the various aspects of typical hybrid app architecture, from the backend database and web servers all the way to the hybrid app that resides on the employee's device. As the security of the enterprise data is paramount, a large amount of time is focused on ensuring that the communication between the backend and the user's device is secure. The book also covers how to respond to changes in network connectivity and application state.

A code package is also available for this book. Inside, you'll find a complete backend database and web server as well as a frontend hybrid application called Tasker. The entire project is presented as an example that you can learn from and apply to other projects. The link to the code package is given later on in this section.

What this book covers

Chapter 1, PhoneGap and Enterprise Mobility, discusses the history of Apache Cordova/Adobe PhoneGap applications, presents reasons why Cordova/PhoneGap is a good fit for the enterprise, and how Cordova facilitates cross-platform development for Cordova and hybrid application architecture.

Chapter 2, Building the Data Store and Business Logic, introduces you to the typical backend server architecture, as well as designing the data models and business logic. You will also get introduced to Tasker, the demonstration app for this book.

Chapter 3, Securing PhoneGap Apps, shows the importance of ensuring the security of enterprise data. This chapter also covers backend security, general security, and issues that relate directly to Cordova/PhoneGap apps.

Chapter 4, Building the Middle Tier, discusses RESTful-like APIs and HATEOAS (Hypertext As The Engine Of Application State). A sample Node.js server is included as a demonstration of these topics, including examples of connecting to databases, executing queries, and generating appropriate responses.

Chapter 5, Communicating Between Mobile and the Middle Tier, demonstrates how to ultilize XMLHttpRequest (XHR), SSL Certificate fingerprints, and third-party Cordova/PhoneGap plugins in order to facilitate secure communication between the mobile application and the backend servers.

Chapter 6, Application Events and Storage, briefly discusses how to respond to changes in network events and application state. This chapter also introduces a third-party SQLite plugin for persistent data storage and an additional plugin to access the iOS Keychain for secure data storage.

Chapter 7, Push Notifications, covers typical Push Notification architecture, and introduces you to Boxcar.io, a service that provides an HTTP API to send pushes. It also introduces a PhoneGap API to respond to these push notifications.

Chapter 8, Building the Presentation Tier, covers many of the different patterns used to build a mobile application, including mock-up tools, various libraries and frameworks, common patterns (MVC, data binding, templates, and so on), forms and validation, and data visualization.

Appendix, Useful Resources, provides web links to resources that the reader might find useful for further learning. These are split chapterwise so that they can relate to a specific chapter in this book.

What you need for this book

In order to run the example code within the code package for this book, you'll need the following software:

Oracle Database 11gR2 Express Edition (freely available from http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index-083047.html). You require a free Oracle account to download the packages or installer.

Node.js 0.10.25 or higher (freely available from http://nodejs.org). This code has been tested on version 0.10.25.

Oracle Instant Client 12c (freely available from http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html). You require a free Oracle account.

Cordova/PhoneGap 3.6 or higher (freely available from: http://cordova.apache.org or http://phonegap.com). This code has been tested on Cordova 3.6.

If you intend to build the Cordova/PhoneGap demonstrations locally on your machine, you'll also need to install the appropriate SDKs and prerequisite software. For more information, see: http://cordova.apache.org/docs/en/edge/guide_cli_index.md.html#The%20Command-Line%20Interface.

Who this book is for

The content of this book assumes that the reader has experience with the following:

JavaScript (ECMAScript 5+)



Cordova/PhoneGap 3.6+

Some experience with Node.js or similar server software (like PHP)

Some experience with databases (such as SQLite, MySQL, Oracle, and so on)

This book is aimed at the employee who desires to utilize (or who has been tasked with utilizing) Cordova/PhoneGap software to build mobile hybrid applications for the enterprise. As such, the book focuses on various enterprise technologies (including Oracle and Node). It also deals with a lot of security issues.


In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: If the activity finished successfully, we call deferred.resolve with the value.

A block of code is set as follows:

  function interpolate( str, context ) {

    var newStr = str;

    if ( typeof context === undefined ) {

      return newStr;


    str.match( /\{([^\}]+)\}/g ).forEach( function ( match ) {

      var prop = match.substr( 1, match.length - 2 ).trim();

      newStr = newStr.replace( match,

        valueForKeyPath( context, prop ) );

    } );

    return newStr;


When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

  function interpolate( str, context ) {

    var newStr = str;

    if ( typeof context === undefined ) {

      return newStr;


    str.match( /\{([^\}]+)\}/g ).forEach( function ( match ) {

      var prop = match.substr( 1, match.length - 2 ).trim();

      newStr = newStr.replace( match,         valueForKeyPath( context, prop ) );


    } );

    return newStr;


Any command-line input or output is written as follows:

cordova plugin add https://github.com/EddyVerbruggen/SSLCertificateChecker-PhoneGap-Plugin.git

New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: clicking the Next button moves you to the next screen.


Warnings or important notes appear in a box like this.


Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of

To send us general feedback, simply e-mail <feedback@packtpub.com>, and mention the book's title in the subject of your message.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Downloading the example code

You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

The code for this book is also available on GitHub at https://github.com/kerrishotts/PhoneGap-Enterprise-Code-Bundle. This repository may be updated from time to time in order to fix any errors or issues discovered.


Although we have taken every care to ensure the accuracy

Вы достигли конца предварительного просмотра. Зарегистрируйтесь, чтобы узнать больше!
Страница 1 из 1


Что люди думают о PhoneGap for Enterprise

0 оценки / 0 Обзоры
Ваше мнение?
Рейтинг: 0 из 5 звезд

Отзывы читателей