Easy to use. Nice looking controls. App can run on many different devices, and bypasses marketplace.
Could use some more features such as AJAX and more data handling.
When you develop for mobile devices these days, you pretty much have two paths you can take: You can use the OS manufacturer's SDK and develop native apps, or you can create an application that runs in the device's web browser.
It's also easier because you can develop on nearly any desktop computer. If I want to develop an iPhone app, I don't need the SDK that runs on a Mac; instead, I can create the application right on my Windows desktop.
And finally, once I do develop the app, if I stick to web standards, it should (in theory) run on any modern mobile browser. (And many mobile browsers are incredibly advanced. For example, the iPhone browser supports a huge amount of HTML5, and did before most desktop browsers did. For at least a time, it was one of the most advanced browsers around.)
For me as a web developer, this is a much more enticing approach to developing an application. I do a huge amount of custom work for clients, and almost all of my work over the past decade has been browser-based. In the last two years, I've written almost no desktop applications. And it's always cool to grab an iPhone or Android, open up the browser, and try out the app, and see it working just fine.
There are several approaches I can take, as there are many new libraries out there to help simplify the process of mobile browser development. jQuery now has a mobile version (although it doesn't bear much resemblance to the regular jQuery). Sencha has a mobile version as well, which does have a lot of similarities to its desktop browser sibling, ExtJS. But what else is there?
Along Comes NS Basic
There's a company in Toronto that you've probably heard of: NS Basic. They've been around nearly 20 years, and have been creating development tools centered around the Basic programming language, primarily for handheld devices. Their latest offering is an IDE called NS Basic/App Studio that lets you write Basic programs that run in the mobile browser.
Trying Out NS Basic/App Studio
And from that perspective, I'm pretty impressed. Using NS Basic/App Studio reminded me of the original Visual Basic IDE. Simply put, you can get a form that you can drop controls onto. You can attach event handler code to the controls. Then you can try it out in the browser on your desktop.
Here's an example screen shot:
You can see the form in the middle part. On the left is a small toolbox that has controls you can drop on your form. This sample form has a few such controls on it. Then on the right is the project explorer, along with a properties window.
To add code to a control such as a button that's on your form, you click on the control so it's selected, then go over to the Properties window. Scroll down and find the event you want to add code for, such as onclick. Then click the dropdown next to the name; the dropdown will be automatically filled in with a name for the event. Click the name, and the code window will open with the function there for you, like this:
Now you can type in your Basic code. For example, if you want a message box to appear in response to the button, you can use NS Basic's MSGBOX function. In the online help (which describes all the functions available), the names are all in uppercase, which feels a little weird to me. But Basic is not case sensitive, so you can type them in any case you want. In fact, the popup help in the IDE shows the casing different, as in the following screen shot:
Also, you can see how the popup help shows you the parameters for the MsgBox function. Here's the code I put in:
MsgBox ("Hello World")
After saving the code, you can try it out in your desktop browser. Remember, at heart this is a browser app, after all, so it'll certainly run in your desktop browser. When you do, it'll look a little odd stretched out the full width of the browser. So I resized it a bit, and to my surprise, it really did look a lot like a typical mobile application, maybe similar to an iPhone app:
(Note that I had to refresh it after resizing the browser. Apparently some of the GUI elements are sized when the page loads based on the current browser size, and don't resize. But you're usually not resizing a mobile browser like you can with a desktop browser, so this shouldn't be a problem.)
It's clear when I use this that the controls are designed to have the look and feel of typical mobile controls. And they do look nice, and work well. In the sample app I've been showing you, there's a bar across the top for navigating through the pages in the app, and it looks like the bar you'll see in a typical iPhone app. And the controls, when possible, make use of the native controls. The combo box, for example, opens up the selection box you expect. On an Android device, it's a list of radio buttons; on the iPhone the same control in the same app will instead have the iPhone's standard rolling selector thingy. That's a nice touch, as you can target different devices without having to make a single change to your code.
Deploying Your App
Included with the IDE is a nice deployment feature, which makes it easy to upload your app to a web server. By default, the deployment is on a free test server the NS Basic company lets you use. But that's just for testing; the app gets deleted automatically after ten days. But it's handy because you can type the URL into your handheld device, and try the app out right away. I have to say, it was pretty cool to create the app, click Deploy, and then pick up my phone, put the URL in and see it right there on the phone.
When you're ready to deploy the app for real, you can open up a Deploy Options dialog box and enter in your own server information, including username and password, so that the app can be uploaded to your own server through the same Deploy menu item.
Under the Hood
Wait. That doesn't look right. What is Button2? When I look through the HTML, I see that Button2 is the ID of the button:
Also, you're technically not supposed to assign events directly as in element.onclick. Again, for portability, you're supposed to bind the events with the appropriate function call. Unfortunately, binding events differs between browsers (thanks to Microsoft), and that's one reason people usually prefer to use libraries such as jQuery, which take care of the cross-browser headaches. But again, the browsers today do still support this kind of syntax, so again, maybe it's okay. (Also for what it's worth, binding events in jQuery is easy, using jQuery('#Button2').click().)
Summing it Up
So far this is a decent product. The library seems to have a lot of features, including some things I didn't expect to see (such as integration with the SQLite databases available to some devices).
Also, here are a couple tutorials they pointed me towards that provide some communications examples like I mentioned in the article:
I've worked with both Titanium and PhoneGap, but there doesn't seem to be much code out there where I can run tests on my own variations. Does NS Basic have a decent enough following where I could try some mixing of various functions from other projects?
I am using javaworld and OpenPlug for developin APP, but the tool you share seem littile complex, might be it's due to the reason that I use to of using thap App for Mobile Development. Can I get its complete tutorial that Help me to learn that easily. It look user friendly but took some time to get full grip on it.
Tim is a troll. Apparently he searches the web for reviews and mentions of App Studio and puts the exact same post up each time. He's been doing this pretty much since the product hit the market. I don't know what his problem is, but since nobody else seems to be of his opinion (App Studio has its flaws, particularly the lousy documentation, but no, it doesn't contain "countless bugs") I wouldn't pay any attention to him.