Tutorial: Developing a PhoneGap Application

In this tutorial, you create a fully functional employee directory application with PhoneGap. You will learn:

  • How to use different local data storage strategies.
  • How to use several PhoneGap APIs such as Geolocation, Contacts, and Camera.
  • How to handle specific mobile problems such as touch events, scrolling, styling, page transitions, etc.
  • How to build an application using a single page architecture and HTML templates.
  • How to build (compile and package) an application for 6 platforms using PhoneGap Build.

To complete this tutorial, all you need is a code editor, a modern browser, and a connection to the Internet. A working knowledge of HTML and JavaScript is assumed, but you don’t need to be a JavaScript guru.

Setting Up

  1. Download the assets for the workshop here.
  2. Unzip the file anywhere on your file system.
  3. If your code editor allows you to “open a directory”, open the phonegap-workshop-master directory.
  4. Follow the instructions below.
Step-by-step solution files are also available here.

Part 1: Choosing a Local Storage Option

Step 1: Explore different persistence mechansisms

Open the following files in phonegap-workshop-master/js/storage, and explore the different persistence stores they define:

  1. memory-store.js (MemoryStore)
  2. ls-store.js (LocalStorageStore)
  3. websql-store.js (WebSqlStore)

Step 2: Test the application with different persistence mechanisms

To change the local persistence mechanism for the application:

  1. In index.html: add a script tag for the corresponding .js file: memory-store.js, ls-store.js, or websql-store.js.
  2. In js/main.js: Instantiate the specific store in the initialize() function of the app object: MemoryStore, LocalStorageStore, or WebSqlStore.
  3. To test the application, open index.html in your browser, or simply double-click index.html on your file system. Type a few characters in the search box to search employees by name. Clicking an employee link doesn’t produce any result at this time.

Part 2: Building with PhoneGap Build

  1. If you don’t already have one, create an account on http://build.phonegap.com.
  2. Click the “new app” button to create a new application on PhoneGap Build.
  3. Either point to a GitHub repository where you push your code for this workshop, or zip up your phonegap-workshop directory and upload it to PhoneGap Build.
  4. Click the Ready to build button.
    The iOS button will immediately turn red because the iOS build requires that you upload your Apple Developer certificate and an application provisioning profile. You can find more information here if you haven’t already signed up for the Apple Developer Program. If you don’t have an iOS device, or if you are not ready to upload your developer certificate, you can skip step 5 and keep running the application in the browser or a non iOS device.
  5. To upload your Apple developer certificate and your application provisioning profile:
    • Click the red iOS button.
    • Select “add a key” in the “No key selected” dropdown.
    • Provide a title for your developer certificate/provisioning profile combination (for example: EmployeeDirectory), select your developer certificate and provisioning profile, enter your developer certificate password, and click “submit key”.
    • Go back to the list of apps. Click the iOS button for your application again. Select your newly added key in the iOS dropdown. The iOS build will start automatically.
  6. When the build process completes, use a QR Code reader app to install the Employee Directory application on your device.

To fine tune your build preferences:

  1. In the phonegap-workshop directory, create a file namedconfig.xml file defined as follows (make the necessary adjustments for id, author, etc.):
    <?xml version="1.0" encoding="UTF-8"?>
    <widget xmlns       = "http://www.w3.org/ns/widgets"
            xmlns:gap   = "http://phonegap.com/ns/1.0"
            id          = "org.coenraets.employeedirectory"
            versionCode = "10"
            version     = "1.1.0">
        <name>Employee Directory</name>
            A simple employee directory application
        <author href="http://coenraets.org" email="ccoenraets@gmail.com">
            Christophe Coenraets
        <feature name="http://api.phonegap.com/1.0/camera"/>
        <feature name="http://api.phonegap.com/1.0/contacts"/>
        <feature name="http://api.phonegap.com/1.0/file"/>
        <feature name="http://api.phonegap.com/1.0/geolocation"/>
        <feature name="http://api.phonegap.com/1.0/media"/>
        <feature name="http://api.phonegap.com/1.0/network"/>
        <feature name="http://api.phonegap.com/1.0/notification"/>
  2. If you used the GitHub approach, sync with GitHub and click the Update Code button in PhoneGap Build.
    If you used the zip file approach, zip up your phonegap-workshop directory and upload the new version to PhoneGap Build
There are many other parameters you can specify in config.xml to configure the build process. See the documentation for config.xml here.

Part 3: Using Native Notification

