Filed under: Developer, iPhone, iPod touch
NimbleKit: Native iPhone apps with HTML and JavaScript
If you're packing a little JavaScript-fu but not much Objective-C knowledge, and itching to jump on the App Store bandwagon, NimbleKit may be the answer you're looking for. By providing its own API on top of Cocoa Touch, NimbleKit allows would-be developers to access core iPhone functionality with Javascript functions. You can build an entire application using an HTML template with embedded Javascript, compile it and run it on your iPhone/iPod touch. I've tried it out; it's pretty slick.
NimbleKit provides functions for placing buttons, progress indicators, text and other native interface elements programatically. You can also do some styling with the HTML. Functions are available to stream Internet-based or embedded audio, search contacts, and read and process local and remote documents. The demo version of the development kit lets you run it through all of its paces, only stopping short of running it on your device. You can build and test in the iPhone Simulator to your heart's content before making a purchase.
NimbleKit is ideal for a range of application types. You can't expect to make a wicked, animation-laden video game with it, but you can rapidly prototype and develop more static interfaces and basic functionality. While there's a good deal of power available, it does put you in an either/or situation. If you have a little Objective-C in your blood, you might become frustrated, not being able to tap NimbleKit's functionality from outside of the HTML setup. It's definitely, at this point, geared toward rapid development of iPhone apps by Javascript coders.
As I mentioned, NimbleKit is available to try with full functionality. You'll need Xcode installed with the iPhone SDK, and you'll still need to be a registered developer to get an app into the App Store. Since the iPhone SDK allows you to test on the Simulator without registering as a developer, you can actually put the entire process to the test before spending a cent (well, after the purchase of a Mac and the broadband line you'll need to download the SDK ... ). NimbleKit can be licensed for a one-time fee of $99, and a licensed copy can be used to create as many apps as you want. A project template is included with the kit to get you started.


![TUAW [Cafepress]](http://www.blogsmithmedia.com/www.tuaw.com/media/tuaw-cafepress-promo.png)


Reader Comments (Page 1 of 2)
Jroen said 10:24AM on 5-27-2009
Seriously, you didn't even MENTION the free PhoneGap? http://phonegap.com/
Reply
Brett Terpstra said 10:51AM on 5-27-2009
I hadn't seen PhoneGap previously, I'm checking it out now. Thanks!
Jacob Stahl said 2:38PM on 5-27-2009
Brett,
I'd also recommend you check out Rhodes by Rhomobile. They offer a open source smartphone development framework that allows developers to create iPhone apps using HTML and Ruby.
http://www.rhomobile.com
Devon said 10:39AM on 5-27-2009
Does it actually compile into native code? The iPhone SDK agreement specifically says you can't include interpreted code with your application so if it's running JS within the app then Apple would never allow this on the app store. Unfortuneatly their website doesn't say anything about how it works.
Reply
Jake Marsh said 10:49AM on 5-27-2009
Devon, actually running JS inside of an iPhone app is just fine. You can't have any interpreted languages on the iPhone, so things like Java and Ruby are a no go.
Danny said 10:49AM on 5-27-2009
devon, you totally off here.. I know you are taking the rules at face value, but apps that are based on interpreted code are on the app store currently. See http://phonegap.com/projects for a list of some of the projects using phonegap (a free nimblekit, the apps all are written in javascript).
Alan said 10:52AM on 5-27-2009
Phonegap Apps are getting rejected sporadically by Apple. That's an ok risk with a free framework but not for $99.
No official response yet from Apple on why they are seemingly targeting phonegap apps.
Devon said 10:56AM on 5-27-2009
Javascript IS an interpreted language.
Quote from the SDK agreement:
"No interpreted code may be downloaded or used in an Application except for code
that is interpreted and run by Apple's Documented APIs and built-in interpreter(s)."
The fact that some got through on the app store that use interpreted code wouldn't surprise me due to the variability of the review process.
Which is why I asked if it's compiled into binary or if it's actually interpreting the JS on the fly in the application. If they're translating JS into objective-c and then compiling it then that's OK but running interpreted JS might get you into trouble down the line.
ShALLaX said 1:38PM on 5-27-2009
Sounds like Jake doesn't know much about programming / what an interpreted language is.
Jake Marsh said 10:36AM on 5-27-2009
This is great, and its actually a fairly full-featured solution for the market EXCEPT they left out the one glaring most-important feature to a system like this: TABLE VIEWS! There is NO support for Table Views anywhere inside of NimbleKit, therefor, you CANNOT make ANYTHING that even closely resembles a "Native" iPhone app. And, just like their website, your app will come out looking like some "n00b" threw it together because they couldn't afford to have someone compitent design their product.
The way this system works is great, but how they could release this product before supporting Table Views is beyond me, its not even really a product without that. Also, they should support JSON and XML parsing within the classes, do all that work for us. Give us a "ImportJSONFromURL(http://google.com/blah)" method and let the results be easily put into a table view. That'd be an amazing system. One that would easily take-off as THE way for web-developers to make the switch to iPhone native apps. But until then, $99 for this system is a joke.
Reply
Brett Terpstra said 10:50AM on 5-27-2009
True. As I said, it's not going to create a full-featured application, but does allow people without Objective-C/Cocoa experience to quickly create basic iPhone apps. The aesthetic of the app is largely in the hands of the developer. Buttons can be replaced with images, and backgrounds are entirely up to you. The developers are also taking feature requests and are very responsive, so I expect to see its capabilities expand quickly.
Jake Marsh said 10:57AM on 5-27-2009
Brett, thanks for your response. I agree with you NimbleKit is probably the best offering that's come out so far in this market. PhoneGap is nice, but honestly without handling the UI, PhoneGap just won't ever suffice. We DO need something like NimbleKit so that web developers can make the jump without fear. I just wish their product website and product itself looked more appealing (visually and feature-wise) so that more developers would take notice.
Jeff Wheeler said 12:05PM on 5-27-2009
This is pretty much the exact same way the Pre works -- native APIs via JavaScript.
Webkit compiles JS to bytecode, so it's not really being interpreted in that environment (I would be very surprised if Palm didn't take advantage of this); if NimbleKit doesn't (and I doubt it's possible via Apple's limited API), then it will be relatively slower.
Reply
Stephen Lang said 12:45PM on 5-27-2009
I am going to build a plain English API on top of NimbleKit, it will be called EnglishKit and EVERYONE will be able to program for it.
"Fart", "Fart louder", etc.
Reply
Ishan said 1:41PM on 5-27-2009
As already pointed out there are other JavaScript iPhone app frameworks out there, e.g. PhoneGap and Quickconnect to name just two. There's also the Rhomobile framework which lets you build iPhone apps in Ruby.
Reply
bjhanifin said 5:50PM on 5-27-2009
Thanks for sharing all of the kits. Sounds like they would be perfect for porting a web-based app. For example a chat app based on phpFreeChat (HTML/AJAX interface).
Reply
Jash Sayani said 10:55AM on 5-28-2009
Wow! This is interesting......
Reply
lee said 1:26AM on 5-29-2009
What about QuickConnectiPhone, the original JavaScript iPhone application environment? It is free, open source, and has many more features than NimbleKit or PhoneGap. Also, it appears that the NimbleKit team got the idea for the Xcode template from QuickConnectiPhone.
Reply
Pothik said 1:00AM on 5-31-2009
Java are more convenient than others for sure. It certainly leverages the groundbreaking technology in iPhone. Users can do so many things with the apps! I asked http://objectdevcorp.com/ to creat few apps for me and they did a splendid job.
Reply
iPhone freak said 9:30AM on 6-27-2009
Here is an interesting iPhone app - http://www.dirtymouthapp.com/. If someone wants to say a phrase in another language but does not know how, DirtyMouth is the solution.
Reply