In my previous post I reviewed Icenium - a new ICE (Integrated Cloud Environment) that is based on Apache Cordova. But what is Apache Cordova?
About a year ago Adobe announced the purchase of Nitobe - a small Vancouver company - whose main claim to fame was PhoneGap - a framework for building cross-platform mobile Apps. With the purchase of Nitobe, the PhoneGap framework was released as an Open Source project and submitted to the Apache Software Foundation as an Incubator project.
As Apache Cordova APIs allow developers to access device functions without using native code (Objective-C for iOS, Java for Android or Silverlight/C# for Windows Phone) apps can be created for multiple platforms using the same code-base. Currently Apache Cordova is available for the following platforms:
- Windows Phone
which pretty much covers 99% of all smartphones.
The Apache Cordova API can be broken down into 13 areas:
- Accelerometer - work with the device’s motion sensor capability
- Camera - control the device’s camera(s)
- Capture - capture media files using the devices media capabilities
- Compass - obtain the direction the device is pointing
- Connection - check the network state
- Contacts - work with the device’s contacts database
- Device - get device specific info
- File - manage the devices native File System
- Geolocation - work with the device’s location sensors (GPS)
- Media - record and playback media
- Notification - work the device’s notification system
- Storage - hook into the device’s native storage system
Apps built with Apache Cordova are still packaged using the platform SDKs and can be made available in the relevant App Store.
Icenium, Telerik’s new ICE which I reviewed earlier, provides support for iOS and Android, but I already have a developer account for Windows Phone so I can use that account to deploy any app I develop with Apache Cordova to my Samsung Focus.
While it is true that Icenium offers a more complete developer experience than working with the native platform tools and the relevant Apache Cordova SDK, it is limited by its restriction to iOS and Android devices. I have a Windows Phone and an iPad so I will using both approaches over the coming few months. Hopefully this will be an ongoing set of blogs as I start to develop some real apps with this exciting framework.