A default webview alert gives away the fact that your application is not native. In this section, we set up the basic infrastructure to display native alerts when the application is running on a device, and fall back to default browser alerts when running in the browser.

  1. In index.html, add the following script tag (as the first script tag at the bottom of the body):
    <script src="phonegap.js"></script>

    This instructs PhoneGap Build to inject a platform specific version of phonegap.js at build time. In other words, phonegaps.js doesn’t need to be (and shouldn’t be) present in your project folder.

  2. In main.js, define a function named showAlert() inside the app object. If navigator.notification is available, use its alert() function. Otherwise, use the default browser alert() function.
    showAlert: function (message, title) {
        if (navigator.notification) {
            navigator.notification.alert(message, null, title, 'OK');
        } else {
            alert(title ? (title + ": " + message) : message);
  3. Test the notification logic by displaying a message when the application store has been initialized: Pass an anonymous callback function as an argument to the constructor of the persistence store (the store will call this function after it has successfully initialized). In the anonymous function, invoke the showAlert() function.
    initialize: function() {
        var self = this;
        this.store = new MemoryStore(function() {
            self.showAlert('Store Initialized', 'Info');
        $('.search-key').on('keyup', $.proxy(this.findByName, this));
  4. Test the application: When you run the application in the browser, you should see a standard browser alert. When you run the application on your device, you should see a native alert.

Part 4: Setting Up a Single Page Application

A single page application is a web application that lives within a single HTML page. The “views” of the application are injected into- and removed from the DOM as needed as the user navigates through the app. A single page application architecture is particularly well suited for mobile apps:

  • The absence of continual page refreshes provides a more fluid / closer to native experience.
  • The UI is entirely created at the client-side with no dependency on a server to create the UI, making it an ideal architecture for applications that work offline.

In this section, we set up the basic infrastructure to turn Employee Directory into a single page application.

  1. In index.html: remove the HTML markup inside the body tag (with the exception of the script tags).
  2. In main.js, define a function named renderHomeView() inside the app object. Implement the function to programmatically add the Home View markup to the body element.
    renderHomeView: function() {
        var html =
                "<div class='header'><h1>Home</h1></div>" +
                "<div class='search-view'>" +
                "<input class='search-key'/>" +
                "<ul class='employee-list'></ul>" +
        $('.search-key').on('keyup', $.proxy(this.findByName, this));
  3. Modify the initialize() function of the app object. In the anonymous callback function of the store constructor, call the renderHomeView() function to programmatically display the Home View.
    initialize: function() {
        var self = this;
        this.store = new MemoryStore(function() {

Part 5: Using Handlebar Templates

Writing HTML fragments in JavaScript and programmatically inserting them into the DOM is tedious. It makes your application harder to write and harder to maintain. HTML templates address this issue by decoupling the UI definition (HTML markup) from your code. There are a number of great HTML template solutions: Mustache.js, Handlebar.js, and Underscore.js to name a few.

In this section, we create two templates to streamline the code of the Employee Directory application. We use Handlebar.js but the smae result can be achieved using the other HTML template solutions.

Modify index.html as follows:

  1. Add a script tag to include the handlebar.js library:
    <script src="lib/handlebars.js"></script>
  2. Create an HTML template to render the Home View. Add this script tag as the first child of the body tag:
    <script id="home-tpl" type="text/x-handlebars-template">
        <div class='header'><h1>Home</h1></div>
        <div class='search-bar'><input class='search-key' type="text"/></div>
        <ul class='employee-list'></ul>
  3. Create an HTML template to render the employee list items. Add this script tag immediately after the previous one:
    <script id="employee-li-tpl" type="text/x-handlebars-template">
        <li><a href="#employees/{{this.id}}">{{this.firstName}} {{this.lastName}}<br/>{{this.title}}</a></li>

Modify main.js as follows:

  1. In the initialize() function of the app object, add the code to compile the two templates defined above:
    this.homeTpl = Handlebars.compile($("#home-tpl").html());
    this.employeeLiTpl = Handlebars.compile($("#employee-li-tpl").html());
  2. Modify renderHomeView() to use the homeTpl template instead of the inline HTML:
    renderHomeView: function() {
        $('.search-key').on('keyup', $.proxy(this.findByName, this));
  3. Modify findByName() to use the employeeLiTpl template instead of the inline HTML:
    findByName: function() {
        var self = this;
        this.store.findByName($('.search-key').val(), function(employees) {
  4. Test the application.

Part 6: Creating a View Class

It’s time to provide our application with some structure. If we keep adding all the core functions of the application to the app object, it will very quickly grow out of control. In this section we create a HomeView object that encapsulates the logic to create and render the Home view.

Step 1: Create the HomeView Class

  1. Create a file called HomeView.js in the js directory, and define a HomeView class implemented as follows:
    var HomeView = function(store) {
  2. Add the two templates as static members of HomeView.
    var HomeView = function(store) {
    HomeView.template = Handlebars.compile($("#home-tpl").html());
    HomeView.liTemplate = Handlebars.compile($("#employee-li-tpl").html());
  3. Define an initialize() function inside the HomeView class. Define a div wrapper for the view. The div wrapper is used to attach the view-related events. Invoke the initialize() function inside the HomeView constructor function.
    var HomeView = function(store) {
        this.initialize = function() {
            // Define a div wrapper for the view. The div wrapper is used to attach events.
            this.el = $('<div/>');
            this.el.on('keyup', '.search-key', this.findByName);
    HomeView.template = Handlebars.compile($("#home-tpl").html());
    HomeView.liTemplate = Handlebars.compile($("#employee-li-tpl").html());
  4. Move the renderHomeView() function from the app object to the HomeView class. To keep the view reusable, attach the html to the div wrapper (this.el) instead of the document body. Because the function is now encapsulated in the HomeView class, you can also rename it from renderHomeView() to just render().
    this.render = function() {
        return this;
  5. Move the findByName() function from the app object to the HomeView class.
    this.findByName = function() {
        store.findByName($('.search-key').val(), function(employees) {

Step 2: Using the HomeView class

  1. In index.html, add a script tag to include HomeView.js (just before the script tag for main.js):
    <script src="js/HomeView.js"></script>
  2. Remove the renderHomeView() function from the app object.
  3. Remove the findByName() function from the app object.
  4. Modify the initialize function() to display the Home View using the HomeView class:
    initialize: function() {
        var self = this;
        this.store = new MemoryStore(function() {
            $('body').html(new HomeView(self.store).render().el);

Part 7: Adding Styles and Touch-Based Scrolling

Step 1: Style the Application

  1. Add the Source Sans Pro font definition to the head of index.html
    <script src="css/source-sans-pro.js"></script>

    Source Sans Pro is part of the free Adobe Edge Web Fonts.

  2. Add styles.css to the head of index.html
    <link href="css/styles.css" rel="stylesheet">
  3. In index.html, modify the home-tpl template: change the search-key input type from text to search.
  4. Test the application. Specifically, test the list behavior when the list is bigger than the browser window (or the screen)

Step 2: Native Scrolling Approach

  1. Modify the home-tpl template in index.html. Add a div wrapper with a scroll class around the ul element with a scroll:
    <script id="home-tpl" type="text/x-handlebars-template">
        <div class='header'><h1>Home</h1></div>
        <div class='search-bar'><input class='search-key' type="search"/></div>
        <div class="scroll"><ul class='employee-list'></ul></div>
  2. Add the following class definition to css/styles.css:
    .scroll {
        overflow: auto;
        -webkit-overflow-scrolling: touch;
        position: absolute;
        top: 84px;
        bottom: 0px;
        left: 0px;
        right: 0px;
If the platforms you target support touch-based scrolling of fixed regions, this approach is all you need (you can skip step 3 below). If not, you’ll need to implement a programmatic approach, typically with the help of a library such as iScroll.

Step 3: iScroll Approach

  1. Add a script tag to include the iscroll.js library:
    <script src="lib/iscroll.js"></script>
  2. In HomeView.js, modify the findByName() function: Instantiate an iScroll object to scroll the list of employees returned. If the iScroll object already exists (), simply refresh it to adapt it to the new size of the list.
    this.findByName = function() {
        store.findByName($('.search-key').val(), function(employees) {
            if (self.iscroll) {
                console.log('Refresh iScroll');
            } else {
                console.log('New iScroll');
                self.iscroll = new iScroll($('.scroll', self.el)[0], {hScrollbar: false, vScrollbar: false });
More information on iScroll is available here.

Part 8: Highlighting Tapped or Clicked UI Elements

  1. In styles.css, add a tappable-active class definition for tapped or clicked list item links. The class simply highlights the item with a blue background:
    li>a.tappable-active {
        color: #fff;
        background-color: #4286f5;
  2. In main.js, define a registerEvents() function inside the app object. Add a the tappable_active class to the selected (tapped or clicked) list item:
    registerEvents: function() {
        var self = this;
        // Check of browser supports touch events...
        if (document.documentElement.hasOwnProperty('ontouchstart')) {
            // ... if yes: register touch event listener to change the "selected" state of the item
            $('body').on('touchstart', 'a', function(event) {
            $('body').on('touchend', 'a', function(event) {
        } else {
            // ... if not: register mouse events instead
            $('body').on('mousedown', 'a', function(event) {
            $('body').on('mouseup', 'a', function(event) {
  3. Invoke the registerEvents() function from within the app object’s initialize() function.
  4. Test the application.

Part 9: View Routing

In this section, we add an employee details view. Since the application now has more than one view, we also add a simple view routing mechanism that uses the hash tag to determine whether to display the home view or the details view for a specific employee.

Step 1: Create the employee template

Open index.html and add a template to render a detailed employee view:

<script id="employee-tpl" type="text/x-handlebars-template">
    <div class='header'><a href='#' class="button header-button header-button-left">Back</a><h1>Details</h1></div>
    <div class='details'>
        <img class='employee-image' src='img/{{firstName}}_{{lastName}}.jpg' />
        <h1>{{firstName}} {{lastName}}</h1>
        <span class="location"></span>
            <li><a href="tel:{{officePhone}}">Call Office<br/>{{officePhone}}</a></li>
            <li><a href="tel:{{cellPhone}}">Call Cell<br/>{{cellPhone}}</a></li>
            <li><a href="sms:{{cellPhone}}">SMS<br/>{{cellPhone}}</a></li>

Step 2: Create the EmployeeView class

  1. Create a file called EmployeeView.js in the js directory, and define an EmployeeView class implemented as follows:
    var EmployeeView = function() {
  2. Add the template as a static member of EmployeeView.
    var EmployeeView = function() {
    EmployeeView.template = Handlebars.compile($("#employee-tpl").html());
  3. Define an initialize() function inside the HomeView class. Define a div wrapper for the view. The div wrapper is used to attach the view related events. Invoke the initialize() function inside the HomeView constructor function.
    var EmployeeView = function(employee) {
        this.initialize = function() {
            this.el = $('<div/>');
    EmployeeView.template = Handlebars.compile($("#employee-tpl").html());
  4. Define a render() function implemented as follows:
    this.render = function() {
        return this;
  5. In index.html, add a script tag to include EmployeeView.js (just before the script tag for main.js):
    <script src="js/EmployeeView.js"></script>

Step 3: Implement View Routing

  1. In the app’s initialize() function, define a regular expression that matches employee details urls.
    this.detailsURL = /^#employees\/(\d{1,})/;
  2. In the app’s registerEvents() function, add an event listener to listen to URL hash tag changes:
    $(window).on('hashchange', $.proxy(this.route, this));
  3. In the app object, define a route() function to route requests to the appropriate view:
    • If there is no hash tag in the URL: display the HomeView
    • If there is a has tag matching the pattern for an employee details URL: display an EmployeeView for the specified employee.
    route: function() {
        var hash = window.location.hash;
        if (!hash) {
            $('body').html(new HomeView(this.store).render().el);
        var match = hash.match(app.detailsURL);
        if (match) {
            this.store.findById(Number(match[1]), function(employee) {
                $('body').html(new EmployeeView(employee).render().el);
  4. Modify the initialize() function to call the route() function:
    initialize: function() {
        var self = this;
        this.detailsURL = /^#employees\/(\d{1,})/;
        this.store = new MemoryStore(function() {
  5. Test the application.

Part 10: Using the Location API

In this section, we add the ability to tag an employee with his/her location information. In this sample application, we display the raw information (longitude/latitude) in the employee view. In a real-life application, we would typically save the location in the database as part of the employee information and show it on a map.

The code below works when running the application as a PhoneGap app on your device. It should also work in Chrome on the desktop when the page is served with the http:// protocol, and in Firefox, regardless of the protocol (http:// or file://).
  1. In index.html, add the following list item to the employee-tpl template:
    <li><a href="#" class="add-location-btn">Add Location</a></li>
  2. In the initialize() function of EmployeeView, register an event listener for the click event of the Add Location list item:
    this.el.on('click', '.add-location-btn', this.addLocation);
  3. In EmployeeView, define the addLocation event handler as follows:
    this.addLocation = function(event) {
            function(position) {
                $('.location', this.el).html(position.coords.latitude + ',' + position.coords.longitude);
            function() {
                alert('Error getting location');
        return false;
  4. Test the Application

Part 11: Using the Contacts API

In this section, we use the PhoneGap Contacts API to provide the user with the ability to add an employee to the device’s contact list.

The code below only works when running the application on your device as a PhoneGap app. In other words, you can’t test it in a browser on the desktop.
  1. In index.html, add the following list item to the employee template:
    <li><a href="#" class="add-contact-btn">Add to Contacts</a></li>
  2. In the initialize() function of EmployeeView, register an event listener for the click event of the Add to Contacts list item:
    this.el.on('click', '.add-contact-btn', this.addToContacts);
  3. In EmployeeView, define the addToContacts event handler as follows:
    this.addToContacts = function(event) {
        if (!navigator.contacts) {
            app.showAlert("Contacts API not supported", "Error");
        var contact = navigator.contacts.create();
        contact.name = {givenName: employee.firstName, familyName: employee.lastName};
        var phoneNumbers = [];
        phoneNumbers[0] = new ContactField('work', employee.officePhone, false);
        phoneNumbers[1] = new ContactField('mobile', employee.cellPhone, true); // preferred number
        contact.phoneNumbers = phoneNumbers;
        return false;
  4. Test the Application

Part 12: Using the Camera API

In this section, we use the PhoneGap Camera API to provide the user with the ability to take a picture of an employee, and use that picture as the employee’s picture in the application. We do not persist that picture in this sample application.

The code below only works when running the application on your device as a PhoneGap app. In other words, you can’t test it in a browser on the desktop.
  1. In index.html, add the following list item to the employee template:
    <li><a href="#" class="change-pic-btn">Change Picture</a></li>
  2. In the initialize() function of EmployeeView, register an event listener for the click event of the Change Picture list item:
    this.el.on('click', '.change-pic-btn', this.changePicture);
  3. In EmployeeView, define the changePicture event handler as follows:
    this.changePicture = function(event) {
        if (!navigator.camera) {
            app.showAlert("Camera API not supported", "Error");
        var options =   {   quality: 50,
                            destinationType: Camera.DestinationType.DATA_URL,
                            sourceType: 1,      // 0:Photo Library, 1=Camera, 2=Saved Photo Album
                            encodingType: 0     // 0=JPG 1=PNG
            function(imageData) {
                $('.employee-image', this.el).attr('src', "data:image/jpeg;base64," + imageData);
            function() {
                app.showAlert('Error taking picture', 'Error');
        return false;
  4. Test the Application

Part 13: Sliding Pages with CSS Transitions

  1. Add the following classes to styles.css:
    .page {
        position: absolute;
        width: 100%;
        height: 100%;
    .stage-center {
        top: 0;
        left: 0;
    .stage-left {
        left: -100%;
    .stage-right {
        left: 100%;
    .transition {
        -moz-transition-duration: .375s;
        -webkit-transition-duration: .375s;
        -o-transition-duration: .375s;
  2. Inside the app object, define a slidePage() function implemented as follows:
    slidePage: function(page) {
        var currentPageDest,
            self = this;
        // If there is no current page (app just started) -> No transition: Position new page in the view port
        if (!this.currentPage) {
            $(page.el).attr('class', 'page stage-center');
            this.currentPage = page;
        // Cleaning up: remove old pages that were moved out of the viewport
        $('.stage-right, .stage-left').not('.homePage').remove();
        if (page === app.homePage) {
            // Always apply a Back transition (slide from left) when we go back to the search page
            $(page.el).attr('class', 'page stage-left');
            currentPageDest = "stage-right";
        } else {
            // Forward transition (slide from right)
            $(page.el).attr('class', 'page stage-right');
            currentPageDest = "stage-left";
        // Wait until the new page has been added to the DOM...
        setTimeout(function() {
            // Slide out the current page: If new page slides from the right -> slide current page to the left, and vice versa
            $(self.currentPage.el).attr('class', 'page transition ' + currentPageDest);
            // Slide in the new page
            $(page.el).attr('class', 'page stage-center transition');
            self.currentPage = page;
  3. Modify the route() function as follows:
    route: function() {
        var self = this;
        var hash = window.location.hash;
        if (!hash) {
            if (this.homePage) {
            } else {
                this.homePage = new HomeView(this.store).render();
        var match = hash.match(this.detailsURL);
        if (match) {
            this.store.findById(Number(match[1]), function(employee) {
                self.slidePage(new EmployeeView(employee).render());

492 Responses to Tutorial: Developing a PhoneGap Application

  1. Adrien Glitchbone November 27, 2012 at 7:30 pm #


    • Gary Banzo June 24, 2013 at 1:59 am #

      Alternatives to Phonegap Build?

      • AvanceITTrends December 13, 2014 at 2:43 am #

        Its really nice tutorials, and lot of learn new things for here.

      • Upendra December 14, 2014 at 11:50 pm #

        appcelerator titanium studio :-)

  2. ryo November 27, 2012 at 7:34 pm #

    very nice tutorial, very simple and clear. I am in the process of adding transition to my apps, and find part 8, part 13 is very useful.

    • ryo November 28, 2012 at 11:08 pm #

      In my case, css a:active would be better than part8 touchstart, touchend event hack on the mobile device. The later one will have a problem if you touch the button or anchor, and hold it, move to other place and release it. The css class “tappable-active” will not be removed.

  3. JCLang November 28, 2012 at 11:19 am #

    Hello Christophe.
    A great job you’re doing, thank you.
    We miss you in the Flex World :)

  4. csheets November 28, 2012 at 6:23 pm #

    excellent tutorial – best I have seen on creating a good phonegap application architecture

    I haven’t made it all the way through yet but I have found a couple of items that may be of use to others:

    1) Step #4 is missing ending “;” for html var declaration statement – this renders in Chrome desktop browser but not on Android

    2) Step #5.1 tag needs to be placed before the app.js tag (maybe obvious but..)

    also I should mention that I am using PhoneGap 2.2 in Eclipse development environment

    again thanks for the tutorial and architecture example!

  5. Dams640 December 4, 2012 at 12:43 pm #

    Thank you for this great job!

  6. Styxali December 4, 2012 at 9:08 pm #

    Very nice tutorial.. Thanks a lot (y)

  7. Anon December 4, 2012 at 10:38 pm #

    Thanks for the great tutorial! Question: After selecting an employee and “sliding” back to the homepage, the search box seems to be disabled. Anyone know why? Thanks.

  8. Sandro December 8, 2012 at 3:25 pm #

    I have the same issue. Anyone can help us? Thanks!

  9. Vladimir December 14, 2012 at 11:38 am #

    This is great tutorial, i had pleasure reading and following. There is some code which didn’t work for me, like calling methods within event handlers. So I had to wrap them within anonymous functions and also give them context. For example this event handler this.el.on(‘keyup’, ‘.search-key’, this.findByName); had to be written llike var that = this; this.el.on(‘keyup’, ‘.search-key’, function(){that.findByName();});

    My question is there a particular name for this pattern in JavaScript ? It reminds me some of BackboneJS structuring. Were you inspired by it?

    It would be also great to see some ajax layers and how would that fit into a whole thing.

    Awesome tutorial once again, thanks!

    • Jim O'Keefe February 4, 2013 at 5:28 pm #

      I had the same experience. Original code caused an error within jQuery. Vlad’s code worked.

    • Jim O'Keefe February 5, 2013 at 2:20 am #

      Similarly in step 11.2 this is what worked for me:

      this.el.on(‘click’, ‘.add-location-btn’, function(){that.addLocation(event);});

      notice in particular that the event needed to be passed along to the addLocation function.

      • Jim O'Keefe February 5, 2013 at 2:22 am #

        that should be section 10.2 – Using the Location API

    • Anna October 2, 2013 at 1:36 pm #

      Thanks for this fix!

    • Saad Siddiqui May 12, 2014 at 1:12 pm #

      Thought this is toooo late but this just to give you more information on JavaScript objects. The code is perfectly written without any single error your context issue is invalid.

      see in JavaScript objects you have to define the property before its required. Like in this case the issue is not of context what all you have to do is do define the initialize function at the end of the object. So no hacks/tricks required to that.

      JavaScript Objects behavior is not similar to other programming languages, you have to define first what ever you want and use it after that. JavaScript works in a single thread environment.


      • ksb January 23, 2016 at 7:00 pm #

        Thank you for this very simple solution!

  10. kozmicblues December 15, 2012 at 3:59 am #

    Great tutorials. I’ve learned a lot.
    How come in the websql-store.js you always drop the table and repopulate it? How come you don’t check the version first and not install it if there are no changes?

  11. phpyuz December 20, 2012 at 4:20 pm #

    Christophe, very nice tutorial. I have a question for you. ;)
    Windows Phone doesn’t support WebSQL. Can lawnchair be a valid alternative to store big size data? Please, advice.

  12. Isidro January 15, 2013 at 6:26 pm #

    Regarding to the search box disabled when going back to the home page, I solved it setting the id of the div element in HomeView.js to “homePage” and changing … not(‘.homePage’) … to … not(‘#homePage’) … in main.js.

    • andyg1 May 11, 2013 at 9:43 am #

      That’s a great shout.

    • Bleepy November 22, 2013 at 6:50 am #

      This didnt work for me :(

      • Bleepy November 22, 2013 at 6:53 am #

        Apologies, it did fix the problem.
        Now to find out why I can still scroll to the employee page from home.

    • sanjog September 9, 2014 at 3:07 am #

      which id of div element did you change

  13. cirovladimir January 18, 2013 at 1:41 am #

    Thank you very much!

    Very good tutorial. Now I have an idea of phonegap to see if it fits my needs.

  14. Sam Hunting January 24, 2013 at 6:45 am #

    Thanks for the best tutorial on Cordova/PhoneGap I have seen.

    I’m having trouble with this function:

    this.store.findById(Number(match[1]), function(employee)

    In step 3.3.

    I’m using memoryStore, and when I trace the callback there the parameters seem to be right. I’m using Cordova 2.30.

    • MuddJeff February 8, 2013 at 9:42 pm #

      Check that you have the ’employee’ in Part 9, step 2.
      var EmployeeView = function(employee) { … }

      It’s there in step 2.3, but not in step 2.1 – 2.2

      • David Horn March 28, 2014 at 8:32 pm #

        Brilliant – thanks for that … loads of head scratching, and I’d missed the (employee) out of the function. Cheers!

  15. 4Dev January 30, 2013 at 2:59 pm #

    Would just like to know if you are using jQuery? It looks like it in some examples code.

    • Steve September 22, 2013 at 1:27 am #

      Yup, jQuery is used.

  16. foobar January 30, 2013 at 5:05 pm #


    is it possible to customize the splash screen and use the builder to build everything? For example creating the resource folder and put it in there and then upload it to phonegap builder?

    Thanks in advance

    • Chris August 22, 2013 at 5:37 am #

      Check the config.xml for the phonegap application. You can customize the splash screen and app icons from there.

  17. Dong February 1, 2013 at 4:38 pm #

    “If you don’t have an iOS device, or if you are not ready to upload your developer certificate, you can skip step 5 and keep running the application in the browser or a non iOS device.”

    However, I can not figure out how to skip step 5(upload apple developer certificate). The whole process just stopped.

    ps: I’m using the sample code from this tutorial.


    • Dong February 1, 2013 at 8:16 pm #

      It need about one hour to finish compiling and go to next step.

  18. selman February 9, 2013 at 8:34 pm #

    Thanks for this insightful tutorial!

    Just one question: How can i import and use this code in eclipse?


  19. niki4810 February 9, 2013 at 9:02 pm #

    Hi Christophe,

    Thank you very much for posting this very well organized tutorial. This is by far the best working tutorial I have come across for native mobile app development.


  20. Joe February 12, 2013 at 5:31 am #

    Wow, native development?? Hardly, this is web development without the benefit of serving UI remotely. Just because it compiles into an “app” doesn’t make it “native”. It’s still depends on a browser, inferior JS engines and JS APIs, and HTML code.

  21. A.Bruce February 13, 2013 at 6:44 am #

    Small typos: Part 9, Step 2, Para 3. HomeView should be EmployeeView, twice.

  22. Walter February 16, 2013 at 4:28 am #

    thanks¡¡¡¡¡¡ served me a lot to understand the framework

  23. Mario February 19, 2013 at 1:51 pm #

    Hi, thank you for writing this tutorial.
    The resulting app, after building it with PhoneGap Build, is really slow on my Nexus S. (No other apps are running in background)
    Is there an active debug flag or something else, that should be unset for production release?
    Or is this what we can expect, concerning performance?

  24. kathir February 26, 2013 at 9:03 pm #

    Can we display images & details from json(other site) details,
    for example
    can display food item images, details from dynamic site(mysql)
    Any example there?

  25. Joseph Mainwaring February 28, 2013 at 1:06 am #

    Thank you for sharing so many excellent implementation tutorials! I figured I would have to go hunt for examples of these individually

  26. dcz.switcher March 2, 2013 at 10:10 pm #

    Thanks for this awesome tuto !

    if it can help : in HomeView.js, you must declare render() and findByName() functions BEFORE initialize() !
    if not, you must use the Vladimir hack

    • Steve September 21, 2013 at 11:46 pm #

      Thanks, that helped!

  27. dcz.switcher March 2, 2013 at 10:39 pm #

    … and if the search function not work after use back button, you can do that.

    in main.js, slidePage() function, add an ID to homePage then, test it after to not delete this view

    slidePage : function(page){
    var currentPageDest,
    self = this;

    .attr(‘class’, ‘page stage-center’)
    .attr(‘id’, ‘homePage’); // add ID !

    this.currentPage = page;

    $(‘.stage-right, .stage-left’).not(‘#homePage’).remove(); // exclusion of the home page with the ID !

    • Steve September 22, 2013 at 1:13 am #

      Thanks that was needed after adding the transitions

  28. Andres March 25, 2013 at 3:55 am #

    thanks a lot.
    now, i can start my final task from college.

  29. Magesh April 2, 2013 at 12:31 pm #

    Thanks for this good tutorial..

  30. Ryan LeTulle April 2, 2013 at 9:24 pm #

    Thank you! Awesomely done!

  31. Jeremy April 9, 2013 at 7:46 am #


    Great tips.

    I read here https://groups.google.com/forum/?fromgroups=#!searchin/phonegap/translate3d/phonegap/SlNAA9EOpxA/MAdTuFex4vMJ that ‘3D CSS transforms don’t work on Android 2.x or Android 3.x at all.’!!

    So your part 13 is limited to Android 4, correct?

    Kind regards

  32. Morgan April 10, 2013 at 11:02 pm #

    When following your tutorials, I get the following error:

    Uncaught SyntaxError: Unexpected token u Insertion.js:1
    (anonymous function) Insertion.js:1
    module.exports.send ripple.js:37
    module.exports.initialize ripple.js:38
    _baton.pass ripple.js:13
    _baton.pass ripple.js:13
    (anonymous function)

    This is when I have created my own files and using your solution files. I am viewing the code via the cordova/phonegap emulator with ripple in chrome.

    Any ideas?

    • Ben August 20, 2013 at 9:14 pm #

      Did you ever figure this out? I’m having the same issue

      • Egbert October 2, 2013 at 2:07 am #

        In ripple, try using another device then generic.
        I selected the Nexus 4 and boom, error is gone.
        It has to do with the User Agent being undefined. When choosing another device to emulate it is well filled.

  33. Mkhuda April 29, 2013 at 10:54 pm #

    Phonegap is easy to use and easy to rock. Thanks mr. Conraets for your great article !
    I was made app because your tutorial is help me so much. :D

  34. Sanket May 1, 2013 at 2:19 pm #

    Will it work for the latest version? If not do you have some tutorial for the latest version of Phonegap?

    • Sennin May 7, 2013 at 9:48 am #

      What I need to do, If I want those animations works smoothly? If I tap the back button or simply choose person from list, animation is pathetic, even on quadcore devices.

  35. professional phonegap developer May 16, 2013 at 7:59 am #

    Someone essentially help to make seriously posts I would state. This is the very first time I frequented your web page and thus far? I amazed with the research you made to create this particular publish amazing. Great job!

  36. penile extender May 19, 2013 at 9:30 am #

    I almost never leave remarks, however i did some searching and
    wound up here Tutorial: Developing a PhoneGap Application |
    Christophe Coenraets. And I actually do have a couple of questions for you
    if you tend not to mind. Could it be only me or does it seem like a few of these comments appear like written by brain dead individuals?
    :-P And, if you are writing at additional online social sites, I would
    like to follow everything new you have to post. Would you list of all of
    all your social pages like your twitter feed, Facebook page or linkedin profile?

  37. nuwancv May 21, 2013 at 10:14 am #

    A wonderful tutorial – I learned many things and this helped me covered lots of new areas with JS based development for mobile phone..

    Looking forward to see more from you. Wish you luck!

  38. Nicolas Rouyer May 23, 2013 at 2:59 am #

    Hi Christophe,

    Thanks a lot for this wonderful tutorial : it has been very helpful to me.
    I have a little question : what should I do when phonegap build tells me that “This app isn’t using the latest version of PhoneGap. We recommend upgrading to 2.7.0” ? Should I download latest version of phonegap to package my app instead of doing it online ?

    Best regards,


  39. Christophe May 23, 2013 at 10:54 am #

    Hi, very nice tutorial, was a great help for me!
    I have one question, the transitions between pages does some weird shit.
    the moment I click a link, the transitions start, but the content of the first page suddenly jumps down
    the content fades away, but is suddenly 50-100pixels lower before leaving the screen
    transition left or right, it’s the same problem

    Any idea?

    • Christophe May 24, 2013 at 10:53 am #

      Nevermind, fixed it…
      Other question, anyone here who knows how to work with iScroll? The scrolling works but the content jumps back to the top as soon as I release my finger?

  40. cash June 1, 2013 at 3:36 am #

    This is a completely useless tutorial

    Getting this crappy technology to work with eclipse is impossible unless you just want to write “hello
    world” .

    Phonegap is a far greater problem and more of a hassle than actually learning android .

    Don’t waste your time with this joke of a “technology” .

    But wait ! They have a solution – give away your idea and thus create a thousand clone apps on Github and they will compile it for you.
    That’s sweet.

  41. Nym June 5, 2013 at 1:19 pm #

    Christophe, I am curious if there is some benefit to replacing all content within the body tag rather than say just the html inside a container div with main content, in turn keeping the header bar in place. Of course this would eliminate the use of the page slide effect as well but that’s not something I really need. A coworker of mine suggested that it may be a performance issue manipulating the DOM but if the entire HTML content of the body tag is being replaced, isn’t that DOM manipulation as well?

  42. gary June 13, 2013 at 3:29 pm #

    One thing that got me confused is that the chapter “Part 7: Adding Styles and Touch-Based Scrolling”
    didn’t really affect the way the page looked, until I replaced

    – $(‘body’).html(new HomeView(self.store).render().el);
    + $(‘body’).append(new HomeView(self.store).render().el);

    (this change is spelled out much later in the last chapter but was not given at part 7 where it changes the entire “look”)

    please address all the comments in this tutorial to make it awesomer :)

    some parts of the code could be cleaned up. e.g:

    if (this.homePage) {
    } else {
    this.homePage = new HomeView(this.store).render();

    could be replaced by
    if (!this.homePage) {
    this.homePage = new HomeView(this.store).render();

  43. S Bradley June 27, 2013 at 11:55 am #

    Hi can someone help me understand the search capability of Employee Directory a bit better?

    We would like to use this in our organisation but need to be able to search by the person’s name, by Project (this could be the Department field) to see everyone working on a particular project and by location so we can limit search to only people in a particular office. Are you able to search that way with this app ? or does it only let you search by the person’s name?

    Thanks in advance for any info you can provide.

  44. Tim Waldie June 28, 2013 at 11:41 am #

    Excellent course! We would love to see this in our online computer training library. Can you have a look at my site to see examples of the other courses we offer and contact me if you are interested in producing a course for us?

    Best, Tim

  45. dvd rw June 29, 2013 at 3:39 am #

    I reckon something really interesting about your site so I bookmarked .

  46. dvd online June 29, 2013 at 3:41 am #

    You have mentioned very interesting points ! ps decent website . “I understand a fury in your words, But not the words.” by William Shakespeare.

  47. twilight dvd box June 29, 2013 at 3:42 am #

    I really like your writing style, wonderful information, thanks for posting :D. “Much unhappiness has come into the world because of bewilderment and things left unsaid.” by Feodor Mikhailovich Dostoyevsky.

  48. JasonMichael July 7, 2013 at 1:48 pm #

    I think this code provides an interesting start to a project, but unfortunately, I’m not sure if this is a nuance with jQuery or Firefox or both, but tracking the windows.location.hash and then setting windows.location with this code gave some results that took hours to troubleshoot – especially trying to develop this on a PC and then move the code over to Android – that might also have been an issue. I had to put in a “preventDefault()” to keep control of the mouse/click event in order to prevent a page loading issue. Also, I suspect since the code is using $.proxy, it continues to retain old values and never gets the new hash value after the event – so this required me to put the hash into a separate object, outside of the app object and using that for the regular expression match – otherwise there was no way I was ever going to have the employee details show up.

    The good thing about spending the time to fix this – I got a very close view of how it all works, and am confident I can use this as a start to a personal project. I think I like this better than the backbone.js example, because my particular project is very involved and I think I could develop using this example first, and then streamline it later – but this code still provides an efficient manner to display content in a fast way, and is flexible enough to play around with various features and possibly get a SQLite database working with it.


  49. Rima July 12, 2013 at 4:22 pm #

    Great tutorial, I didn’t know where to start with phone Gap before

  50. Pratik Butani July 13, 2013 at 6:43 am #

    Really Nice Practice…. Awesome…. Thanks a lot

  51. Fred July 21, 2013 at 6:25 pm #

    Great tutorial, did try it and got most areas to work however some areas still don’t work and would be great if you could share your thoughts

    Using latest version of phonegap and eulators i can get the scrolling to wok on either IOS or Android as well as non of the api’s are working,do you know if this is because how phonegap have evolved or any other points would be great
    (you can find my source code at https://bitbucket.org/fwahlqvist/phonegaptutorial )

    Many thanks

    • Yuraï July 24, 2013 at 2:35 pm #

      In ‘index.html’ you use ‘phonegap.js’! Why? Why not ‘cordova.js’!? Change it ;-) And try this app to run in web browser like Chrome and look to the Console.
      Rule #2: Keep your application “browser runnable” :-)

  52. Lee Wright July 23, 2013 at 4:54 am #

    I visited this blog it is nice and very informative for apps developers. Thanks for sharing this information

  53. Mark Galbreath July 23, 2013 at 9:33 am #

    I’ve never seen a tutorial for a GUI that didn’t include screenshots…what gives?

  54. Jerry July 28, 2013 at 10:36 pm #

    I am implementing the camera api feature. But How can I test my app? Do i need to install every SDK on my machine?

    I been following this url: http://docs.phonegap.com/en/edge/guide_platforms_index.md.html. Starting with Android but wow I can’t get it working.

  55. Rahul Bohra July 30, 2013 at 5:53 am #

    Is there any way can i add new employee into the application?
    very well drafted, please email me the adding employee process, need to learn more.

  56. jkf August 14, 2013 at 7:52 am #

    Thanks a lot for this great tutorial, keep it up!

    At the moment I’m working on a app that uses Handlebars templating.
    Right now I’m trying to include any of the popular touch-swipe libraries (swipe.js, photoSwipe.js, swipeshow.js) in one of my Handlebars templates.

    But I’m keep on getting the same error: ReferenceError: Swipe is not defined @ main.js:43

    I do check if my template is properly loaded, and print it’s html to check if it exists in the DOM, and everything seems in place.
    I’m aware that someone has manage to do this before: http://jsfiddle.net/nGULk/

    For the routing, I use your basic routing function where I check for hashchanges

    $(window).on(‘hashchange’, route);

    and then I initialize the swipe object after parsing the current page in the slidePage function:

    function route() {
    var hash = window.location.hash;
    if (hash ===’#story’) {
    slider.slidePage(new storyView(storyTpl).render().el);

    if ($(‘#mySwipe’).length) {
    console.log(‘slider is in the dom’);
    var html = document.getElementById(‘storyPage-tpl’).innerHTML;
    var elem = document.getElementById(‘mySwipe’);
    window.mySwipe = Swipe(elem, {
    continuous: false,
    } else {
    console.log(“slider not loaded”);

    I have no idea, what the problem is, any help would be great!

    • Amanda Cline May 19, 2015 at 3:33 am #

      Usefull piece of information. Thanks for sharing such a nice information.

  57. Saje Dennis August 26, 2013 at 8:14 am #

    I was really enjoyed with this post, I think it will be a great article and useful for Phone Application developers, thanks

  58. Yudiz Solution September 9, 2013 at 2:39 am #

    It is great tutorial on developing the PhoneGap. I have great experience in using Cross Mobile Platform App. AnyWay I am gonna follow this tutorial and develop a best of app.

  59. GS&F September 9, 2013 at 1:00 pm #

    Phonegap is truly awesome. We literally just discovered it 2 weeks ago and we’ve been working through some tutorial for it. When we came across this one I knew we had something good going. Thank you all for taking the time to be so thorough with this tut it’s been really helpful for us with our latest venture in mobile dev.

  60. Developers Code September 12, 2013 at 7:54 am #

    Awesome.. Well explained Tut

  61. web Page September 21, 2013 at 10:06 pm #

    I think the admin of this site is really working hard for his web site, because here every stuff is quality based material.

  62. Hao September 24, 2013 at 12:17 am #

    Thanks for the great tutorial.

    I enjoyed it a lot, and now have a bit confidence of building a hybrid app.

    Sadly, it seems the camera and contact api is broken on iOS 7…

    I have tried the master sample code, it doesn’t work as well…

  63. marijuana's effect on the brain September 25, 2013 at 4:00 am #

    You will realize initially when i first started off looking at this I did not suppose this was initially fairly likely that exactly what you covered on this website actually

  64. erwin September 29, 2013 at 6:48 am #

    Thanks a lot !
    I went through all steps without any issue ! up-to-date : Sept 29 / 2013…
    I paused on Step 5, to learn a little bit more about Handlebars.js
    then I went back into the tuto process….

    I wish all tuto on the web to be so easy to follow on…
    If it’s not too uch to ask for , please do a tuto on OAuth2 authentification ! could not find a good one….

  65. Winston October 7, 2013 at 12:24 am #

    Great tutorial, thanks a lot!!
    I’ve been throgh 6-5 tutorials, this one is the best so far!

  66. Dirk October 8, 2013 at 5:19 am #

    Excellent tutorial Christophe! People are even redistributing it without giving appropriate credits: http://harishblog.wordpress.com/2013/09/15/tutorial-developing-a-phonegap-application/

  67. brian October 10, 2013 at 11:50 pm #

    I am receiving an error when loading your apps with jquery mobile “connection to server was unsuccessful” I am not sure if it is because the folder stucture is wrong or if is because of the xml file. It seems to load every once in a while but really slow. Please help me.

  68. Fahed October 22, 2013 at 10:54 am #


    Great content! Thanks !

    Just a little mistake on part 9 step 2, replace “Define an initialize() function inside the HomeView class” with: “Define an initialize() function inside the EmployeeView class”

    Told twice before me but still not corrected, a little reminder will not hurt…

    • Liz November 30, 2013 at 5:11 pm #

      +1 x million for your comment! That was driving my crazy trying to figure it out

  69. Sicelo October 26, 2013 at 2:13 am #

    My man you are a life saver

  70. Reefersleep October 28, 2013 at 11:07 am #

    I can’t get eclipse to import this project, neither by choosing the zip or the extracted files. :/

  71. Gurunathan October 30, 2013 at 10:52 am #

    Each And every sample code good and easy thank you for this .

    i want to implement local storage and sqlite in wp7 using phonegap 2.9.0 plz provide me way to use it

  72. John November 3, 2013 at 7:44 pm #

    I found perfect site for creating apps…Yesterday I ended up on some site called apps-machine.com . I have to share it with you guys. I started creating my own app and after 15 minutes clicking on their control panel(no programming,just clicks) I made app in what user could make effects on their photos,paint photos,play music,play videos,have notepad,chat and stream music. They got literally 1000’s of features on their control panel :D I think this could be a gold mine :P :P And I read something that they have free app development and so on. Aaand you can change everything all the backgrounds,colors,tabs…and you instantly see it on that same page through their simulator..don’t know how they managed to do that but it is super handy…I am super excited at the moment..time to get some apps on apple and play store :D :D

  73. jejehan November 12, 2013 at 12:40 am #

    thanks for tutorial, but i have problem, if i click back button on employee-tpl , iscroll doesnt work.

  74. andres November 12, 2013 at 5:20 am #

    hello, as you do, that apple does not display the alert message requesting permission for location var/mobile/applications/xxxx


  75. Jeremy November 16, 2013 at 1:40 pm #


    In your tutorial above, it’s possible to swipe right to see the adjacent div’s content.

    How can i prevent the user from manualls swiping left/right?

    Many thanks

    • Bleepy November 22, 2013 at 6:15 am #

      I’m having the exact same problem.

      I’ve tweaked the slide removal code as a temporary fix, its not nice bit will remove the slide after .375 seconds which is the time of the transition in this example.

      Look for:
      $(‘.stage-right, .stage-left’).not(‘.homePage’).remove();

      Replace with:
      $(‘.stage-left, .stage-right’).remove();
      }, 375);

      Nasty I know, but it works for me.

      • Bleepy November 22, 2013 at 6:43 am #

        Unfortunately this does not solve the search bar issue mentioned previously in the moments.

  76. eddy December 4, 2013 at 1:31 am #

    thanks very much for this tutorial but I want to modify the code so that the back button will go back to the previous page instead of going back to the search page. any ideas how can i do that?

  77. Janet December 11, 2013 at 11:11 am #

    This tutorial doesn’t work on iOS 7!!!

    There is a redirect loop on install and the app never gets fully installed. This seems to be the case with all of the PhoneGap Build apps in iOS 7.

    Anyone found a fix yet?

    • GrandSteph December 30, 2013 at 9:31 am #

      I had what I believe was the same issue and solved it in 2 steps. First, the UDID app I used to retrieve the device’s unique ID doesn’t work in iOS7. You have to use itunes (connect the device to your computer, then select the device in itunes and click on serial#, it will reveal the UDID. Then copy and it will copy it to your clipboard).
      Second, I had to redo the provisionning profile to match the correct UDID of the device. It did the trick for me. Hope it helps.

  78. bigL December 13, 2013 at 3:48 pm #

    Tried it on Android and did not see the Source Sans Pro font display correctly even when using the ‘solutions’ files directly. The font, however, did display correctly in the desktop browser. What changes would need to be made to get the Source Sans Pro font to display correctly on Android?

  79. Rajasekhar December 16, 2013 at 3:34 am #

    I’m working on a Calender scheduler using dhtmlx in phonegap.I managed to get the events from my mysql database but unable to create new events because the double click event in a touch screen enable to zoom-in or zoom-out.
    Please help me in this.how to disable this zoom-in and zoom-out and enable create event.

  80. Russell January 5, 2014 at 4:45 pm #

    I was going to ask a question, but this looks like a one-way blog, since I see no answers at all from the author (the Christophe in the replies is not the author and it’s not clear that the user “Chris” that replies – only once – is the author. Could be anybody.).

  81. Bruno Soufo January 6, 2014 at 2:34 pm #

    Thanx! very great turorial

  82. Alwyn Bester January 10, 2014 at 5:26 am #

    Thanks for a great tutorial. Was a great help for a PhoneGap NOOB like myself.

  83. katie rose January 18, 2014 at 5:44 am #

    great stuff for beginners!!

  84. Kiran January 24, 2014 at 2:37 pm #

    Thanks…Nice Tutorial…helps a lot for beginners like me….appreciate your effort in putting this tutorial together….

  85. Jimmy February 14, 2014 at 9:33 am #

    Do you wanna develop your iPhone Apps? No problem, we are ready to help you because we have huge information about it. come check out our website, http://www.taoteapps.com, we have a lot information to help making your mobile deployment a success.

  86. Martin February 24, 2014 at 4:47 am #


    its somehow frustrating.

    i just zip the solutions (www15) and let it build on phonegap online.
    Then installed it on my device (nexus 5).

    After open the app, everything works (like search, and visiting the profile)
    except all plugins : (

    It says “Contact API is not supported” or
    “Camera API is not supported”.

    I didnt change anything… why doesnt it work :(
    It would be very kind, if someone can help.

    Kind regards.

    • Nick June 8, 2014 at 8:42 pm #

      Any luck? Ran into the same issue.

      • Dan April 2, 2015 at 1:20 pm #

        Having the same problem. Except my contacts work. Only camera is not working. However, it does work if I was running on the PhoneGap app, but just not after it’s packaged from the build.phonegap online. Anyone have luck?

    • Dan April 2, 2015 at 10:05 pm #

      Found the issue. You need to add the following to the index.html as the first script include:

      Second, in the config.xml, you will need the following. This will allow the build to know what packages to include. After you upload your zip file, you should see all the plugins that are referenced in the <gap:plugin nodes.

      • Dan April 2, 2015 at 10:06 pm #

        Found the issue. You need to add the following to the index.html as the first script include:
        script src=”cordova.js”>

        Second, in the config.xml, you will need the following. This will allow the build to know what packages to include. After you upload your zip file, you should see all the plugins that are referenced in the
        preference name=”orientation” value=”default” />
        preference name=”target-device” value=”universal” />
        preference name=”fullscreen” value=”true” />
        preference name=”prerendered-icon” value=”true” />
        preference name=”ios-statusbarstyle” value=”black-opaque” />
        preference name=”detect-data-types” value=”true” />
        preference name=”exit-on-suspend” value=”false” />
        preference name=”auto-hide-splash-screen” value=”true” />
        preference name=”disable-cursor” value=”false” />
        preference name=”android-minSdkVersion” value=”7″ />
        preference name=”android-installLocation” value=”auto” />

        !– Core plugins –>
        gap:plugin name=”org.apache.cordova.battery-status” version=”0.2.11″ />
        gap:plugin name=”org.apache.cordova.camera” version=”0.3.2″ />
        gap:plugin name=”org.apache.cordova.console” version=”0.2.11″ />
        gap:plugin name=”org.apache.cordova.contacts” version=”0.2.13″ />
        gap:plugin name=”org.apache.cordova.device” version=”0.2.12″ />
        gap:plugin name=”org.apache.cordova.device-motion” version=”0.2.10″ />
        gap:plugin name=”org.apache.cordova.device-orientation” version=”0.3.9″ />
        gap:plugin name=”org.apache.cordova.dialogs” version=”0.2.10″ />
        gap:plugin name=”org.apache.cordova.file” version=”1.3.1″ />
        gap:plugin name=”org.apache.cordova.file-transfer” version=”0.4.6″ />
        gap:plugin name=”org.apache.cordova.geolocation” version=”0.3.10″ />
        gap:plugin name=”org.apache.cordova.globalization” version=”0.3.1″ />
        gap:plugin name=”org.apache.cordova.inappbrowser” version=”0.5.2″ />
        gap:plugin name=”org.apache.cordova.media” version=”0.2.13″ />
        gap:plugin name=”org.apache.cordova.media-capture” version=”0.3.3″ />
        gap:plugin name=”org.apache.cordova.network-information” version=”0.2.12″ />
        gap:plugin name=”org.apache.cordova.splashscreen” version=”0.3.4″ />
        gap:plugin name=”org.apache.cordova.vibration” version=”0.3.11″ />

        • Vander April 11, 2015 at 7:20 pm #

          Hi Dan – I’m brand new to phonegap and apps in general – I’m following this post as it is a great starting point but I cannot get the contact and camera APIs to work no matter what. I’ve followed your post about the cordova.js and the changes to config.xml but still getting seeing “error: Camera API not supported”. My code looks exactly like the post code as is + your changes to index.html and config.xml… any. I’m testing it on a Nexus 5 running Android 5.1 – any suggestions are much appreciated.

  87. Orkun March 2, 2014 at 3:22 pm #

    I ve downloaded the workshop zip, phonegap-workshop-master,
    as it is, when i open the index.

    There s no data, just a textbox and Hello on the top.
    What am i missing here?
    Cheers. -Orkun

    • One March 14, 2014 at 7:58 am #

      Maybe the glasses?

  88. Al March 5, 2014 at 12:41 pm #

    Can anyone tell me how to adjust HomeView.js to show the list right away rather than after typing something in?

  89. Jawad March 14, 2014 at 4:24 pm #

    I just want to start work on Phonegap after reading this tutorial. Appreciated!

  90. Andy Wibbels March 23, 2014 at 10:17 pm #

    Ran into problems with Part 4 – this helped answer my question – http://stackoverflow.com/questions/19908770/handlebars-template-is-not-rendered

    Christophe, it’d also be helpful if you post the final finished code – so we can compare it to where we are in your tutorial.

    Thanks for sharing it!

  91. www.gamezebo.com April 15, 2014 at 9:47 am #

    obviously like your web-site however you need to test the spelling on quite a few of your posts.

    Several of them are rife with spelling issues and I find it very bothersome to
    inform the reality nevertheless I’ll certainly come again again.

  92. https://www.youtube.com/ April 15, 2014 at 11:29 pm #

    I’m not sure where you’re getting your information, but good topic.
    I needs to spend some time learning much more or understanding more.
    Thanks for great info I was looking for this info for my mission.

  93. Trevor Best April 16, 2014 at 11:50 am #

    At step 6 it no longer works, I get “Uncaught TypeError: undefined is not a function” in jquery-1.8.2.min.js

    • Trevor Best April 16, 2014 at 12:06 pm #

      Sorry, Part 6

      • Trevor Best April 17, 2014 at 8:37 am #

        OK found it, the render() function needs to go above initialize()

  94. house clearance hemel hempstead April 17, 2014 at 10:04 pm #

    I feel that is among the so much important information for me.

    And i am satisfied studying yur article.
    But should observation onn few basic issues, The website
    style is perfect, the articles is in reality
    reat : D. Good process, cheers

  95. telecharger snapchat April 21, 2014 at 6:03 am #

    Hello, of course this paragraph is truly good
    and I have learned lot of things from it regarding blogging.

  96. Carmageddon Windows 8 May 2, 2014 at 8:49 pm #

    Warhammer: Mark of Chaos Demo Ԝorld іn Conflict: Soviet Assault.
    Dark – Planet: Battle fοr Natrolis Demo Disciples:
    Sacred Lands. Warcraft III: Defense оf the Ancients Warloeds IV:
    Heroes of Etheria.

  97. hungry shark evolution bloodbath May 5, 2014 at 2:20 pm #

    My spouse and I stumbled over here coming from a different web page and thought I might as well check things out.

    I like what I see so i am just following you. Look forward to finding out
    about your web page for a second time.

  98. Daisy May 6, 2014 at 4:11 pm #

    It is the unbelievably thick middle and upper
    layer of completely redundant management hat are the problem.

    Berman is an impressive tome of 678 pages of information on criminal law.
    If you carefully put all these points into consideration when looking for a good criminal lawyer,
    you should find itt very easy to get the best one.

  99. I’m not sure exactly why but this blog is loading
    extremely slow for me. Is anyone else having this problem or is it a
    problem on my end? I’ll check back later on and see if
    the problem still exists.

  100. Carol May 10, 2014 at 7:43 pm #

    This is my first time pay a quick visit at here and i
    am actually impressed to read everthing at single place.

  101. dragonvale hack May 13, 2014 at 8:07 am #

    It’s an remarkable article for all the web viewers; they will obtain advantage from it I am sure.

  102. เสื้อโปโล May 16, 2014 at 5:13 am #

    It’s a pity you don’t have a donate button! I’d most
    certainly donate to this excellent blog! I suppose for now i’ll settle for bookmarking
    and adding your RSS feed to my Google account. I look
    forward to new updates and will share this website with my Facebook group.

    Chat soon!

  103. Fat Burning Chef Review May 17, 2014 at 8:32 am #

    Can I ask if you’ll be fine with paid blog entries?
    All I would need is for you to construct articles on behalf of me
    and a link or reference to my blog. I can compensate

  104. grzegorz patynek May 21, 2014 at 10:52 am #

    It seems to be great tutorial.
    I hope it helps me develop best phonegap apps:)

  105. Outsourcing May 23, 2014 at 4:14 am #

    You can certainly see your skills within the work you write.
    The sector hopes for more passionate writers like
    you who aare not afraid to mention howw they believe. At all times follow your

  106. over here May 24, 2014 at 9:06 pm #

    My spouse and I stumbled over here different web page and
    thought I should check things out. I like what I
    see so now i’m following you. Look forward to looking into your web page again.

  107. Theodore June 7, 2014 at 11:29 pm #

    whoah this weblog is excellent i really like studying your
    posts. Keep up the great work! You understand, a lot of persons
    are looking around for this info, you can help them greatly.

  108. Personal Injury Lawyers Boston MA June 8, 2014 at 8:16 am #

    It also contains the mental and psychological injuries you skilled because of this of trauma sustained by way of a humiliating or life-threatening expertise.
    A personal injury lawyer will also be unable
    to assist you in this regard. This causes many difficulties for
    him and his family.

  109. Charles June 10, 2014 at 1:06 am #

    Hi Christophe,

    That Phonegap.js doen’t works with external website. Please let me know what could be the reason behind this?

    B. Charles

  110. www.iamsport.org June 13, 2014 at 1:30 am #

    There are some terms you are going to need to know,
    and having the “lingo” down pat can’t ever hurt in a job interview, or during a networking opportunity.
    ” The friendship with Doc was later shared with me when I showed signs I might like to write. If it isn’t, consider trading it off, a gas engine won’t last long enough to get to the end of the payments.

  111. startaidea.info June 13, 2014 at 10:21 pm #

    Never, however, call out your pet’s name when you are dissatisfied with his or her behavior.
    Furthermore, puppies need more frequent feeding schedules in a day,
    unlike an adult dog. As dog damages and bits occur, and costs rise, expect
    more insurance companies to jump on the high risk
    dog list and only offer insurance riders that may cost a lot.

  112. Hugo June 15, 2014 at 1:35 am #

    Simply wish to say your article is as astounding. The clearness in your submit is simply cool
    and that i could think you are a professional in this subject.
    Well together with your permission let me to snatch your feed to stay
    up to date with forthcoming post. Thank you a million and please carry on the gratifying work.

  113. ace Office Cleaning services usa June 16, 2014 at 9:04 am #

    The Commercial cleaning Melbourne Ferntree gully is known for being
    one of the finest as they have set the highest standards in this area.
    This will assist the corporate headquarters in processing applications, obtaining physician’s notes and matching patients with cleaning
    services. Tampa Bay Professional Cleaning Services believes that
    some crews are good for nights only, after all the work
    has been done in the offices.

  114. http://capecod-landscapers.com/ June 17, 2014 at 9:56 pm #

    Harry Bunnel eventually patented the robust design, which combined a slanted back and wide armrests.

    I apologized to the police and quickly left the home never to return again.
    An inexpensive fence paint job can make a big difference as well.

  115. Oscar June 19, 2014 at 8:36 pm #

    Hello I have problems with part 5, I wanted to ask for help followed the instructions but when I try to open index.html it displays nothing, I don`t understand why it doesn`t generate HTML tags.

    I can send my main.js and index.html to the email you provide


    • Steve July 16, 2014 at 2:58 pm #

      I have the same problem (eveything fine until part 5).
      Did you work out what was wrong?

      • Steve July 18, 2014 at 11:37 am #

        Discovered web console in the browser and found the problem. Handlebars not defined. needs to be first in HTML doc.

        • KariK August 10, 2014 at 4:24 am #

          I’m having the problem that in part 5 only the Hello bit with the text box get rendered but not the employee list. Did you Steve have this problem? If so, how did you solve it?

    • BK March 22, 2016 at 7:37 am #

      Hi for part 5 to work correctly insure that the lines
      this.homeTpl = Handlebars.compile($(“#home-tpl”).html());
      this.employeeLiTpl = Handlebars.compile($(“#employee-li-tpl”).html());
      are not inside MemoryStore(), they are inside the initialize: function().

  116. Martys Buick GMC Isuzu June 20, 2014 at 5:48 am #

    Well you can be on the map like that, except instead of drawings,
    you can have actual aerial photos and street level photos of your place of business.
    This technology is utilized to help reduce if not eliminate the sounds coming from the road, the
    wind outside, and the engine. There are several important things to remember when you are considering
    taking a car for a test drive.

  117. Lewis Creehan June 20, 2014 at 10:39 pm #

    “I do not even know how I stopped up here, however I believedthis publish was once great. I don’t realize who you’re however definitely you are going to a well-known blogger in the event you aren’t already.Cheers!”

  118. Vern Lampton June 21, 2014 at 1:42 am #

    An interesting discussion is definitely worth comment. I think that you should publish more about this issue, it might not be a taboo matter but usually people don’t discuss such topics. To the next! Best wishes!!

  119. fitness July 1, 2014 at 8:25 am #

    Very soon this website will be famous among all blog visitors,
    due to it’s fastidious posts

  120. suplementy i odzywki July 1, 2014 at 8:29 am #

    I simply could not leave your site prior to suggesting that I extremely loved the standard info a person supply for your guests?
    Is going to be back steadily to investigate cross-check new posts

  121. forum sportowe July 1, 2014 at 1:51 pm #

    Do you have a spam problem on this blog; I also am a blogger, and I was wondering your situation; many
    of us have created some nice procedures and we are
    looking to exchange methods with other folks, why not shoot me an email if interested.

  122. Nathaniel July 2, 2014 at 3:05 am #

    If you feel satisfied by the answers your prospective Los Angeles injury attorney gives you, go ahead and hire them as your attorney.
    Some of the factors that should be taken into account are
    as follows:. Too many drivers do not even hold a legal driving license.

  123. Rajendra July 2, 2014 at 5:13 am #


    I am new in phone gap i am not able to configure development interment on my system, i am try some tutorial bu i am not found step by step process of phone gap configuration.

  124. jak przybrac na masie July 2, 2014 at 11:42 am #

    Today, I went to the beachfront with my children. I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She placed the shell to her ear and screamed.

    There was a hermit crab inside and it pinched her ear.
    She never wants to go back! LoL I know this is totally off
    topic but I had to tell someone!

  125. bialko July 2, 2014 at 2:14 pm #

    Undeniably consider that that you stated. Your favourite justification appeared to be at the net the easiest factor to remember of.
    I say to you, I definitely get annoyed whilst folks consider concerns that
    they just don’t recognize about. You controlled to hit the nail upon the highest and also outlined out the entire thing with no need side-effects , other people can take a signal.
    Will likely be again to get more. Thank you

  126. suplementy i odzywki July 3, 2014 at 3:02 am #

    Someone essentially help to make seriously posts I would
    state. This is the first time I frequented your website page and thus far?
    I amazed with the research you made to create this particular
    submit amazing. Magnificent activity!

  127. mortal Kombat x July 3, 2014 at 10:35 pm #

    My brother recommended I might like this blog. He was once totally right.
    This put up actually made my day. You cann’t imagine just how so much time I had spent for this info!

    Thank you!

  128. forum o sportach July 4, 2014 at 2:10 am #

    Link exchange is nothing else except it is simply placing the other person’s weblog link on your page at appropriate place and other person will also do similar in support of you.

  129. beststrollers2014.net July 4, 2014 at 6:18 am #

    Hello there! I could have sworn I’ve been to this site before but
    after browsing through some of the post I
    realized it’s new to me. Anyhow, I’m definitely happy I found it and I’ll be book-marking and checking back often!

  130. sexshop July 5, 2014 at 1:03 am #

    Many retail stores are trying to compete with the
    dedicated Plus Size stores that are getting a lot of traffic.
    The most important factor for deciding which lingerie to wear for single ladies is the message that they want the
    public to receive. It is a perfect store to indulge in shopping for La Senza lingerie because
    of the prices offered by them.

  131. dieta July 5, 2014 at 7:56 am #

    Hmm it appears like your website ate my first comment (it was
    extremely long) so I guess I’ll just sum it up
    what I had written and say, I’m thoroughly enjoying your blog.
    I as well am an aspiring blog writer but I’m still new to the whole thing.
    Do you have any helpful hints for rookie blog writers? I’d definitely
    appreciate it.

  132. suplementy i odzywki July 5, 2014 at 1:29 pm #

    I really like your blog.. very nice colors & theme. Did you create this website yourself or did
    you hire someone to do it for you? Plz respond as I’m looking
    to design my own blog and would like to find out where u got this from.

  133. pour etre riche July 5, 2014 at 11:39 pm #

    Howdy, i read your blog from time to time and i own a similar one and i was just curious if you
    get a lot of spam feedback? If so how do you reduce it, any plugin or anything you can advise?
    I get so much lately it’s driving me crazy so any help is very much appreciated.

  134. Metal Slug Defense Hack Android July 6, 2014 at 12:55 am #

    This is my first time go to see at here and i am genuinely impressed
    to read all at single place.

  135. infant monitor reviews 2014 July 7, 2014 at 7:42 am #

    Heya i’m for the first time here. I came across this board and
    I find It really useful & it helped me out
    a lot. I hope to give something back and aid others like you helped me.

  136. after effects Wiggle preset July 8, 2014 at 3:52 am #

    Aw, this was an extremely nice post. Taking a few minutes and actual effort to
    produce a superb article… but what can I say… I put things off
    a whole lot and don’t seem to get nearly anything done.

  137. replica chanel bags online July 8, 2014 at 11:47 am #

    replica chanel bags online
    I really like what you guys tend to be up too.

    This sort of clever work and coverage! Keep up the very good works guys I’ve added you guys to blogroll.

  138. éjaculation faciale charmeuse July 9, 2014 at 7:29 pm #

    Un puissant remerciement à l’auteur de ce site

  139. replica watches for cheap July 9, 2014 at 9:10 pm #

    replica watches for cheap
    It’s very effortless to find out any matter on net as compared to textbooks, as I found this article
    at this website.

  140. Student July 11, 2014 at 10:18 am #

    At first thx for grate tutorial. The tutorial misses just one thing permissions for location, camera, contacts.

    I got SGS III with android 4.3 Camera and Contacts doesn’t work. Permission are there.
    Cordova 3.5

    Is anyone know which android version is supported. Doc just got Android support nothing of versions.

  141. adjustable beds July 11, 2014 at 10:34 am #

    Hey there, You’ve done a fantastic job. I’ll definitely digg it and personally suggest to my friends.
    I’m confident they’ll be benefited from this website.

  142. suple na mase July 12, 2014 at 5:39 am #

    Admiring the commitment you put into your site and detailed information you provide.
    It’s nice to come across a blog every once in a while that isn’t the same unwanted rehashed
    material. Great read! I’ve bookmarked your site and I’m adding your RSS
    feeds to my Google account.

    • WeDigTech September 22, 2015 at 5:48 am #

      Really Awesome, Everything you can find at single site, can learn lot of things.

  143. forum o sportach July 12, 2014 at 2:24 pm #

    Nice blog here! Also your web site loads up fast! What web host are you using?

    Can I get your affiliate link to your host? I wish my website
    loaded up as fast as yours lol

  144. Samual July 12, 2014 at 9:18 pm #

    Steve Ralston explains the turning point in his youth playing career –
    American Soccer News. This three sports events are part of the human nature
    and drives the passion of billions of people on earth, and this year is going
    to be full of all the sports and online sportsbook action many are looking for to have every year, but this one is going to be different, on May
    10th we are going to have the Champions League Final and a month after we will
    have the Soccer World Cup 2014 in Brazil starting June 12th and will give us enough
    time to enjoy all this action before the NLF gets back bringing
    to all fans and sportsbook fans what we are waiting for, the
    best sports action in the world. Elizabeth Hennigan from Brand Content explains the thinking behind their male-oriented marketing campaign.

  145. android games emulator for pc download July 13, 2014 at 6:17 am #

    I have been browsing online more than 3 hours nowadays, yet I never discovered
    any fascinating article like yours. It’s pretty price enough for me.
    In my opinion, if all webmasters and bloggers made just right content material as you probably did, the internet
    will be a lot more useful than ever before.

  146. Graffiti Schriftarten July 14, 2014 at 6:16 am #

    Great Tutorial, thank you!

  147. Roy M J July 15, 2014 at 4:56 am #

    This is awesome..

  148. Das Dass July 16, 2014 at 2:23 pm #

    Thank you for this excellent Tutorial!

  149. Mangesh August 11, 2014 at 5:42 pm #

    Very nice, put-together tutorial. Thank you.

  150. contact me August 12, 2014 at 11:07 am #

    Have you ever considered publishing an ebook or guest authoring on other blogs?
    I have a blog based upon on the same topics you discuss and
    would love to have you share some stories/information. I know my readers would enjoy your
    work. If you are even remotely interested, feel free to send me an email.

  151. Adam Cadieux August 25, 2014 at 3:57 pm #

    I had problems with the camera working ios 7.0.4

    So I removed the namedconfig.xml and replaced it with the config.xml (to work with the newer version photogap).

    Here are the contents of the new config file. Hope it helps.

    Sample Config.xml

    An example for phonegap build docs.

    Your Name

  152. sanjog September 9, 2014 at 3:58 am #

    Add to contacts not working, When i touch it nothing happens. how do i fix it?

  153. Timbert September 16, 2014 at 2:56 am #

    Hi, I had some trouble with contacts (Android 2.3), but basically this example works with Phonegap 2.90 Build, the later 3.3 and 3.5 do not work for all features.

  154. zyd September 25, 2014 at 5:03 am #

    Thanks a lot. but i can’t work out the part1 step2 at all. There is only a input field in index.html ! I input a name and press enter , nothing happens. Can anyone help me, please!


  155. john October 16, 2014 at 6:24 am #

    Hi ,

    Its a great tutorial , if you could please share some more samples like this to my mail and that would helpfull for me to learn a lot .

  156. Mohan Avula October 25, 2014 at 7:18 am #

    Fantastic! Thank you Chris!! :)

  157. Been Sand December 10, 2014 at 6:35 am #

    Phonegap is a nice tool, no doubt about it. I have developed various apps with this mobile app development tool whereas now it must need some changes. There are various tools available which provides more features compared to Phonegap. Just look at the features list of Configure.IT,


    I have recently made an app with this mobile app development platform, and I found it amazing. Try your hand on it.

  158. Binta Wira January 10, 2015 at 12:45 pm #

    Amazing tutorial . I began to think to learn more about PhoneGap . hopefully in the future I can be a reliable developer

  159. best web design company January 29, 2015 at 8:01 am #

    Nice tutorial !

  160. Hardik January 30, 2015 at 3:38 am #

    I want to use phone gap with PHP MySQL. I have some j son web service that created in PHP i want to call that web service to fetch data from my MySQL database and send data back to MySQL database from created app.

    Thanks in advance.

  161. Saheel February 5, 2015 at 6:16 am #

    Can I input .psd files ??

  162. Gaurav February 6, 2015 at 9:24 am #

    Hi Chris

    I have gone through all of your given tutorial.It is working fine for searching an employee and also renders the view for single employee.But location ,
    contacts and camera are not working. It is only saying ….API not supported.I have used phonegap build and installed apk in my device.

    I have also tried by added plugins camera,console,device,contacts,dialogs and geolocation and runned the following commands

    cordova build

    cordova emulate android

  163. Ewan Stevenson March 5, 2015 at 12:13 pm #

    Thanks a lot. One of the best tutorials I’ve seen :)

  164. Matt March 11, 2015 at 6:06 am #

    Its a wonderful article. I really enjoyed a lot reading the whole article.

  165. suranka technologies March 27, 2015 at 1:14 am #

    Nice tutorials!! More help ful

    Nice tutorials

    you can visit us : http://suranka.com/training-courses/mobile-development-training/phonegap-training-in-chennai/

  166. PMP May 20, 2015 at 9:52 am #

    Great tutorial!

  167. jon June 8, 2015 at 6:02 am #

    Hello, this really helps. However, I’d like to run a function to get all the contents when the app opens.

    I’ve written a function ‘getAll’ and it’s easy enough to attach this to a button “this.el.on(‘click’, ‘#loadall’, this.getAll);”,. but i’d like to load it right away and avoid having to click on the ‘load all’ button.

    Any suggestions for where to call the getAll function?

  168. Raphael June 14, 2015 at 6:17 am #

    The best how to in the Internet.

    Hail \mm/

  169. Triatma June 21, 2015 at 6:44 am #

    Very nice tutorial cause this tutorial very help me to learn about phonegap. Basicly, im understood some code but in part 12 Using the Camera API i have some trouble. How to fix it?
    My first tutorial about android : Eclipse : Learn How To Build Launcher Blog

  170. ali June 23, 2015 at 4:22 pm #

    I wrote the following code a favorite list for android app but when i building and install not save please help me thanks

    function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = “expires=”+d.toUTCString();
    document.cookie = cname + “=” + cvalue + “; ” + expires;

    function getCookie(cname) {
    var name = cname + “=”;
    var ca = document.cookie.split(‘;’);
    for(var i=0; i<ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1);
    if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
    return "";

    function PAGE_LOAD()

    var index=i==0 ? "" : String(i);
    obj = document.getElementById('script'+index);
    var DISPLAY="";
    obj.style.display = "";
    if(DISPLAY=="0") obj.style.display = "none";
    function showhide(id)

    obj = document.getElementById(id);

    if (obj.style.display == "none")
    obj.style.display = "";

    obj.style.display = "none";



    div style=”display: none;” id=”script”

    a href=”#” onclick=”showhide(‘script’); return(false);”

  171. Austin Noronha July 10, 2015 at 1:57 am #


    Amazing explanation on how o use the PhoneGap Product and reusing js/css/html to build an app.
    Thank you.

  172. rajat (india) August 29, 2015 at 10:55 pm #

    Dear Christophe ,
    Thanks for this wonderful and valuable information on phonegap. i just want to ask that can i use this app for my personal use and development. i want to make an application on technical term (A kind of dictionary).please let me know.

    Thanks and Regards

    Rajat Singh

  173. Benoit September 10, 2015 at 8:53 am #

    Hey! Many thanks for your tutorial.

    I was wondering what was the cleanest way to add data from remote api to populate this.employee in the memory-store example.

    Could you help me on this?

  174. Dennis September 15, 2015 at 5:21 am #

    Good tutorials!

    I have a question?how to populate all the data on load?


  175. Nyindir September 26, 2015 at 11:30 pm #

    Great tutorials. I’ve learned a lot.
    How come in the websql-store.js you always drop the table and repopulate it? How come you don’t check the version first and not install it if there are no changes?

  176. Regis February 12, 2016 at 9:53 pm #

    I love this tutorial! Thank you for making it! I have gone through it to create the single-page application and am seeking to do two additional things and any help is appreciated:

    1. I wish to show the employee list before any search is executed, to support both searching for a name and browsing the list without requiring a search

    2. Once an employee detail is viewed, how do we restore the employee list that user had filtered to? Currently going back to search view clears any previous search results.


  177. Skumar June 8, 2016 at 3:34 am #

    Out of the numerous questions that our business development team at Root Info Solutions (RIS) respond to, one, we would like to get answered through this blog. Any guess on that? Well, it’s what are the advantages and disadvantages of the PhoneGap mobile app development.

  178. Julian June 28, 2016 at 4:12 am #

    Thanks very much
    Unfortunately when the slider is added, you click an employee and go back, you cant use the search again. This is also broken in your files (part13).
    When you change the code in the main.js, to the following, it will work again (but I think it is not the prettiest solution)
    if (!hash) {
    this.homePage = new HomeView(this.store).render();

  179. Julian July 8, 2016 at 10:30 am #

    ok, better solution
    HomeView.js in the initialize function
    $(document).on(“keyup”, “.search-key”, this.findByName);
    instead of
    this.el.on(‘keyup’, ‘.search-key’, this.findByName);

    • Ande Walsh September 13, 2016 at 9:41 am #

      Excellent, well done… I had problems with the reset & this has saved me a bunch of code……

  180. Anymous July 10, 2016 at 9:47 pm #

    my name is carol and I live in USA, My life is back again… After 5years of Broken marriage, my husband left me with kids .I felt like my life was about to end and I almost committed suicide, I was emotionally down for a very long time.Thanks to a spell caster called dr. ovia, which I meet online, On one faithful day, as I was browsing through the internet and I came across a lot of testimonies about this particular spell caster.Some people testified that he brought their Ex boyfriend back, some testified that he restores Womb,Cure Cancer and Herpes Virus and HIV Cure,diabitis hepatitis b, and other sickness, some testified that he can cast a spell to stop divorce and so on. I also come across one particular testimony and it was about a woman called jinni, she testified about how he brought back her Ex lover in less than 2 days and at the end of her testimony she dropped Dr. ovia email address which is, droviaspiritualtemple@gmail.com After reading all these,I decided to give it a try and I contacted him through his via email and explained my problem to him. In just 48 hours, my husband came back to me, and we solved our issues, we are even happier than before Dr. ovia is really a gifted man and I will not stop testifying him because he is a wonderful man and so powerful, If you have a problem and you are looking for a real and genuine spell caster to solve all your problems. contact him on this email: droviaspiritualtemple@gmail.com or call him +2348135858735

  181. Ronny Larsen September 22, 2016 at 7:55 am #

    Super perfect tutorial.
    BUT.. when clicking on SMS link in Android app, nothing happends. Is something missing?
    It dosent do anythin, not even firing phonecall.

  182. Preethi Poornima March 21, 2017 at 8:32 am #


    This is a very good tutorial and I have followed all the instructions. I am a newbie to all of this. My browser displays the app as it should be , but when I install the apk , it is not displaying properly , also I cant get past the search screen.Can you help?

  183. Bhavesh Parmar April 7, 2017 at 9:03 am #

    Well it’s a great tutorial! Very useful for all app developers. Anybody wants to make PhoneGap application they can contact http://www.indianic.com

  184. sachin April 13, 2017 at 4:39 am #

    This is a decent instructional exercise and I have taken after every one of the directions. I am a beginner to the greater part of this. My program shows the application as it ought to be , however when I introduce the apk.

  185. Dinh Hoang Hiep May 11, 2017 at 1:22 pm #

    Thanks :)

  186. Nikhil Malhotra May 12, 2017 at 2:10 am #

    I an new to this.
    I am getting error “employee is not defined” in EmployeeView.js
    line – this.el.html(EmployeeView.template(employee));

    Please help !

    • Bilal Yaqoob May 28, 2017 at 9:24 pm #

      check for the EmloyeeView scope i.e. var EmployeeView = function(employee) { … … }

  187. Bilal Yaqoob May 28, 2017 at 9:22 pm #

    Great tutorial, learned a lot. But plugin versions are not supported and are very old. So I made a git repo with updated plugins,
    Anyone want to clone it, youre more then welcome,And thanks to Mr. Christophe Coenraets for great great tutorial

    • Rodrigo Matos Silva April 30, 2018 at 9:33 am #


  188. Javier Garrido June 21, 2017 at 7:20 pm #

    Thank you very much for the tutorial, it’s great and very well explained.
    I have fixed the problem when coming back to the main page (not working the search anymore) and made some other minor changes (showing the complete list at the start for example).
    You can take a look on my fork:

  189. Robert Smith July 14, 2017 at 7:32 am #

    Great blog, a question would it be possible to show how to install phone-gap on windows 8.1 im unable to install it :/

    cordova installs perfectly but not phone-gap for some reason.

  190. Sam sandy September 22, 2017 at 7:22 am #

    Thank you for including one of the best phonegap tutorial.. i really appreciate it!

  191. Alex Wood September 26, 2017 at 8:31 am #

    Thanks for providing best tutorial to develop a PhoneGap Application.

  192. James Grills October 12, 2017 at 10:17 am #

    Super Article on Phonegap, First time have read this quality article with examples and sample code also, I really appreciate your efforts on it. Keep Posting.

  193. Gadgets Grab October 12, 2017 at 10:25 am #

    Love the way you have written this article with full of dedication. Liked the sample code, Which will gonna help user. You can have a look to my article which i have written on TOP 10 smartphones under 15000

  194. Unity Developer November 27, 2017 at 6:15 am #

    Great article, really an amazing one. Thanks for sharing this informative post with us.

  195. Net Solutions January 16, 2018 at 2:08 am #

    It’s a great tutorial for app developers.

  196. Karla Daniel February 8, 2018 at 3:20 am #

    great tutorial! thanks so much for Sharing.

  197. CIIT Noida February 24, 2018 at 3:18 am #

    I liked the way you presented the whole thing. I was worried before if I could learn about phonegap but your tutorial helped me alot.

    Digital Marketing Training in Noida

  198. CIIT Noida March 10, 2018 at 6:33 am #

    I liked the way you presented the whole thing. I was worried before if I could learn about phonegap but your tutorial helped me alot.
    Oracle PL/SQL

  199. Delkn April 12, 2018 at 3:37 am #

    One of the finest tutorial on phone gap development. Very Informative.

  200. prasanna laxmi May 23, 2018 at 6:50 am #

    This article has covered so many topics that are helpful for mobile app development,
    visit mobile app development
    for more new ideas, we are thankful for this article.

  201. Ravi Raj Singh July 12, 2018 at 12:55 pm #

    Its Awesome but there shoul to live example where we can match developed behavior with expected behavior. Thank you bdw :)

  202. Komal Gupta July 20, 2018 at 3:24 am #

    To answer this question, we have to look at the kind of app you want to develop. There’s really no single answer. Choosing the PhoneGap (hybrid) approach is advantageous if you’re planning a relatively simple app without complex animation features, you want apps for more than one mobile platform, and you have a limited budget/time. https://goo.gl/gamT95

  203. ramdevmodi August 1, 2018 at 2:58 am #

    It’s really a great post..I would like to appreciate your work and I am going to recommend it to my friends. Thanks for sharing.

  204. webliquid infotech August 7, 2018 at 2:58 am #

    It’s a great tutorial for app developers.For more information visit : http://www.webliquidinfotech.com/

  205. marke8now September 12, 2018 at 11:16 am #

    Really this article is very useful and informative for everyone. And I hope you’ll sharing more idea’s and useful article with us. Digital Marketing Company

  206. fabit corp September 14, 2018 at 2:01 pm #

    This is a very good tutorial and I have followed all the instructions. Cloud Services

  207. Web Development Company September 15, 2018 at 3:51 am #

    I have shared this with our team, and they really liked your tutorial. Nicely put together post. Thanks a ton

  208. Dhiraj Kumar October 15, 2018 at 4:34 pm #

    Very well done. great post
    Thank you. EAI Solutions

  209. Kelvin Dron November 19, 2018 at 5:13 am #

    Great article have superb content that is very useful to everyone. keep posting. Want to develop the app contact us here. https://krify.co/contact/

  210. Wama Software November 22, 2018 at 5:55 am #

    Thanks For sharing useful tutorials for us,nicely explained step by step,very useful for beginners mobile app developers.

    Hire Angularjs Developer | Angularjs Development Company

  211. Chris Mcdonald December 1, 2018 at 4:41 pm #

    It’s a great tutorial for tech blogs like: https://www.completeconnection.ca/

  212. Digital Rudhra December 7, 2018 at 11:19 am #

    Amazing Tutorial I like It. Keep Sharing more Tutorial. Please Visit Our Website: https://www.digitalrudhra.in

  213. Linea December 26, 2018 at 9:07 am #

    Nice post

  214. Benedict Tadman January 2, 2019 at 9:03 am #

    PhoneGap is very much trending for mobile app development. Your post helps to many mobile app developers to easily develop mobile app using PhoneGap. Entrepreneurs also have option to develop mobile application using PhoneGap from AllianceTek.

  215. Ajay Sharma January 8, 2019 at 5:41 am #

    Thanks for the quick guide. Here are few mobile app development trends that will rule 2019: https://www.techwebspace.com/top-6-emerging-mobile-app-development-trends-to-watch-in-2019/

  216. Red Fx digital January 31, 2019 at 4:57 am #

    Thanks! Found pretty interesting!
    I Digital Marketing agency in Noida

  217. Virtual Reality Ottawa February 2, 2019 at 12:21 am #

    Indeed! Thanks. Very much appreciated.

    iOS Development

  218. Arbutus Infotech Private Limit February 12, 2019 at 4:39 am #

    Nice blog, Useful data you have shared here… .Amazing thoughts.Mobile Application Development company in Indore

  219. Shibi Satheesh February 14, 2019 at 3:53 am #

    Nice blog. thanks for sharing

  220. Ashok March 2, 2019 at 12:27 pm #

    Nice Content thanks for sharing this . If you are looking for job change in IT sector you can register on the job portal

  221. Rakesh Kumar March 18, 2019 at 1:31 am #

    It’s really a great post..I would like to appreciate your work and I am going to recommend it to my friends. Thanks for sharing.
    Jeevmoksha yoga gurukul (RYS) is offering 4 weeks intensive 200 hour yoga teacher training in Rishikesh. This course is recognized by Yoga Alliance (USA)

  222. Ajay Sharma March 29, 2019 at 2:23 am #

    Thanks for sharing the tutorial, But would it be possible to implement these without an expert. I mean a blog webmaster of a technology blog like TechWebSpace might need help of an expert.

  223. Shibi Satheesh April 1, 2019 at 1:17 am #

    It’s a nice stuff…great tutorial…


  224. Pankaj Sharma April 2, 2019 at 11:58 pm #

    This is very helpful tutorial for me.
    Thanks for sharing it,
    Here is some tips to keep mobile data safe- https://www.trionds.com/how-to-keep-your-smartphone-data-safe/

  225. Deepak Malhan April 8, 2019 at 6:49 am #

    I appreciate your efforts in preparing this post. I really like your blog articles. Thank you so much for sharing such beautiful information. this article is going to help out to new startups like- mobile app development companies, web application development companies etc.

  226. Shibi Satheesh April 8, 2019 at 8:19 am #

    Nice content . Thanks for the sharing

  227. Pankaj Sharma April 23, 2019 at 4:37 am #

    Nice Post.
    Check it- Mobile application Security

  228. Shibi Satheesh April 26, 2019 at 3:22 am #

    It is a great tutorial. Great Stuff
    Thanks for the sharing


  229. Ellie Windler May 7, 2019 at 3:09 am #

    Informative Post. I really appreciate the efforts you put into compiling and sharing this piece of content about PhoneGap .If you are interested in PhoneGap App Development or want to develop Phonegap App discuss with us.

  230. Shibi Satheesh May 16, 2019 at 12:16 am #

    Good stuff, Thanks for sharing. Keep blogging

  231. Naseer Ashraf May 30, 2019 at 2:31 am #

    Thanks for sharing such a great information with us. Your Post is very unique and all information is reliable for new readers.
    Keep it up in future, thanks for sharing such a useful post.

    Freshpani is providing online water delivery service currently in BTM, Bangalore you can find more details at Freshpani.com
    Online Water Delivery | Bangalore Drinking Water Home Delivery Service | Packaged Drinking Water | Bottled Water Supplier

  232. Diana Adams May 30, 2019 at 10:06 am #

    Thanks for this guide! Indeed, PhoneGap is the main instrument in hybrid app development. The tool implements the native OS component of web technologies launched in WebView. The service has APIs (set of system communication functions and procedures) that connect with the native app SDKs to utilize native app functionality.

  233. jeffryfernando June 22, 2019 at 9:00 am #

    Really amazing article thanks for sharing great information of us

  234. danish khan June 24, 2019 at 3:20 am #

    “Developing a Phone-Gap Application”
    Technology is the very far thinking filed sector where we grow yourself day by day about our surrounding and nature and this is interesting for us.
    by the way, if anybody need any UAE data recovery services provider they can connect with us.
    About more information visit our website: https://uaedatarecovery.com

  235. Rakesh Kr July 3, 2019 at 6:37 am #

    Thank you so much for sharing such a nice piece of information. Surely this article will help in iPhone mobile app development.

  236. Niharika Kapoor July 5, 2019 at 4:09 am #

    Nice, but some PhoneGap FAQs still not resolved. But, yes PhoneGap is good for cross-platform development with its efficiency & reliability.

  237. Blueprint Global July 10, 2019 at 2:34 am #

    Thanks for sharing
    Exhibition Stand Builders

  238. IMG Global Infotech July 25, 2019 at 7:37 am #

    Great information for developers, for android app development visit: https://www.imgglobalinfotech.com/android-application-development.php

  239. AltPartsInc July 31, 2019 at 4:29 am #

    Thanks for continually sharing such useful, detailed info!

    mitsubishi machine parts

  240. Brianna Jones August 14, 2019 at 3:14 am #

    Great Stuff! Thank you very much. I really appreciate this your blog post. It is very useful tutorial for beginners to learn how to develop a PhoneGap application. Create music app like TikTok

  241. Rishabh Srv August 16, 2019 at 5:19 am #

    Thank You For Sharing such an important post, I really like the way you present the things. We are providing the best mobile app development experience to our customers, To get such experience contact us or visit our website. Regards- https://www.pegalogics.com

  242. Priya Sharma August 21, 2019 at 11:09 pm #

    This Tutorial is very informative and helpful, If you want to see more blog related it, you have to click here – https://www.techradius.net/

  243. Nitin Singhal August 27, 2019 at 2:41 am #

    If you want to be master in English then it is must to join some best English coaching centre where you can learn

    all about English language. English guru institute offers effective premium language training for children, adolescents

    and adults, as well as linguistic, intercultural and business solutions for corporate clients. Over the many years

    English guru institute for English classes has helped millions of people around the world achieve success in a global

    What is a speech topic
    Best spoken class in noida

  244. Monika Kadel August 29, 2019 at 10:06 am #

    Thanks for sharing such a great tutorial with us. Your post is very unique and informative for new readers. The step by step guide is very helpful for creating a PhoneGap application for us. Fantasy Sports App Development

  245. gurmeet Kaur September 7, 2019 at 2:45 am #

    Thank you so much for sharing such a superb information.

    mobile repairing course in delhi
    mobile repairing course in delhi
    mobile repairing institute in laxmi nagar

  246. Divya Dutta September 7, 2019 at 5:33 am #

    The latest course of LED TV REPAIRING COURSE is just now launched

    by the best LED TV REPAIRING INSTITUTE because we have the best

    faculty here with best experience which will help you guide the

    importance of this course and prepare you for the real world.

  247. fordrobin September 10, 2019 at 3:46 am #

    If you are interested in an advanced Digital Marketing Course In Ghaziabad you can any time contact us to get more details on the course and take other information like fee and other details?

    digital marketing institute in noida
    digital marketing course in ghaziabad
    digital marketing institute in Delhi

  248. Pega logics September 10, 2019 at 6:21 am #

    Thank You for sharing such an informative post. I like the way you present the things and make the post more presentable. At PegaLogics, You will get the best industry-leading experience in the field of Mobile App Development & Web Designing. Visit our website, Regards.

  249. Emails Supports September 12, 2019 at 3:18 pm #

    Very Nice blog. thanks for sharing Email encryption support team

  250. Julia Ye September 13, 2019 at 4:07 am #

    Useful tutorial!

  251. WIinnova Software Labs September 16, 2019 at 3:18 am #

    Thanks for sharing. Keep blogging

  252. fordrobin September 17, 2019 at 2:38 am #

    If you are interested in an advanced Mobile Repairing Institute in Delhi you can any time contact us to get more details on the course and take other information like fee and other details?
    digital marketing institute in noida
    digital marketing course in ghaziabad
    digital marketing course in nirman vihar

  253. Jack Sparrow September 18, 2019 at 4:26 am #

    Very informative helped alot… thnks for sharing

    Self-Publishing a Book

  254. disqus_9a5RgA3ACN September 20, 2019 at 8:12 am #

    It is Nice article!!


  255. RJ Shiyam October 4, 2019 at 2:22 am #

    Nice Blog, Keep post more Blogs Thanks for sharing.
    Advertising Agency

  256. Centaur Interactive - USA October 17, 2019 at 9:07 am #

    Good post… I have learned a lot from this blog.
    Mobile game development company
    Android game development company

  257. Jessica Cromwell October 22, 2019 at 7:14 am #

    Install the best Android child tracking app like Bit Guardian Parental Control with multifunctional features for the complete digital security of your child. Read more: https://www.theparentalcontrol.com/

  258. Jock Sparrow October 23, 2019 at 6:13 am #

    Very Informative helped Thanks

    Book Publishers

  259. The Beno Technologies November 4, 2019 at 2:38 am #

    The Beno Technologies
    We provide a full range of digital marketing services to include, website design, SEO, content management, promo & production videos and still photography. To Know more visit here http://www.wecareatbeno.com

  260. Anand Kulkarni November 20, 2019 at 2:30 am #

    Great Post.

    mobile app development

  261. Anand Kulkarni November 23, 2019 at 2:41 am #

    Nice Post.

    360 degree feedback tool

  262. Tushar Prajapati November 25, 2019 at 5:39 am #

    Awesome post, very helpful tutorial. Let’s connect if you are looking for phonegap developers. Visit https://www.techavidus.com/

  263. Shikha Jain November 29, 2019 at 1:31 am #

    Learn so many things from here, Excellent blog,Thank you so much for the information .
    Poker Game Development Company

  264. Swift Developers December 10, 2019 at 12:30 am #

    Thanks for sharing this tutorial Hire Dedicated Swift Developers

  265. svr tech December 10, 2019 at 8:42 am #

    Thanks for Posting such an useful info..

    amazon web services tutorial

  266. Amna Sheikh December 17, 2019 at 5:53 am #

    Such a nice phonegap tutorial https://www.codingpixel.com/blog/startup-app-development-company/

  267. kinchit patel December 17, 2019 at 7:22 am #

    A good tutorial for beginner. Thanks for sharing:
    Ordinax Web Developers

  268. Rabart mosh December 28, 2019 at 12:56 am #

    From all the comments so far, it seems that it’s slowly rolling out, that’s all. Let’s way a bit more ;)

  269. GamesDApp January 9, 2020 at 12:01 am #

    Nice blog. thanks for sharing

  270. outsourcingservices January 9, 2020 at 4:35 am #

    Great tutorial! We also do similar tutorials. Check them out here https://anuitex.com/blog

  271. Ranjeet Kumar January 10, 2020 at 5:14 am #

    Great tutorial!Thanks for sharing. It’s really helpful for developers. If you are looking software development companies in India to develop PhoneGapp App please contact -https://evontech.com

  272. Parul Srivastava January 14, 2020 at 1:24 am #

    hi, this tutorial is really amazing.

    marketing automation tools

  273. Rashtechinfo January 22, 2020 at 1:07 am #

    RashTech Info is leading website designing and development company in Alwar. We design & develop different type of Websites, Applications, Softwares. visit site : https://rashtechinfo.com/

  274. Raza February 17, 2020 at 7:51 am #

    Very informative blog about phonegap. Your posts always provides in depth knowledge about the subject. I always recommend this post to my students at The Computer Minds institute

  275. Iaan February 17, 2020 at 8:40 am #

    I realize it is only now writing a blog is extremely helpful for me as well as for my work. I would like to say thanks to much to you
    Iaan school Of mass Commnication .IAAN School of Mass Communication (ISMC) is amongst the top MediaJournalism and Mass Communication Colleges in Delhi NCR, INDIA.IAAN is distinct from most colleges of media studies. Journalism and Mass Communication courses in Delhi
    Join Now : http://iaan.org/

  276. Prabal Raverkar February 24, 2020 at 5:41 am #

    You are seriously good, you grasp all major points which should be in phone gap application development. If some people thinks that mobile app development will be more perfect and needs help than visit Young Decade IT Software Solution

  277. Fantasy App Development Compan February 26, 2020 at 4:38 am #

    Brilliant article about phonegap tutorial, I was looking for this sort of amazing content. Thanks a lot for sharing this article. We are a leading android application development company. do check our stuff. Thanks

  278. Asif Shaik March 1, 2020 at 11:40 pm #

    I was struggling to understand the concept of PhoneGap Application. But this tutorial helped me a lot to understand the concept very easily.

  279. Victoria James March 6, 2020 at 1:00 am #

    Overall the thing is there are some of the DMS Software in UAE available in the world that are suitable of all kind of manufacturing industries either they are from UAE.DMS Software in Dubai

  280. 100soam March 7, 2020 at 4:46 am #

    digital market institute in meerut.

  281. Meenu Goyal March 16, 2020 at 2:36 am #

    Useful Blog. This tutorial clears all concepts:- http://erginous.com

  282. Kate Ta March 18, 2020 at 6:20 am #

    Thank you for sharing such helpful tutorial like that! If you guys want to find a dedicated team to outsource, let’s get free quote to us: https://agiletech.vn/

  283. sunil singh March 21, 2020 at 1:37 am #

    a very good article by you on how to build app with phonegap provided snippet of code thats very useful to us

  284. advantasms March 25, 2020 at 1:22 am #

    Useful tutorial!..Bulk SMS service provider in kenya

  285. sunil singh March 26, 2020 at 1:13 am #

    i brief knowlege with sets of codes provided by you to phonegap application which is useful to me because i m phonegapp app developer

  286. B.G Kapildev March 26, 2020 at 4:04 am #

    The tutorial was very detailed and very informative. This will help any android and iphone developers before they create any applications. If anyone looking for a uber like app feel free to reach us.


  287. sunil singh March 31, 2020 at 5:52 am #

    well very detailed post on phonegap app i also develop this type of app it helped me alot

  288. Chris Mcdonald April 8, 2020 at 5:53 am #

    Awesome post! We’re also accepting guest posts on technology write for us topics.

  289. Milan Soni May 7, 2020 at 6:25 am #

    This is cool ideas and many of them wants to learn React Native from React Native Developers, We are team of developer who are creating React Native Applications for you.

  290. Sourodip Biswas May 12, 2020 at 9:14 am #

    Thanks for this post on PhoneGap it will be very helpful for mobile app development.

  291. book river press May 14, 2020 at 1:13 am #

    I love this tutorial! Thank you for making it! I have gone through it to create the single-page application and am seeking to do two additional things and any help is appreciated:How to Publish Book In India

  292. TechAvidus May 21, 2020 at 12:52 am #

    I felt very happy while reading this site. This was a really very informative site for me. I really liked it. web application development services

  293. Daniel Dan May 22, 2020 at 4:55 am #

    Thank you for sharing your knowledges.
    I also have some tips how to reduce the costs of building a mobile app while crisis here: https://y-sbm.com/blog/what-is-the-cost-of-creating-a-mobile-app-in-2020. Hope it will be useful for everyone.
    Good luck!

  294. Somish May 26, 2020 at 9:12 am #

    Nice tutorial. Thanks for sharing such an useful content. Keep sharing. If anyone needs audit for smart contract contact us.

  295. Aqeel Arif June 16, 2020 at 6:39 am #

    Awesome blog. thanks for sharing

  296. ImmanuelKant June 19, 2020 at 6:24 am #

    Such a wonderful explanation and well written post. Excellent tutorial about application development. I definitely share with my friends. Once again thanks for sharing with us. Cryptocurrency development also challenging one. Please add something about that as well.

  297. Asif Shaik July 3, 2020 at 2:49 am #

    .Great content

  298. ananyajain03052 July 6, 2020 at 3:54 am #

    TechGropse is a leading app development agency in Bahrain and over the years, we have curated many apps that have ranked on the top pages of the app stores.
    Visit us:- Best mobile app development company in Bahrain

  299. Allcarsbuyer July 7, 2020 at 2:50 am #

    Cash For Unwanted Cars Ipswich – All Cars Buyer is a first-class vehicle purchaser in Ipswich. Why? Since we love to make our best or most noteworthy cash for damaged cars Ipswichof any make and condition. We likewise give vehicle venders a smooth selling experience that can’t be topped! We deal with every one of the costs of purchasing their vehicles, furnishing them with quality services, making a vehicle selling experience that is unrivalled.

  300. Lucas Parkker July 10, 2020 at 1:35 am #

    Good and useful information, thanks for the update
    White label taxi app

  301. Gourav Bajaj July 15, 2020 at 8:40 am #

    One of the best Tutorial. Thanks for sharing, It’s really helps for me. I am a Professional Developer. works in sam web studio. Thanks for sharing once again and keep sharing helpful tutorials with us. Like this.

  302. Anand July 22, 2020 at 8:18 am #

    This blog is awesome. I find this blog to be very interesting and very resourceful. I would say Your resource is so interesting and informative for me.

    Digital Marketing Company in Belgaum

  303. LocalCarBuyer July 23, 2020 at 4:02 am #

    Looking to get remove your old, scrap cars to buy a new one, here is the best solution for you for free scrap car removal service in Brisbane and get the opportunity to earn more n more Cash for scrap cars Logan if you have the old and scrap cars or any make and model.

  304. Sanjay Chauhan July 23, 2020 at 9:14 am #

    This is great tutorial regarding PhoneGap application development. This is really useful for mobile app developers who want to learn new skills and want to work in new technologies. Want to develop mobile application, contact mobile app development company in Delhi.

  305. Dia July 24, 2020 at 10:26 am #

    Thanks for sharing this tutorial) I recommend you this article because it is a difficult and responsible task for your future or current project-to choose the most reasonable strategy, as well as to determine the goals, budget and deadlines.

  306. Oliver John July 31, 2020 at 10:39 pm #

    Awesome tutorial to create PhoneGap Application. Anyone wants to create mobile application or UI/UX design can contact https://fogads.com. They are best in industry.

  307. Dia August 3, 2020 at 6:48 pm #

    Thanks for sharing this tutorial) I recommend you this article https://innovecs.com/blog/software-development-methodologies/ because it is a difficult and responsible task for your future or current project-to choose the most reasonable strategy, as well as to determine the goals, budget and deadlines.

  308. Flim Star Look August 4, 2020 at 1:09 am #

    Thanks fors sharing, great content cousin forced marriage novels

  309. Amir Shah August 7, 2020 at 3:23 am #

    Such an informative article about the PhoneGap Application If you need any assistance in the PhoneGap Application Visit Here.

  310. fazethree August 7, 2020 at 3:33 am #

    Nice tutorial. Thanks for sharing such an useful content.

  311. Bilal Ahmed August 17, 2020 at 11:19 am #

    Te tutorial is very good and informative.
    If anyone need custom wordpress development services then contact me.

  312. TobySKT August 19, 2020 at 10:12 am #

    Good blog

  313. davidrichard August 24, 2020 at 2:02 am #

    Great Post, If anyone interested developing a PhoneGap application or mobile app development, then it will be surely helpful.

  314. Declan Lawton August 26, 2020 at 10:43 am #

    Amazing phonegap tutorial. Reach out to http://www.moweb.com if are looking to create any PhoneGap application.

  315. Beebotech Submission August 31, 2020 at 2:44 am #

    Great tutorial! Thanks for the information. Looking for Uber like Apps and system can contact and visit Anycab Technology Taxi Dispatch System, Cab Booking Software, Fleet Management System

  316. Oliver John September 1, 2020 at 8:48 am #

    For cheap seo tools just check the website, you will get S*emrush, Ah*rfs etc here

  317. Gopi Srikanth September 7, 2020 at 7:11 am #

    We design, develop and optimize native mobile applications for iOS and Android. All of it – right here in house with our own developers. We can help you engage audiences and solve enterprise problems with a custom-built app for your business.http://mtouchlabs.com/

  318. Mariya Fox September 9, 2020 at 8:29 am #

    There are several app development tutorial in internet like lynda but i’ll applied above tutorial guide in my next phone-gap project that you shared

  319. indigo poolcare September 12, 2020 at 7:06 am #

    Don’t have the time to keep your swimming pool in better condition? Indigo Pool Care is professional and expert swimming pool cleaning service providers in perth assist with pool remodeling.

  320. Amena Mulla September 15, 2020 at 3:06 am #

    Useful article, have a look for such technology blog: https://www.whitelioninfosystems.com/blog/

  321. Anahit Ghazaryan September 16, 2020 at 3:01 am #

    Great article. It’s really interesting to look at the development of AI in retrospect. I want to add an article to your list where people can find interesting information about AI: https://addevice.io/blog/how-much-does-it-cost-to-build-a-mobile-app/

  322. Anubhav Singh September 16, 2020 at 7:08 am #

    Great article. It’s really interesting to look at the development of AI in retrospect.

    SEO agency

  323. iBrandox Online Pvt Ltd September 30, 2020 at 2:09 am #

    iBrandox™, a reputed & trustworthy website designing company in India. We have a dedicated team of Web Designer to responsive and mobile friendly Web design for your websites. Our team of 50+ experts working towards becoming the website designing. We have designed more than 5000 websites for our clients worldwide. Hire us for creative website design, web application development & digital marketing services. Call us on +91 9310247347

  324. Deval Shah October 11, 2020 at 3:37 am #

    Such a great tutorial. Thanks for sharing. also you can find more are read in brief

  325. On Demand App Services October 12, 2020 at 4:44 am #

    Thanks for shring this post. If you are looking to build a grocery delivery app development services, you can get one with PeppyOcean.

  326. Escale Solutions October 13, 2020 at 6:48 am #

    I went over this site and I believe you have a lot of good info, saved to bookmarks. Thanks for sharing this informative post. We are the reputed eCommerce website development company in Delhi.

  327. Dinesh Dhiman October 21, 2020 at 12:26 am #

    It’s a great tutorial! I would say developing an app using PhoneGap is a bit easy as the developer does not require to know mobile programming language but only web-development languages like HTML, CSS, and JavaScript. If anyone looking to develop a custom mobile app using PhoneGap then reach out to Webomaze Technologies now!!

  328. Deep November 5, 2020 at 8:36 am #

    Really Amazing article. I liked It.
    If you are looking for Digital Marketing Services or Web Design Services then Visit LJ Digisolutions

  329. Addevice November 11, 2020 at 2:26 am #

    Great article. It’s really interesting to look at the development of AI in retrospect.
    Online Shopping App

  330. rahul gupta November 11, 2020 at 7:14 am #

    thanx for sharing this information regarding Developing a PhoneGap Application, if you looking best IELTS Institute in Jalandhar then Wonderway is best

  331. Riverday Spa November 13, 2020 at 1:04 am #

    Riverday spa’s speciality signature massage therapies use natural and internationally renowned spa products that offer you a haven of relaxation. massage centre in Coimbatore. We are a Locally owned Business operated by professional massage therapists in a Comfortable and Friendly environment with Convenient Scheduling facilities.

  332. Gopi Srikanth November 17, 2020 at 4:14 am #

    mTouchlabs is a well-thought-of android app development company in hyderabad and also iOS app Development company in hyderabad that believes in driving the technological revolution with innovative ideas and creative sparks. We understand and follow the Android world through each thread, and therefore are well-placed to meet the diverse needs of our clients, consistently, swiftly and efficiently. Being one of the top award-winning team of Android app development company in India, our focus is developing Android, iPhone, and Cross-platform apps with rich & high-quality user experience interface and it is a mobile app development company in india within the stipulated time and budget.

  333. Gopi Srikanth November 17, 2020 at 4:16 am #

    mTouchlabs is a well-thought-of android app development company in hyderabad and also iOS app Development company in hyderabad that believes in driving the technological revolution with innovative ideas and creative sparks. We understand and follow the Android world through each thread, and therefore are well-placed to meet the diverse needs of our clients, consistently, swiftly and efficiently. Being one of the top award-winning team of Android app development company in India, our focus is developing Android, iPhone, and Cross-platform apps with rich & high-quality user experience interface and it is a mobile app development company in india within the stipulated time and budget.

  334. DG Product November 17, 2020 at 11:53 am #

    That is a very useful and interesting article, thanks a lot!

  335. kirankumarpaita November 18, 2020 at 3:36 am #

    software testing company in India
    software testing company in Hyderabad
    Great tutorial.
    Thanks for sharing. It’s really helpful for developers.
    keep sharing.

  336. Addevice November 24, 2020 at 2:42 am #

    Hi, I enjoy your blog. There’s plenty of good information on this blog
    How to Create a Messaging Application
    Outsource App Development in 2020
    How do Free Apps Make Money

  337. Lakshmi Smarther November 25, 2020 at 12:47 am #

    Wonderful tutorial.. thanks for the share

    Lakshmi – SEO Expert in Smarther A leading Food delivery app development company

  338. Sunakshi Jain November 25, 2020 at 2:22 am #

    This is a great tutorial and the ways listed are really fruitful. This is a simple guide and problem solver. Digital marketing is a great industry that is creating a great boom in the market. This could help in your business growth with very little or almost no investment. We are a digital marketing institute in Meerut with the name of Technoed. We provide our clients with the deep knowledge of digital marketing with the authorized google certification and 1005 job assistance. To know more about the digital marketing visit us at:- http://www.technoed.in/

  339. Sunakshi Jain November 25, 2020 at 2:27 am #

    This is a really useful blog with the proper coding and guidance to the readers to solve the issues. Commendable. For the latest updates on the commercial refrigeration including the deep freezer manufacturer in India, you can visit us at :- https://birlaaircon.in/commercial-refrigeration/birla-aircon-deep-freezer-manufacturer-in-india/. We give you the latest technologies and the latest machines that give you the best performance even the most humid temperatures.

  340. Shah November 29, 2020 at 4:20 am #

    It’s really outstanding tutorial! Developing an app using PhoneGap a little bit easy and cost effective. If you are looking Top PhoneGap Developer in Bangladesh to develop your App Please Contact- https://azmistudio.com/

  341. Gurpreet sehgal December 2, 2020 at 1:34 am #

    great blog, really informative. get the best of react js deveolpment
    Visit SIfars.com!

  342. Top CA firm in India December 5, 2020 at 4:40 am #

    Hi…this is abhinav here, the few months I am visiting and following you. What I really like about you is that your writing style. Please keep making such as information for us. Top CA Firm in India – AKGVG, Top CA in India.

  343. Ratan December 5, 2020 at 6:16 am #

    Hi Blogger ,
    I read your blog and I think it’s a very wonderful and informative blog. There is a lot of good information about this blog, I would like to share and I think people will have a lot of support from this blog. Thank you for sharing this informative blog, keep tracking and sharing unique posts with us in the future.
    Mobile app development companies in Bangalore
    Digital Marketing Company In Jaipur
    Mobile app development company in Bangalore
    Mobile app development company in India
    Mobile app development company in India

  344. Deliforce Pvt Ltd December 11, 2020 at 12:19 am #

    Hi, The way you explained is excellent! I like it. Thanks for sharing tutorial of Developing a PhoneGap Application. Great Stuff.
    Deliforce is the #1 Delivery Management Software Platform. It provides companies the fastest and easiest delivery management & tracking system in the market, Powering On-Demand Delivery & Logistics tracking Services. Deliforce delivery management software solution makes its simple, efficient and delightful to manage delivery operations for any business.

  345. Vera Tikhonova December 11, 2020 at 8:57 am #

    Thanks for the great tips. If you’re looking for mobile developers, you can address here

  346. Aum Patel December 13, 2020 at 11:52 pm #

    Aum Patel i like this blog

  347. tecocraft December 14, 2020 at 11:34 pm #

    Thanks for sharing this useful info!
    Mobile App Development Company In UK

  348. Aum Patel December 15, 2020 at 4:00 am #

    Aum Patel
    i like this blog this is very help full for me

  349. mTouchLabs December 16, 2020 at 1:57 am #

    Mobile Apps have now become a basic necessity for every business today, be it a small or big. mTouch Labs helps you to create your idea into reality by our professional mobile app developers. mTouch labs is one of the leading mobile app development services in hyderabad.

  350. mTouchLabs December 16, 2020 at 3:40 am #

    With backup iphone text messages feature, users can safely and quickly copy and export iPhone text messages or the SMS with a certain contact onto your computer database where our software can let you view or print out your iPhone text messages directly.

  351. Steve Orbester December 19, 2020 at 6:47 am #

    Website Designing Company in Delhi | Web Development Company in India

    Orbester infotech is the Best Website designing Company in Delhi, We are leading Web Designing & Website development company in Delhi : India : Dwarka

  352. frankiejong December 20, 2020 at 5:40 am #

    Really awesome article .I’M Very Helpful gb instagram apk is developed by one of the team members of Gbmods.

  353. mTouchLabs December 21, 2020 at 1:39 am #

    mTouchlabs is a well-thought-of android app development company in hyderabad and also iOS app Development company in hyderabad that believes in driving the technological revolution with innovative ideas and creative sparks. We understand and follow the Android world through each thread, and therefore are well-placed to meet the diverse needs of our clients, consistently, swiftly and efficiently.

  354. Addevice December 22, 2020 at 6:31 am #

    Very good article! We are linking to this great article on our site. Keep up the good writing.
    How to Start a Streaming Service

  355. Manish Bhardwaj January 11, 2021 at 12:49 am #

    Awesome this is great wonderful information.. Thanks.

  356. Top CA firm in India January 11, 2021 at 4:38 am #

    Thank you very much for giving us to express our feeling and thoughts about above information. I think you will keep updating and changing these information time to time if there is need to change. internal auditing assurance consulting india, Forensic Accounting And Detection, Inventory management in Delhi, Fixed asset management in India.

  357. Nextbrain_CA January 11, 2021 at 11:52 pm #

    Thanks for sharing, this is a fantastic blog post. Really looking forward to read more. Keep writing.

    Mobile App Development Company in Toronto

  358. karan roy January 12, 2021 at 12:36 pm #

    Quotesmystatus is the best website for quotes & status about love, success, funny, happy, sad, romantic and motivational etc. that will be downloaded quotes images and shared easily from our website. The best quote collection of inspiring, motivational quotes and funny memes about love, life, friendship, change and heartbreak for me and there is many quotes to share your partner and friends or family. https://www.quotesmystatus.com/

    Love Quotes
    Life Quotes.

  359. digy di January 18, 2021 at 12:40 pm #

    Thank you for the comprehensive tutorial! If you need some tips on how to hire skilled iOS developer read the article

  360. Melanie Smith January 19, 2021 at 5:45 am #

    Valuable information!!! thank you for sharing this information for us. Its really valuable points that will helpful to developers.
    Top Digital Marketing Company in Chennai
    Digital marketing agency in Chennai
    Digital marketing services in Chennai

  361. Samkit January 26, 2021 at 2:53 pm #

    This is a nice tutorial! In case you can’t develop on your own, you can hire us Website Development Company

  362. David Harper January 28, 2021 at 3:27 am #

    I am very happy when these blog posts read because blog post was written in a good manner and write on a good topic. Thanks for sharing valuable information. Visit your website: Angular Js development

  363. Sandip Harkhani January 29, 2021 at 12:07 am #

    Good one, nice article. Its really useful. We are providing React Native Application Development Services. Visit our website now.

  364. aganujgold February 2, 2021 at 5:04 am #

    i was looking for this tutorial and this let you to the things get easy.. cash for gold

  365. aganujgold February 2, 2021 at 6:11 am #

    well this is the only tutorial in short and i like to thank you Apostille Attestation services

  366. iGadgets February 9, 2021 at 2:30 am #

    Very Interesting post thanks for sharing with us brother. You can also check my website to get information about TO NEED SERVICE CENTER IN HYDERABAD
    Apple Servicing Centre

  367. Orion Infosolutions February 9, 2021 at 4:38 am #

    Hello, such a great post, help to solve my phonegap app problem. Orion InfoSolutions

  368. priya February 9, 2021 at 5:24 am #

    The most famous city Lhasa is the capital of Tibet and they provide the opportunity for tourists to experience tibet travel. The sound of Tibetan bells has become a symbol of scattering positively. Meditation along the way on top of the world occupy in Himalayan nature, allow your heart and soul. vacation in tibet has spread positive vibes.

  369. priya February 10, 2021 at 12:48 am #

    The famous temples of bali are Gunung Kawi Sebatu temple, Ulun Danu Batur temple, Besakih temple, Lempuyang Luhur temple, Taman Saraswati temple and Taman Ayun temple etc. Most of the hindus go bali for hindus goddess bali temples to visit.

  370. Juli February 10, 2021 at 10:10 am #

    Interesting article! I like such tutorials, especially that are related to app development. It can help you to study something new.

  371. Asif Shaik February 11, 2021 at 12:33 am #

    The code is very simple and easy to understand even for the beginners. Best App Development Company in Bangalore

  372. priya February 12, 2021 at 1:00 am #

    Indian families go for vacation their first or second preference Thailand because in thailand tourm many places to visit. The famous places to visit in thailand are Phuket & Krabi, Pattaya, Hua Hin Thailand, Samut Songkram and Chiang Mai & Chiang Rai Thailand.

  373. Trust Attestation February 12, 2021 at 5:14 am #

    If you are interested in apostille attestation services then trust attestation is available to give you the best apostille attestation services in Delhi, Noida, Gurgaon, Ghaziabad, and Faridabad.

  374. PK Gupta February 16, 2021 at 2:16 am #

    Dr. PK Gupta is a highly qualified sexologist in Delhi known as the best Ayurvedic Treatment Sexual dysfunction doctor and gives solutions for a wide variety of sexual problems.

  375. God Yato February 17, 2021 at 2:57 am #

    Hey, thank you a lot for sharing this article with us. I can’t say, how grateful we are to read this. Also, I would love to share it with my friends and family, who are interested. I hope you will publish such articles in the future as well. It’s so helpful. Goodbye! Take a look at this wonderful article and download clash of clans MOD APK 2021 for free And visit netflix premium apk.

  376. Asif Shaik February 18, 2021 at 4:35 am #

    The code is very simple and easy to understand

  377. Smith Johnes February 23, 2021 at 5:50 am #

    Thanks for sharing tutorial on phonegap, if you want to develop application like phonegap. Hire best mobile app developers.

  378. Eric March 2, 2021 at 1:49 am #

    Well, after seen your above process of phonegap android app development, I would say that your expertise & skill are amazing.

  379. Daniel Williams March 4, 2021 at 7:03 am #

    I read your blog that has good information. Thank you for sharing useful and informative content. I really enjoyed to read out your blog.

    For More Information click Below:
    Hire React Native Developer
    React Native Development Company
    React Native App Development Company
    React Js Development Company
    React Js Web Development Company
    React Js Development Services
    Reactjs App Development Services
    Node Js Development Company
    Node Js Web Development Company

  380. Neha Sharma March 8, 2021 at 7:34 am #

    Sports Betting App Development Company

  381. Igor Sitnokov March 10, 2021 at 12:18 pm #

    We took an example of your code when making our website https://superomatic2.com/en

  382. Exporter India March 13, 2021 at 6:06 am #

    Website Maintenance Company – Find the best online reviews & Rating of Website Maintenance Company, Website Maintenance Services in Delhi. Get Connected to Website Maintenance Company in Delhi, India, through Indianyellowpages.com.

  383. Rose R March 16, 2021 at 3:29 am #

    Thanks for the information.
    Technology write for us

  384. MageComp LLP March 16, 2021 at 8:43 am #

    I read your blog that has good information. Thank you for sharing useful and informative content. I really enjoyed to read out your blog.

    Checkout Hire Magento Developer Service as well.

  385. Rohit Choudhary March 19, 2021 at 1:18 am #

    Incredible tutorial! Thanks for sharing. It’s truly useful for engineers. In the event that you are searching for fantasy app development companies ​in India to create Mobile App kindly contact:- https://www.synarionit.com/fantasy-sports-development.html

  386. Greemus software March 19, 2021 at 5:01 am #

    Thanks for sharing programs for mobile app development in your blog

  387. TechAvidus March 19, 2021 at 5:23 am #

    Thanks for this tutorial. We really loved to read this. Keep publishing awesome content :)

  388. Riajur Rahman March 21, 2021 at 1:18 pm #

    Thank you very much for publish this great content…..
    4kor resistance bands reviews

  389. cora spa March 21, 2021 at 11:36 pm #

    Good Tutorial Thanks For Posting. Spa In Dubai


  1. New Tutorial: Developing and Architecting a PhoneGap Application | Christophe Coenraets - November 26, 2012

    […] tutorial is available here. Follow ccoenraets !function(d,s,id){var […]

  2. Rad tutorial on building a PhoneGap mobile application — Blurb ★ Herd - November 27, 2012

    […] Tutorial: Developing a PhoneGap Application by Christophe Coenraets […]

  3. Blue Ray Plus - Latest Technology News - February 5, 2013

    Christophe Coenraets | Tutorial: Developing a PhoneGap Application…

    Thank you for submitting this cool story – Trackback from Blue Ray Plus – Latest Technology News…

  4. Phonegap Tutorials « PHPsolutionBD - February 18, 2013

    […] http://coenraets.org/blog/phonegap-tutorial/ Share this:TwitterFacebookLike this:LikeBe the first to like this. Bookmark the permalink. Leave a comment […]

  5. Getting Started with PhoneGap and PhoneGap Build | SDK News - February 19, 2013

    […] Coenraets has a beginner’s tutorial to help you develop your first PhoneGap […]

  6. PhoneGap Q&A | Christophe Coenraets - February 28, 2013

    […] PhoneGap Tutorial […]

  7. Débuter avec PhoneGap « Guide du Dev - March 11, 2013

    […] article est basé sur : coenraets.org « aide d’installation WAMP Les Alerts avec PhoneGap […]

  8. Les Alerts avec PhoneGap « Guide du Dev - March 11, 2013

    […] article est basé sur : coenraets.org « Débuter avec PhoneGap [PHP] zebra image, faire du cropping d’images […]

  9. Tutorial – Créer une application mobile avec PhoneGap et SenchaTouch | Blog agence web open source - May 23, 2013

    […] http://coenraets.org/blog/phonegap-tutorial/ […]

  10. Créer une application iphone : Tutoriel avec PhoneGap et SenchaTouch | Blog agence web open source - May 23, 2013

    […] http://coenraets.org/blog/phonegap-tutorial/ […]

  11. Capturematic: Leveraging Mobile Templates in a Backbone.js App | Developer Force Blog - August 13, 2013

    […] Looking at style.css for a moment, you can see how I’ve extended the Mobile Templates to add styling for an icon-panel class (copied from the template’s detail-view-action-panel class and modified from vertical to horizontal orientation), and sliding pages with CSS transitions, inspired by Christophe Coenraets’ PhoneGap Tutorial. […]

  12. PhoneGap : transformer votre single-page Web en une application mobile native | La petite pause technique - September 24, 2013

    […] Tutoriel de développement d’une application PhoneGap […]

  13. Phonegap plugins Contact API not supported when running on device | QueryPost.com - September 29, 2013

    […] run the PhoneGap tuto written by Christophe Coenraets ( http://coenraets.org/blog/phonegap-tutorial/ ) .. no problem , I tested then built for iOS via Adobe PhoneGap Build.. and run it on my iphone […]

  14. Мобильная разработка | Дмитриев Сергей - September 30, 2013

    […] http://coenraets.org/blog/phonegap-tutorial/ […]

  15. iPhonegap: Developing a PhoneGap Application | Solution's point... - October 9, 2013

    […] Reference : Here […]

  16. Phonegap and the universe of frameworks? | Technology & Programming - November 10, 2013

    […] final decision is based on “http://coenraets.org/blog/phonegap-tutorial/&#8220;. This is a Tutorial about developing a Phonegap Application. Christophe Coenraets is a […]

  17. Handlebars Template is not rendered - QueryPost.com | QueryPost.com - November 11, 2013

    […] Hey I am completly new to Handlebars.js and almost new to JavaScript itself. So I tried to go through the following tut: http://coenraets.org/blog/phonegap-tutorial/ […]

  18. Three great phoneGap tutorials » VC-TEL Team Blog - December 12, 2013

    […] Developing a PhoneGap Application http://coenraets.org/blog/phonegap-tutorial/ […]

  19. File Upload and Download in Phonegap , Mobile Application Development | Techooks - January 1, 2014

    […] Posts Related to Simple Phonegap Tutorials More Tutorials studied Phonegap Tutorials […]

  20. WordPress and Phonegap for mobile app development | Coding Logbook - March 15, 2014

    […] Tutorial: Developing a PhoneGap Application […]

  21. Tutorial: Developing a PhoneGap Application | Christophe Coenraets - appgong - May 2, 2014

    […] Tutorial: Developing a PhoneGap Application | Christophe Coenraets […]

  22. What is Phonegap? | Sathya's Log - May 15, 2014

    […] http://coenraets.org/blog/phonegap-tutorial/ […]

  23. Fix Insertion.js Errors - Windows XP, Vista, 7 & 8 - October 3, 2014

    […] Tutorial: Developing a PhoneGap Application | Christophe … – excellent tutorial – best I have seen on creating a good phonegap application architecture. I haven’t made it all the way through yet but I have found a couple of …… […]

  24. Tutorial: Developing a PhoneGap Application | Andymatic - October 13, 2014

    […] Tutorial: Developing a PhoneGap Application […]

  25. 11 Resources for Building Mobile Apps with HTML5 - CodeCondo - January 29, 2015

    […] Tutorial: Developing a PhoneGap Application […]

  26. PhoneGap Error Handlebars Template is not rendered | rdelyon - March 16, 2015

    […] how a few days in following this tutorial i get the […]

  27. Code Links 001 | 0unit . Jeison Cardoso - April 15, 2015

    […] Mobile Tutorial: Developing a PhoneGap Application http://coenraets.org/blog/phonegap-tutorial/ […]

  28. Phonegap and the universe of frameworks? | Some Cordova Questions and Answers - May 2, 2015

    […] final decision is based on “http://coenraets.org/blog/phonegap-tutorial/&#8220;. This is a Tutorial about developing a Phonegap Application. Christophe Coenraets is a […]

  29. Phonegap Vs native iOS/Android development in 2014 | Some Cordova Questions and Answers - July 1, 2015

    […] Phonegap tutorials such as http://coenraets.org/blog/phonegap-tutorial/ but all seemed to have issues getting them to work as […]

  30. Handlebars Template is not rendered | news-rss feed form stackoverflow - October 21, 2015

    […] Hey I am completly new to Handlebars.js and almost new to JavaScript itself. So I tried to go through the following tut: http://coenraets.org/blog/phonegap-tutorial/ […]

  31. PhoneGap Tutorials To Take You From Beginner To Advanced - December 1, 2015

    […] Developing a PhoneGap Application by Christophe Coenraets […]

  32. Getting started with PhoneGap development – What a developer needs? | @macronimous - July 26, 2016

    […] comes PhoneGap, an open source mobile development framework to ease the process. PhoneGap takes advantage of the […]

  33. PhoneGap tutorial | - September 29, 2016

    […] Tutorial: Developing a PhoneGap Application : http://coenraets.org/blog/phonegap-tutorial/ […]

  34. 3 – dbarenas - February 16, 2017

    […] http://www.openanalyticssummit.com/http://gentsthemes.com/demo/stanleywp/http://www.blacktie.co/demo/victoria/http://www.blacktie.co/demo/onassis/https://github.com/risico/Twitter-Wallhttp://pipes.yahoo.com/pipes/pipe.edithttp://codepen.io/piotrl/pen/cwbgJhttps://trello.com/b/fTE2j8Fu/welcome-boardhttp://ququplay.github.io/jquery-mobile-flat-ui-theme/https://github.com/ququplay/jquery-mobile-flat-ui-theme/blob/master/demo/index.htmlhttps://dribbble.com/shots/962197-Ui-Kithttp://graphicburger.com/flat-design-ui-components/http://dart117.com/product/web-flat-gui/https://github.com/ccoenraets/directory-backbone-ratchet/blob/master/tpl/EmployeeView.htmlhttp://coenraets.org/blog/http://www.gajotres.net/creating-phonegap-project-on-macos/http://coenraets.org/blog/phonegap-tutorial/https://www.google.es/webhp?sourceid=chrome-instant&ion=1&espv=2&es_th=1&ie=UTF-8#q=phonegap+build+app+compile&safe=activehttps://github.com/Icenium/sample-airlineshttp://www.telerik.com/appbuilder/sample-apps […]

  35. Capturematic: Leveraging Mobile Templates in a Backbone.js App | Developer Force Blog - September 7, 2017

    […] Looking at style.css for a moment, you can see how I’ve extended the Mobile Templates to add styling for an icon-panel class (copied from the template’s detail-view-action-panel class and modified from vertical to horizontal orientation), and sliding pages with CSS transitions, inspired by Christophe Coenraets’ PhoneGap Tutorial. […]

  36. jquery-mobile - Phonegap et l'univers des frameworks? - July 24, 2018

    […] décision finale est basée sur "http://coenraets.org/blog/phonegap-tutorial/&quot;. Ceci est un Tutoriel sur le développement d'une Application Phonegap. Christophe Coenraets est […]

  37. Technologie 3: (Web) Application Development – Project Creative Technologies - September 8, 2018

    […] http://coenraets.org/blog/phonegap-tutorial/ Dit is een tutorial over het ontwikkelen van een Phonegap app. […]

  38. jquery-mobile - Phonegap y el universo de marcos? - May 6, 2019

    […] decisión final se basa en «http://coenraets.org/blog/phonegap-tutorial/&#171;. Este es un Tutorial sobre el desarrollo de una Aplicación Phonegap. Christophe Coenraets es […]

  39. Developing a PhoneGap Application – Javascript World - May 7, 2019

    […] Link: http://coenraets.org/blog/phonegap-tutorial/ […]

  40. android - Phonegap Vs iOS/Android nativi di sviluppo nel 2014 - July 1, 2019

    […] Phonegap tutorial come http://coenraets.org/blog/phonegap-tutorial/ ma tutto sembrava avere problemi a ottenere loro di lavorare […]

Leave a Reply