Low learning curve. Rapid development. Active support community.
Needs better documentation. Performance, especially memory issues, can be a big problem. Not suited for all types of apps.
NimbleKit provides a project template for Xcode that makes it easy to set up the basics for a new application. You start by placing your web code in a "main.html" file.
NimbleKit with iPhone
Installation is a Breeze
As long as your system meets the minimum requirements to run Xcode and use the SDK, you can use NimbleKit. After you install the Apple iPhone SDK, download the NimbleKit installer and run the package.
Start New Project
Once the installation is complete, run Xcode, create a new project, and choose the NimbleKit Application as the project type.
New Project Type
Select your target device from the Product menu to specify whether you want to make an app for iPhone, iPad, or both.
Select Target Device
To display your application, NimbleKit makes use of the UIWebView object from iPhone OS SDK, which is an Objective C class for viewing web-based content. This rendering engine powers Mobile Safari, so the same advantages and problems apply. This includes good support for HTML5 with its advanced features, such as offline storage and 3d rendering via the canvas tag, but it also means occasional font problems, no flash video, and worse performance than if you were using the iPhone OS Core Animation library.
It is important to understand that a properly designed NimbleKit project is not a web app, and can look and feel just like a native application. It will show up in the app store with the other apps for sale, but it doesn't have the same address bar and navigation buttons that always show up when using Safari. Additionally, you can make use of projects like iUI or jQTouch to help you build an experience that is like a traditional iPhone app. You can do a Google search to find templates for Fireworks or Photoshop that provide controls that NimbleKit doesn't already provide. A search might include traditional iPhone controls such as buttons, switches, sliders and more.
NimbleKit Map App
Lost Answers App
This problem is not unique to NimbleKit, and may be familiar if you have developed for mobile devices before, including iPhones. I am unfamiliar with how to recognize, avoid, and fix memory related issues with Xcode, and I suspect many NimbleKit customers are in the same boat. I rewrote my code so that it did not crash on the iPod Touch, which involved completely rewriting the heart of the program code that managed my trivia questions.
The included NimbleKit documentation focuses almost entirely on the API. It lists out the functions you need to call in order to use various native controls and is well written and concise. Unfortunately, when I ran into these performance problems it was not much help. Since NimbleKit targets web developers who may not know how to deal with these issues, they need to provide better getting started tutorials that walk you through how to use Xcode to monitor and fix memory and other kinds of run-time problems.
On a more positive note, VolnaTech updates NimbleKit frequently and they have an active support forum where you can work directly with the developers. They also provide free code-level support to anyone who purchases the full product. They regularly add new features, and take requests from the community about what features to add next. For example, version 1.7 added support for SQLite databases which allowed me to move my trivia questions to a database format and solve my memory problems. Version 1.8 added support for making iPad apps and was available only days after the iPad launch event. The most recent 1.8.2 release includes the ability to rotate native controls, in addition to bug fixes.
In the 4.0 version of the iPhone OS, Apple changed some of the licensing terms for the SDK, which many fear will ban the use of external tools such as NimbleKit. Unlike the new version of Flash, NimbleKit development is done entirely in Xcode, and only uses Apple supported tools. The developers of NimbleKit reviewed the new license and feel confident that NimbleKit will be fine under the new rules.
Try Before You Buy
While NimbleKit has its limitations, it is a great way start with iPhone development for specific kinds of apps, especially if you are intimidated by Objective C. Best of all, you don't have to pay for the product until you want to deploy your app. You can download it and write your whole app in the simulator before you decide that the product is right for you.