The book consists of the following chapters:

Chapter 1: The What, How, Why, and More of Apache Cordova

This chapter provides a complete introduction to Apache Cordova and Adobe PhoneGap. It covers what Apache Cordova is, what it does and how developers can use it to build hybrid mobile applications. It also includes a little bit history of the project as well as its current state.

The chapter covers a bit about Cordova application UI, the Cordova APIs and the Cordova application build process. Each of these topics are covered in greater detail in subsequent chapters.

Chapter 2: Anatomy of a Cordova Application

This chapter describes what defines a Cordova application. In the chapter, you're shown a progression of application examples from the very simple to the slightly complex, all thoroughly described, that illustrate how to create a Cordova application and start to leverage the Cordova application's native capabilities. You'll also find some content describing how to write a web application for mobile devices.

The chapter also highlights different approaches to structuring a Cordova application's source files and how that impacts troubleshooting and more.

Chapter 3: Configuring a Cordova Development Environment

Contains the most complete reference available for how to configure Macintosh and Windows systems for Apache Cordova development. As Android and iOS are the most popular platforms, this chapter shows how to install the associated SDKs and any required components.

Once the prerequisites are installed, you'll be shown how to install the Cordova CLI and Plugman. For anyone just starting with Cordova development, this chapter's content will help accelerate your ability to get started with a productive development environment.

Chapter 4: Using the Cordova Command-Line Interfaces

Once you've learned how to install the Cordova command-line tools, this chapter shows you, with complete examples and thorough descriptions, how to use the commands exposed by the Cordova CLI and Plugman. You'll learn how to create Cordova projects then manage the application's configuration, plugins and web application content using the appropriate CLI.

The skills you learn from this chapter are put to use in subsequent chapters. For the Cordova CLI, you'll see the complete end to end development process explained, with examples, to solidify your knowledge of the Cordova CLI and how it works in Chapter 15. For plugin development, Plugman's use is further detailed in Chapter 16.

Chapter 5: The Mechanics of Cordova Development

With a functional Cordova development environment in place, and some experience with the Cordova CLIs, Chapter 5 walks you through the mechanics of the Cordova development process. The chapter highlights some of the inconsistencies Cordova developer face then walks you through the steps in a typical development process. Throughout the chapter, you'll learn about the Cordova application project and its folder structure as well as the cool features included which, along with the Cordova CLI, simplify cross-platform development.

You'll learn about the Cordova project configuration files and how to use them. You'll also learn how to test and debug Cordova applications using general purpose tools included with the Cordova CLI and some common tools. You'll learn how to use specific tools like weinre, Ripple, PhoneGap Developer App and GapDebug. In the later chapters dedicated to the individual platform SDKs, you'll learn more about the available platform-specific debugging capabilities.

Chapter 6: Automation and the Cordova CLI

This chapter shows you how to automate some Cordova development tasks using command files or scripts and highlights how to use Cordova Hooks to enhance the Cordova development process with your own code. Refer to Chapter 18 for information on how to use select third party tools with your Cordova projects.

Chapter 7: Android Development with Cordova

For developers working on Android applications, this chapter covers Android platform-specific tools and capabilities. If you're new to Android development, this chapter will show you how to use the tools provided by Google with your Cordova projects. Even if you're an experienced Android developer, there is still useful information about how Google's tools work with Cordova applications.

Chapter 8: Firefox OS Development with Cordova

Firefox OS is a relatively new mobile platform and Mozilla is heavily involved in the Cordova project. In this chapter, I'll show you how to leverage Firefox OS support for your Cordova applications. I'll also show you how to use the Firefox browser to test and debug your Cordova applications in a simulator or on a physical device.

Chapter 9: iOS Development with Cordova

For developers working on iOS applications, this chapter covers iOS platform-specific tools and capabilities. If you're new to iOS development, this chapter will show you how to use the tools provided by Apple with your Cordova projects. Even if you're an experienced iOS developer, there is still useful information about how Apple's tools work with Cordova applications.

Chapter 10: Ubuntu Development with Cordova

Ubuntu Touch is a new mobile platform and Cordova supports Ubuntu through the involvement of Canonical. In this chapter, I'll show you how to install and use the available tools to add support for Ubuntu Touch in your Cordova applications. I'll also show you how to use the Ubuntu tools to test and debug your Cordova applications in a simulator or on a physical device.

Chapter 11: Windows Development with Cordova

This chapter is for developers working with the Microsoft Windows platform. Herein, I show how to install, setup and use Microsoft Visual Studio to build, test and debug Cordova applications for Microsoft Windows.

