Apache Cordova

Presentation By Hugo Agbonon (@Hugo_Agbonon), created using reveal.js

What we're going to talk about...

  • The state of mobile development
  • Cordova to the rescue
  • Live-coding!
  • Applause, tomatoes and/or questions

The state of mobile development

So, I want to write a mobile app...

  • Java on Android
  • Objective-C, Swift on iOS
  • C# on Windows Phone

ARGH

Dear mobile developers...

I'd really like to write my app only once!

In my ideal world, you eventually go out of jobs

(But I <3 you)

And don't worry, it's not like it's gonna happen anytime soon

Now

All mobile devices have webviews.

Webviews = I can create applications using web technologies! HTML5, CSS3, JavaScript!

But we cannot access any of the devices API (vibration, battery, contacts, camera...)

How can I write my app for all devices?

(You know, besides hiring 3 teams of developers)

Cordova to the rescue

Apache Cordova is a framework which enables developers to write apps with web technlogies and access platform APIs with those web technologies

A quick bit of history

  • Born as PhoneGap in 2009, by Nitobi Software
  • Nitobi was bought by Adobe in 2011, and PhoneGap's code given to Apache
  • Today exists Apache Cordova and Adobe PhoneGap

Talk about confusing...

Cordova enables cross-platform development for

  • Android
  • iOS
  • Windows Phone
  • BlackBerry
  • Firefox OS
  • Ubuntu
  • Tizen

Live Coding!

May the demo gods have pity on me

(Or here's a tutorial, if you 're watching this presentation online)

Bad news

  • Webviews suck! They're slow! Actually, it depends, and it's really getting better! Lots of apps were made with PhoneGap/Cordova, including games, so performance is not an issue for most apps.
  • It doesn't look the same on all my devices! Well, Cordova isn't magical. Working on different devices is the same as working on different browsers!
  • It doesn't "feel" native! Plugins and components can to give you native-like controls. Also see the Ionic Framework

Good news

I have a single code base, and a cross-platform app \o/

Thank you

Here is a series of demos for a developer to play with