NSB/App Studio FAQ: Difference between revisions

From NSB App Studio
Jump to navigation Jump to search
Line 92: Line 92:
In most cases, simply scaling the controls on the form will give poor results. The best way to do this is to detect the screen size on startup and adjust the sizes and positions of your controls. There's a handy [[Properties_and_Methods|.resize(left, top, width, height]]) function to help you do this. Scaling does not work, since buttons will look oddly sized, images will have incorrect aspect ratios, and poor use will be made of the screen real estate.
In most cases, simply scaling the controls on the form will give poor results. The best way to do this is to detect the screen size on startup and adjust the sizes and positions of your controls. There's a handy [[Properties_and_Methods|.resize(left, top, width, height]]) function to help you do this. Scaling does not work, since buttons will look oddly sized, images will have incorrect aspect ratios, and poor use will be made of the screen real estate.


If you do want to use simple scaling, there is a sample called Zoom in the files area of the web board. You might also look at [http://f1.grp.yahoofs.com/v1/kNR2UaJT-1Kj21UT6HvtQ4-NyJx1OG-wvADA9sduQt_WN9fdnxB8SDcibXqP2zJdt_ZsAS4jrehStvRaLraFew/Zoom.zip Zoom] by winvetpro or [http://tech.groups.yahoo.com/group/nsbasic-app/files/Easy%20Orientation%20/ Easy Orientation] by Leslie Peaker.
If you do want to use simple scaling, there sample on the web board. Have a look at [http://f1.grp.yahoofs.com/v1/kNR2UaJT-1Kj21UT6HvtQ4-NyJx1OG-wvADA9sduQt_WN9fdnxB8SDcibXqP2zJdt_ZsAS4jrehStvRaLraFew/Zoom.zip Zoom] by winvetpro or [http://tech.groups.yahoo.com/group/nsbasic-app/files/Easy%20Orientation%20/ Easy Orientation] by Leslie Peaker.


=== How can I detect when the app is closing? ===
=== How can I detect when the app is closing? ===

Revision as of 18:39, 23 April 2013

Frequently Asked Questions (FAQ)(faq)

The product itself

What kind of dev tool is this?

AppStudio is a complete development environment for mobile devices. It can be programmed in JavaScript or BASIC. The BASIC language implements a large subset of Microsoft's Visual Basic, with extensions to create a complete development environment. AppStudio BASIC is a full, modern implementation of BASIC, with proper subroutines, variant data types and no line numbers.

Applications you create are freely distributable and are write-once, run anywhere. Lots of sample code is included.

The environment features a Visual Designer, which allows you to graphically lay out your control and set their properties. You can then hook code into the controls and add other code as needed. When your code is complete, use one key run run it locally, deploy it to a website or convert it to a native app using PhoneGap.

If you have worked with Microsoft's Visual Studio, you'll find it easy to come up to speed.

What devices do the apps it creates run on?

AppStudio apps run on:

  • iPhone (any model) with iOS 3.0 or later
  • iPod Touch (any model) with iOS 3.0 or later
  • iPad (any model)
  • Android 2.1 (or later) devices.
  • BlackBerry OS 6 (or later) devices
  • HP Web OS devices
  • Windows Phone devices (limited)

Development can be done on the following computers:

  • Mac OS 10.8 and 10.7. Mac OS 10.6 if running on a 64 bit processor
  • Windows 8, 7, Vista or XP.
  • Virtualbox WIN/XP and Ubuntu Wine also work.

What technologies is it built on?

AppStudio makes use of JavaScript, HTML5, CSS and WebKit. These are all under the covers, however: there is no need to learn these technologies to use the product. Your BASIC code is translated to JavaScript, which is then executed by the same browser engine used by Safari, Chrome or whatever web browser the device uses. Similarly, screen objects are internally implemented in HTML, taking advantage of HTML5 and WebKit technologies.

Recent work by Google and Apple have given dramatic speed improvements to JavaScript: it is now faster than many purely compiled languages. It's substantially faster than .NET, for example.

How big is the runtime?

Tiny - less than 125k. Of course, this number will increase if you use various libraries and frameworks.

Why isn't AppStudio just like Visual Basic or NS Basic/CE?

It's actually a lot like Visual Basic and NS Basic/CE. Both use the same core language definition: all the statements and functions are identical. The differences lie in the operating system and environment. For example, the screen controls on an iPhone have a very different look and feel to their counterparts on the desktop. Controls which are designed to be touch operated will work differently from keyboard and mouse style controls.

How fast is it?

AppStudio executes over 1,000,000 loops/second on the current generation of devices. That's pretty quick for devices in this class, fast enough for most anything but perhaps the very heaviest number crunching.

How can I test my programs?

During development, AppStudio runs your program in your default browser: Chrome and Safari work best. They both have good debugging facilities. The program looks and feels much like it will on a real device. Of course, you should also test on actual devices.

Can I do file I/O?

Yes. For simple files, there is a localStorage which lets you save and retrieve string data. It is persistant, meaning the data will still be there next time you start the program. Most devices allow up to 5 megs (sometime much more) per app.

SQLite is supported for more sophisticated applications. It's an easy to use database that gives good performance.

Files can be read using the ReadFile function if they are loaded from the same server as the app. See the ReadFile sample.

One thing you cannot do is access the actual file system of the device. Modern mobile operating systems "sandbox" the apps so they cannot interfere with each other.

If localStorage and SQLite are not sufficient (they almost always are), access to the device's filesystem is available using a PhoneGap Plugin.

Can I access a database on my server, such as MySQL, Access, Oracle, etc.?

The only database that runs locally on mobile devices is SQLite. If you want to get information from a server database to your device, you have a couple of choices:

  • Import the data into an SQLite database and include it with your project.
  • Have a listener program on a port on your server. Use AJAX calls from your app to the listener program. The listener program can then access the database on the server and return the requested information.

What can't I do?

For things like Bluetooth, microphone, serial comms, you'll need to use PhoneGap. PhoneGap lets you run your AppStudio app as a native application. It has plug ins which let you use native API functions.

Tell me more about Bluetooth!

Bluetooth is workable, but a bit of a pain at present. Here's a summary of what it takes:

  1. JavaScript/HTML5 will never be able to talk to the BT stack directly. That takes native code.
  2. To use native code, you need to build a native app. PhoneGap has a nice way of doing this, using plugins. AppStudio works well with PhoneGap, and there is a Bluetooth plugin for PhoneGap.
  3. PhoneGap Build makes it easy to compile AppStudio + Plugin apps. However, only official PhoneGap plugins are supported by PhoneGap Build.
  4. The Bluetooth plugin is not an official plugin, so PhoneGap SDK has to be used.
  5. PhoneGap SDK involves installing and using the complete toolchain for Apple, Android and any other platforms. While not as tough as developing with the native SDK, you still do need to install it.
  6. We have to hope that the BT plugin becomes official, or that PhoneGap Build opens up to third party plugins.

You can develop and test the rest of your app normally - just the BlueTooth dependent parts will need testing with PhoneGap.

What about hardware specific features?

Some, but not all, hardware features are available. The GPS and Accelerometer data certainly is, but it is not possible to vibrate the phone. Once again, PhoneGap comes to the rescue.

How do I handle different screen sizes?

Devices come in many different screen sizes, from small phone to large tablet. The devices can be positioned in portrait or landscape rotation: you can decide to support one or both. Use the Orientation control to help here.

In most cases, simply scaling the controls on the form will give poor results. The best way to do this is to detect the screen size on startup and adjust the sizes and positions of your controls. There's a handy .resize(left, top, width, height) function to help you do this. Scaling does not work, since buttons will look oddly sized, images will have incorrect aspect ratios, and poor use will be made of the screen real estate.

If you do want to use simple scaling, there sample on the web board. Have a look at Zoom by winvetpro or Easy Orientation by Leslie Peaker.

How can I detect when the app is closing?

You can't, really. Apps close when you start another app. A app with a Close or Quit button will actually get rejected from app stores for violating user interface guidelines. Starting the app again will bring back the already running version (for PhoneGap apps) and restart it from the beginning (for web apps) or if the device was shut down in the meantime.

The best technique is to constantly save the current state of the app in localStorage and SQLite. When the app restarts, check the last saved status in localStorage, go to the most recent form and fill in all the fields. Done right, it will look as though the app was never exited.

What's on the roadmap?

AppStudio has a lot of potential for new features. Here are some of the ones we are working on - please note that this list can change at any time as we reasses how practical and important each item is.

  • Design Screen: Move objects with arrow keys
  • IDE: Localization in other languages

Support and Documentation

How is it supported?

NS BASIC provides support by email and on a very active [web board]. We post bug fix updates to our ftp site on a regular basis. Check the web board and our blog for the latest announcements.

Is there an option for Premium Support?

Yes. For a monthly fee, you cam get Premium Support which includes direct access to the developers, fast turnaround time and much. See our Support Policies.

What documentation is included?

There is a wiki that contains the complete documentation on the IDE and the language. It is included with the product for offline use. Short summaries of most functions are in on line help. There are also tech notes and tutorials.

Distributing your app

Can I distribute my applications?

Yes. You may distribute your apps, with no further royalties or costs. AppStudio apps can be distributed without going through Apple's iTunes store or Google's Marketplace. This is great news: setting up an app in the iTunes store can be more challenging than writing an app in AppStudio. Instead, apps are distributed over the web. Apps can be sold by controlling who is allowed to access the app.

But I want to distribute my app through the App Store!

If you want to distribute through the App Store, you can wrap the project in PhoneGap. Create iOS App Store apps using PhoneGap Getting started with PhoneGap videos PhoneGap itself is free - you will need to pay Apple $99/year to belong.

Do I need a Mac to distribute through the App Store?

To do the final submission of an app compile as native to Apple's App Store, you need a Mac. The program used to upload apps, "Application Loader.app" is a Mac only application. You can buy a used Mac Mini for this - they are not expensive. You do not need a Mac to distribute your app as a web app, outside the App Store.

How can I protect my code?

We incorporate obfuscation into the Deploy step: this makes it difficult for people to look at your code. Of course, any executable can be reverse engineered with a bit of effort.

Licensing and Upgrades

Where can I buy it? What does it cost?

AppStudio is available at an introductory price of $99.95 USD directly from NS BASIC Corporation's website (regularly $149.95). You may download the software and start using it immediately after your order.

What is your upgrade policy?

Point upgrades are free. We reserve the right to charge for major new versions - that gives us an incentive to make something really special.

I want to run it at the office, on my laptop and at home. How many licenses do I need?

One, so long as you are the only one using it. The license is to a single developer.

I have a number of developers. Do I have to buy licenses for all of them?

If you have a single location with many programmers, consider an Enterprise License: unlimited programmers at one location for a flat price.

I would like to use AppStudio in my classroom. What license do I need?

The Educational License is a perpetual classroom license. Students will be able to use personal copies for the duration of the semester they are attending the course: the reacher can reuse the license in the next term with a new class of students.

Other

Who is NS BASIC Corporation?

NS BASIC was formed in 1993 to create applications for developers using hand held computers. The initial product, NS BASIC for the Newton, started shipping in 1994 and has consistently been one of the top selling packages on the Newton platform. The product has been continuously updated since its first release. In late 1997, NS BASIC released its next product, NewtCard, a product inspired by Apple's HyperCard application. NewtCard has probably garnered more "Best of" awards than any application produced for hand held computers.

NS Basic/Newton and NewtCard are two of the three software products to garner a "First Class Award" from Mobile Computing. NS Basic/CE was first released in 1998. It has been continuously been enhanced and improved since that date. Apart from the free eMbedded tools from Microsoft, it is the most widely used dev tool for Windows CE.

NS Basic/Palm was released in 2000. It became the most popular development tool for those devices.

Over the years, NS BASIC Corporation has developed a large body of special expertise in creating development environments for hand sized computers. Combining effective user interfaces for small, pen based screens with efficient use of resources built into the ROM, NS BASIC's applications are surprisingly powerful, small, and easy to use.

You can contact NS BASIC Corporation by email at info@nsbasic.com, phone at 1 888 NSBASIC (416 264-5999) or fax at 416 264-5888.

So what does the "NS" stand for, anyhow?

Nice & Smart.