The chapter also covers the new hybrid development tools from Microsoft that allow a developer to use Visual Studio to build, test and debug Cordova applications for Windows, Android AND iOS. It's pretty amazing stuff and dramatically simplifies the Cordova development process.

Chapter 12: Using PhoneGap Build

For some developers, setting up and maintaining a Cordova development environment can be challenging. To help developers in this situation, the PhoneGap team has delivered the PhoneGap Build cloud-based build service for PhoneGap applications. In this chapter, you'll learn how to use this service to package/build PhoneGap applications.

Chapter 13: Using the PhoneGap CLI

The PhoneGap team has implemented their own CLI that's different from the Cordova CLI, so in this chapter I show you how to leverage the PhoneGap CLI commands to create and manage PhoneGap application projects. Since there's a lot of overlap between the two CLIs, in this chapter, I'll simply cover the commands that are unique to PhoneGap; using the content from Chapter 4 to cover the common elements between the two.

Chapter 14: Working with the Cordova APIs

One of the biggest benefits of Apache Cordova is that it provides web applications with access to a set of native APIs the application can use to allow the application's web content to interact with native device features. In this chapter, you'll learn how to use most of the Cordova APIs (some of them are already common features in some modern smartphone browsers, so they're omitted) in you hybrid applications.

The chapter describes the purpose and use for each API and includes sample code that shows how the API works. The Cordova documentation provides a lot of this same information, but in this book, you'll find a lot more how and why details that the Cordova developers simply don't provide. This chapter is a big one, covering a lot of information, so I don't go into too much detail into the nuances of each API, but between the Cordova API documentation and this book, you have a lot of good information you will need to get started.

The topic is important enough that there could be a whole book dedicated to it. Fortunately for you, there is. My Apache Cordova API CookbookApache Cordova API Cookbook contains about 300 pages of dedicated content focused solely on the Cordova APIs. Where this book briefly explains and demonstrates most Cordova APIs, in Apache Cordova API Cookbook, there's a separate chapter dedicated to each API and the book includes more than 30 complete sample applications that exercise each aspect of each API.

Chapter 15: Cordova Development End to End

By now you've learned a lot about Apache Cordova and how it works; in this chapter, you'll learn the complete, end to end Cordova development process using a real example application project. In this chapter, I take the Compass application from PhoneGap EssentialsPhoneGap Essentials and update it with custom compass graphic for different target platforms, a custom application and more. This chapter is a way to pull everything together into a more concrete example than what is covered previously.

Chapter 16: Creating Cordova Plugins

The Cordova APIs are implemented as plugins, and if you want to leverage a particular native API in your Cordova applications, but the API isn't exposed through a Cordova plugin, you're going to have to create your own. In this chapter, you'll learn how to use the tools provided by the Cordova team to create your own, custom plugins for Apache Cordova.

The chapter begins by showing you how to create a JavaScript-only plugin you can use on any platform supported by Apache Cordova. The purpose of this is to illustrate how a plugin is structured and how to use the CLI tools to create, manage and publish your plugin. Next, the chapter shows you how to create a native plugin for Android and iOS. This allows you to leverage what was learned with the first plugin by layering on native code to what was already presented. It's not complete coverage of the topic, that would require a complete book dedicated to the topic, but it is enough to get you started making your own plugins.

Chapter 17: Using Third-Party UI Frameworks with Cordova

Cordova applications are web applications running in a native application container. There are a lot of third-party HTML5 frameworks available to simplify web application development and so often, developers ask on forums which ones are compatible with Apache Cordova. Well, pretty much all of them are, and in this chapter I show how to use several popular and some not so popular HTML5 frameworks in Cordova applications. There are even a few hybrid application focused frameworks available today, so I cover some of those as well.

In the chapter, you'll learn how to create a project using the framework then use that framework in a sample Cordova application project. As with all of the other code from the book, it's all available online.

Chapter 18: Using Third-Party Tools with Cordova

There are a lot of third party tools available to Cordova developers. In this chapter, I demonstrate how to a bevy of tools when working with Cordova applications. I cover the use of several Cordova/PhoneGap-aware code editors like Adobe Brackets and JetBrains WebStorm, code validation tools like JSHint and JSLint, productivity tools like AppGyver and Eclipse THyM plus build tools like Gulp and Grunt.

There are, of course, a lot of other tools available to developers, this chapter simply covers some of the most popular ones or ones that I think are pretty cool (and useful).