Index
A
- AmplifyJS
- Android 4.4.3 / Forms and the validation
- AngularJS
- API
- building, with Node.js / Building our API using Node.js
- backend database, connecting to / Connecting to the backend database
- queries, executing / Executing queries
- Passport, used for handling authentication / Using Passport to handle authentication and sessions
- handlers, building / Building API handlers
- Apiary
- Apigee
- API handlers
- building / Building API handlers
- app architecture, Cordova / Cordova app architecture
- Appery
- Apple Push Notifications
- setting, with Boxcar / Setting up Apple Push Notifications with Boxcar
- application-level events
- responding / Responding to application-level events
- Application Programming Interface (API) / Middle-tier architecture
- application state changes
- handling / Handling changes in the application state
- app presentation
- User Interface frameworks / User Interface frameworks
- view management / View management
- form validation / Forms and the validation
- data visualization / Data visualization
- app structure, Cordova
- about / Cordova app structure
- www directory / Cordova app structure
- hooks directory / Cordova app structure
- merges directory / Cordova app structure
- platforms directory / Cordova app structure
- plugins directory / Cordova app structure
- ArbiterJS
- authentication
- about / Authentication
- handling / Authentication
B
- Backbone.js
- URL / Libraries and frameworks
- backend
- communicating, XHR used / Communicating with the backend using XHR
- used, for authenticating user / Authenticating the user with the backend
- backend, hardening against attack
- SQL injection, avoiding / Avoiding SQL injection
- cross-site request forgeries, preventing / Preventing cross-site request forgeries
- clientstate trust, avoiding / Avoid trusting your client's state
- message integrity verification with HMACs / Verify message integrity with HMACs
- backend-as-a-service (BaaS) / Server architecture
- backend communication
- references / Communication with the backend
- backend database
- connecting / Connecting to the backend database
- backend tier / Server architecture
- Background Push Notifications
- versus Foreground Push Notifications / Background vs foreground Push Notifications
- Balsamiq
- URL / Mock-up design tools
- Blackberry / Forms and the validation
- Boxcar
- URL / Delving into Push Notification architecture
- used, for setting Apple Push Notifications / Setting up Apple Push Notifications with Boxcar
- used, for setting up Google Cloud Messages / Setting up Google Cloud Messages with Boxcar
- integrating with PhoneGap/Cordova / Integrating Boxcar with PhoneGap/Cordova
- Push Notifications, receiving / Receiving Pushes from Boxcar
- Push Notifications, sending via / Sending a Push via Boxcar
- Boxcar-PhoneGap/Cordova integration
- iOS configuration, steps / Additional iOS configuration steps
- Android configuration, steps / Additional Android Configuration steps
- Boxcar PhoneGap SDK
- downloading / Downloading the Boxcar PhoneGap SDK
- Boxcar Universal Push Notifications platform
- about / Boxcar Universal Push Notifications Platform
- Apple Push Notifications, setting / Setting up Apple Push Notifications with Boxcar
- bridge / Cordova app architecture
- browser
- security / JavaScript/browser security
- JavaScript cryptography, avoiding / Avoiding JavaScript cryptography in the browser
- business logic
- hosting, in database server / Server architecture
- hosting, in separate instance / Server architecture
- designing / Designing the business logic
- business logic, in database server
- advantages / Server architecture
- disadvantages / Server architecture
- business logic, in separate instance
- advantages / Server architecture
- disadvantages / Server architecture
C
- certificate authority (CA)
- about / Avoiding self-signed certificates
- using / Using a well-known certificate authority
- StartSSL / Using a well-known certificate authority
- Comodo Positive SSL / Using a well-known certificate authority
- DigiCert / Using a well-known certificate authority
- Entrust / Using a well-known certificate authority
- Symantec / Using a well-known certificate authority
- certificate pinning / Man-in-the-middle attacks
- Chart.js
- URL / Data visualization
- checkAuth method / Building API handlers
- Chocolate Chip UI
- code injection / Filtering and validating input
- command-line interface (CLI) / History behind PhoneGap and Cordova
- Comodo Positive SSL
- connectivity changes
- detecting / Detecting changes in connectivity
- connectivity issues
- handling / Handling connectivity issues
- Content-Security-Policy
- Controller / MVC (Model-View-Controller)
- cookies
- securing / Securing your cookies
- Cordova
- advantages / Why PhoneGap/Cordova?
- history / History behind PhoneGap and Cordova
- cross-platform development / Easy cross-platform development
- app architecture / Cordova app architecture
- app structure / Cordova app structure
- cordova-HTTP
- Cordova/PhoneGap
- web links references / Chapter 1 – PhoneGap and Enterprise Mobility
- books / Chapter 1 – PhoneGap and Enterprise Mobility
- developer programs / Chapter 1 – PhoneGap and Enterprise Mobility
- Cordova project
- steps / Getting started
- creating / Getting ready
- Cordova security
- modern mobile devices, targeting / Targeting modern mobile devices
- source code protection / Source code protection
- InAppBrowser, using for external links / Using InAppBrowser for external links
- domains, whitelisting / Whitelisting domains
- self-signed certificates, avoiding / Avoiding self-signed certificates
- certificate authority (CA), using / Using a well-known certificate authority
- man-in-the-middle attack / Man-in-the-middle attacks
- local data store security/encryption / Local data store security/encryption
- Couchbase
- URL / Designing Data Models
- Create, Read, Update, Delete (CRUD) / Designing a RESTful-like API
- Cross-Origin Resource Sharing (CORS) / Communicating with the backend using XHR
- cross-platform development, Cordova / Easy cross-platform development
- cross-platform development, PhoneGap / Easy cross-platform development
- cross-site scripting (XSS) / JavaScript/browser security
- Cross Origin Resource Sharing (CORS)
- about / Avoiding JSONP
- URL / Avoiding JSONP
- cryptographic nonces / Authentication
- CryptoJS
- current network type
- obtaining / Getting the current network type
D
- data
- storing, in iOS Keychain / Storing data in the iOS Keychain
- database servers
- MariaDB / Database servers
- PostgreSQL / Database servers
- Oracle / Database servers
- SQL / Database servers
- MySQL / Database servers
- NoSQL servers / Database servers
- data binding pattern
- about / The data binding pattern
- data modeling
- references / Designing Data Models
- URL / Designing Data Models
- data models
- designing / Designing your data models
- data tier / Server architecture
- data visualization
- about / Data visualization
- dbUtils.execute() method / Using Passport to handle authentication and sessions
- DELETE / Designing a RESTful-like API
- deserializeUser method / Using Passport to handle authentication and sessions
- DigiCert
- DigitalOcean
- URL / Securing your backend
- Document Object Model (DOM) / MVC (Model-View-Controller)
- domains
- whitelisting / Whitelisting domains
- dygraphs
- URL / Data visualization
E
- Ember
- URL / Libraries and frameworks
- Entity-Relationship model
- URL / Designing Data Models
- Entrust
- errors
- TimeoutError / Handling connectivity issues
- HTTPError / Handling connectivity issues
- JSONError / Handling connectivity issues
- XHRError / Handling connectivity issues
- MaxRetryAttemptsReached / Handling connectivity issues
- ES6 promises
- URL / Promises
- eval, JavaScript
- avoiding / Avoiding the use of JavaScript eval
- execute method / Executing queries
F
- File API / Storing local data using SQLite
- files, Cordova project
- www/index.html / Getting started
- www/app/main.js / Getting started
- www/app/lib/xhr.js / Getting started
- www/app/lib/objUtils.js / Getting started
- www/app/lib/hateoas.js / Getting started
- www/app/lib/cryptojs.js / Getting started
- www/app/models/session.js / Getting started
- Flotr 2
- URL / Data visualization
- FluidUI
- about / Mock-up design tools
- URL / Mock-up design tools
- Foreground Push Notifications
- versus Background Push Notifications / Background vs foreground Push Notifications
- form validation
- about / Forms and the validation
- best practices / Forms and the validation
- Framework 7
G
- generic-pool NPM module
- GET / Designing a RESTful-like API
- Google Cloud Messages
- setting, with Boxcar / Setting up Google Cloud Messages with Boxcar
- Google Developers Console / Setting up Google Cloud Messages with Boxcar
H
- Handlebars
- utility libraries / The templates pattern
- handlers, XHR
- ontimeout / Communicating with the backend using XHR
- onerror / Communicating with the backend using XHR
- onreadystatechange / Communicating with the backend using XHR
- onloadstart / Communicating with the backend using XHR
- onloadend / Communicating with the backend using XHR
- onabort / Communicating with the backend using XHR
- onprogress / Communicating with the backend using XHR
- HMACs
- used, for verifying message integrity / Verify message integrity with HMACs
- hooks
- URL / Cordova app structure
- HTML5 forms
- URL / Forms and the validation
- HTML5 form validation
- URL / Forms and the validation
- HTML5 Rocks / Promises
- Hypermedia As The Engine Of Application State (HATEOAS) / Communicating with the backend using XHR
I
- iframes
- avoiding / Avoiding the use of iframes
- avoiding, URL / Avoiding the use of iframes
- InAppBrowser
- using, for external links / Using InAppBrowser for external links
- Infobip Push
- Intel App Framework
- interface / Cordova app architecture
- Ionic Framework
- iOS Keychain
- data, storing / Storing data in the iOS Keychain
- URL / Storing data in the iOS Keychain
- iOS keychain plugin
- iPlotz
- about / Mock-up design tools
- URL / Mock-up design tools
J
- JavaScript
- security / JavaScript/browser security
- cryptography, avoiding in browser / Avoiding JavaScript cryptography in the browser
- eval, avoiding / Avoiding the use of JavaScript eval
- strict mode, using / Using strict mode
- untrusted HTML injection, avoiding / Avoiding untrusted HTML injection
- Strict Transport Security, avoiding / Using Strict-Transport-Security
- cookies, securing / Securing your cookies
- Content-Security-Policy, using / Using Content-Security-Policy
- JSONP, avoiding / Avoiding JSONP
- iframes, avoiding / Avoiding the use of iframes
- TLS/SSL, using / Using TLS/SSL always
- JavaScript cryptography
- avoiding, in browser / Avoiding JavaScript cryptography in the browser
- URL / Avoiding JavaScript cryptography in the browser
- JSONP
- avoiding / Avoiding JSONP
- JSXGraph
- URL / Data visualization
K
- Kinvey
- Knockout.js
- URL / Libraries and frameworks
L
- local data
- storing, with SQLite / Storing local data using SQLite
- logic tier / Server architecture
M
- man-in-the-middle attack / Man-in-the-middle attacks
- MariaDB
- URL / Database servers
- MDA5 / Authentication
- MicroJS
- middle-tier architecture
- about / Middle-tier architecture
- mock-up design tools
- about / Mock-up design tools
- Proto.io / Mock-up design tools
- Moqups / Mock-up design tools
- Wireframe.cc / Mock-up design tools
- iPlotz / Mock-up design tools
- Balsamiq / Mock-up design tools
- FluidUI / Mock-up design tools
- Omnigraffle / Mock-up design tools
- Model / MVC (Model-View-Controller)
- Model-View-Controller (MVC)
- about / MVC (Model-View-Controller)
- Model / MVC (Model-View-Controller)
- View / MVC (Model-View-Controller)
- Controller / MVC (Model-View-Controller)
- model-based persistence / MVC (Model-View-Controller)
- controller-based persistence / MVC (Model-View-Controller)
- app-controller-based persistence / MVC (Model-View-Controller)
- Model-View-Presenter (MVP) / MVC (Model-View-Controller)
- Model-View-View-Model (MVVM) / MVC (Model-View-Controller)
- mongoDB
- URL / Database servers
- Moqups
- URL / Mock-up design tools
- about / Mock-up design tools
- MVC/MVVM classes / Libraries and frameworks
- MySQL
- URL / Database servers
N
- network connectivity
- determining / Determining network connectivity
- URL / Determining network connectivity
- Node.js
- used, for building API / Building our API using Node.js
- NoSQL
- NoSQL servers
- URL / Database servers
O
- observables
- about / The observables pattern
- Knockout / The observables pattern
- YASMF-Next / The observables pattern
- Ember / The observables pattern
- observables pattern
- about / The observables pattern
- Omnigraffle
- URL / Mock-up design tools
- about / Mock-up design tools
- OmniGraffle
- about / Mock-up design tools
- Oracle
- URL / Database servers
- Oracle Database Express
- URL / Server architecture
- oracle driver
- OWASP
- URL / Securing your cookies
P
- Parse
- Parsley
- URL / Forms and the validation
- Passport
- URL / Authentication, Using Passport to handle authentication and sessions
- used, for handling authentication / Using Passport to handle authentication and sessions
- passport-req strategy
- patterns
- Model-View-Controller (MVC) / MVC (Model-View-Controller)
- publish-subscribe pattern (pub-sub) / The publish-subscribe pattern
- observables pattern / The observables pattern
- templates pattern / The templates pattern
- data binding pattern / The data binding pattern
- URL routing pattern / The URL routing pattern
- PBKDF2 / Server architecture
- permissions model
- about / Permissions model
- PhoneGap
- advantages / Why PhoneGap/Cordova?
- URL / Why PhoneGap/Cordova?
- history / History behind PhoneGap and Cordova
- cross-platform development / Easy cross-platform development
- PhoneGap/Cordova
- Boxcar, integrating with / Integrating Boxcar with PhoneGap/Cordova
- security resources, references / Security resources
- PhoneGap/Cordova-Boxcar integration
- iOS configuration, steps / Additional iOS configuration steps
- Android configuration, steps / Additional Android Configuration steps
- PhoneGap build environment / Easy cross-platform development
- PhoneGap SDK / Boxcar Universal Push Notifications Platform
- PL/SQL / Server architecture, Sending a Push via Boxcar
- POST / Designing a RESTful-like API
- PostgreSQL
- URL / Database servers
- presentation tier / Server architecture
- in action / Seeing it in action
- Promises
- Proto.io
- about / Mock-up design tools
- URL / Mock-up design tools
- publish-subscribe pattern (pub-sub)
- about / The publish-subscribe pattern
- PubSubJS
- push-notify
- Push Notification architecture
- delving into / Delving into Push Notification architecture
- Push Notifications
- receiving, from Boxcar / Receiving Pushes from Boxcar
- sending, via Boxcar / Sending a Push via Boxcar
- references / Push Notification services and BaaS
- PUT / Designing a RESTful-like API
Q
- Q
- queries
- executing / Executing queries
- Quick Node.js, Express
- server security settings / Quick Node.js and Express server security settings
R
- RactiveJS
- Radio.js
- RAML
- React
- URL / Libraries and frameworks
- replay attack / Preventing cross-site request forgeries
- RequireJS / Integrating Boxcar with PhoneGap/Cordova
- REST
- references / RESTful-like API resources
- RESTful-like API
- designing / Designing a RESTful-like API
- client/server / Designing a RESTful-like API
- stateless / Designing a RESTful-like API
- cacheable / Designing a RESTful-like API
- layered / Designing a RESTful-like API
- code-on-demand / Designing a RESTful-like API
- Uniform Interface / Designing a RESTful-like API
- RAML / Designing a RESTful-like API
- Apiary / Designing a RESTful-like API
- Swagger / Designing a RESTful-like API
- resources / RESTful-like API resources
- RGraph
- URL / Data visualization
- Rivets.JS
S
- Scalable Vector Graphics (SVG) / Data visualization
- secure communication
- ensuring / Ensuring secure communication
- security precautions
- about / General security precautions
- input, filtering / Filtering and validating input
- input, validating / Filtering and validating input
- output, encoding / Encoding and escaping output
- output, escaping / Encoding and escaping output
- authentication / Authentication
- self-signed certificates
- avoiding / Avoiding self-signed certificates
- Sencha Touch
- Sencha Touch Charts
- URL / Data visualization
- server architecture / Server architecture
- server security
- backend, securing / Securing your backend
- backend, hardening against attack / Hardening your backend against attack
- Node.js with Express, settings / Quick Node.js and Express server security settings
- session.createSession method / Building API handlers
- SHA256 / Avoiding JavaScript cryptography in the browser
- Simple Object Access Protocol (SOAP) / Designing a RESTful-like API
- SQLCipher
- SQL injection / Filtering and validating input
- SQLite
- used, for storing local data / Storing local data using SQLite
- URL / Storing local data using SQLite
- SQL Server
- URL / Database servers
- SSH
- configuring / Securing your backend
- SSL.com
- SSL/TLS / Using Strict-Transport-Security
- SSLCertificateChecker / Ensuring secure communication
- StartSSL
- state tree / Designing a RESTful-like API
- strict mode
- using / Using strict mode
- Strict Transport Security
- Swagger
- Symantec
T
- tags / Receiving Pushes from Boxcar
- Tasker
- about / Introducing Tasker
- Telerik Platform
- templates pattern
- about / The templates pattern
- utility libraries / The templates pattern
- AngularJS / The templates pattern
- TLS/SSL
- using / Using TLS/SSL always
U
- Uniform Resource Identifier (URI)
- Urban Airship
- URL routing pattern
- about / The URL routing pattern
- user
- authenticating, with backend / Authenticating the user with the backend
- User Interface (UI) frameworks
- about / Libraries and frameworks, User Interface frameworks
- Ionic Framework / User Interface frameworks
- Sencha Touch / User Interface frameworks
- Chocolate Chip UI / User Interface frameworks
- Framework 7 / User Interface frameworks
- Intel App Framework / User Interface frameworks
- YASMF-Next / User Interface frameworks
- referenceS / User Interface frameworks
- utility frameworks
- about / Libraries and frameworks
- utility libraries and frameworks
- MicroJS / Additional utility libraries and frameworks
- RactiveJS / Additional utility libraries and frameworks
- Rivets.JS / Additional utility libraries and frameworks
- UUID, Cordova
V
- Validate.js
- URL / Forms and the validation
- Verify.js
- URL / Forms and the validation
- version control system (VCS) / Cordova app structure
- View / MVC (Model-View-Controller)
- view management / View management
- virtual private network (VPN) / Server architecture
W
- web service API / Server architecture
- Webshim
- URL / Forms and the validation
- Wireframe.cc
- URL / Mock-up design tools
- about / Mock-up design tools
X
- Xcode / Additional iOS configuration steps
- XHR
- used, for communicating with backend / Communicating with the backend using XHR
- handlers, adding / Communicating with the backend using XHR
- XHR request
- processing / Communicating with the backend using XHR
Y
- YASMF-Next