AppStudio 4.2.4 released!

AppStudio 4.2.4 is ready. This release has support for iPhone 6 and 6 Plus splash screens, plus a number of updates and fixes.

  1. Code Window: K no longer quotes text on some German systems.
  2. Controls: Panel.close function added.
  3. Controls: Panel auto sizes form when opened.
  4. Controls: Panel.previousForm adds reference to calling form.
  5. Deploy: Obsolete demos cannot use nsbapp.com.
  6. Deploy: Splashscreens for iPhone 6, iPhone 6 Plus added.
  7. Design Screen: Grid overlay is no longer wiped out by background color.
  8. Documentation: Localization and wiki files updated.
  9. PhoneGap: remove obsolete reference to feature properties.
  10. Runtime: PlaySound incompatibility with Safari fixed.
  11. Samples: New PhoneGapVidCap sampled added. (Thanks, Julio!)
Posted in news | Comments Off

Videos!

We now have a set of YouTube videos available. They’re short – just a minute or two each – but help with how to get started with AppStudio.

They are:

  • A Short Tour of AppStudio
  • Your first AppStudio App: Hello World!
  • Run your AppStudio App on iOS
  • Run your AppStudio App on Android
  • Use PhoneGap to make an AppStudio App native

English: https://www.youtube.com/channel/UC3NpfXo8K7xoYZENHvhShYw

Arabic: https://www.youtube.com/channel/UC5g_DTUUJnTthlF6-5pPR7Q

Posted in tips | Comments Off

Parameters: an easier way to make SQLite commands

Ever had to code a messy statement like this?

    sqlList[j]="INSERT INTO customerData (name, age, sales) VALUES _
        ( " & "'cust" & j & "', " & j & ", " & j*10 & ");"

Here’s a more elegant want to do the same thing. Load your values into an array, then put a question mark in your query string where you want them to be substituted:

    args=[cust, j, j*10]
    sqlList[j]=["INSERT INTO customerData (name, age, sales) VALUES _
        (?,?,?);", args]

Notice that we also had to put the query string into an array, with the first element being the query string and the second our array of arguments.

(This is only for SQLite strings. If you would like to do something similar to your other strings, check out the Format function.)

Posted in tips | Comments Off

Using the NSBApp Debugger

The NSBApp Debugger (AppStudio 4.2.2+) is based in the Weinre (“WEb INspector REmote”) app. It looks like a subset of the Chrome Debugger. That’s no surprise: both are based on the same Web Inspector software. This debugger does not have the ability to view code or set checkpoints, but otherwise is quite functional.

It’s a great way to debug your app when it running on an actual device.

Use it in the following cases:
Continue reading

Posted in tips | Comments Off

AppStudio 4.2.3 released!

AppStudio 4.2.3 is ready. This release has a nice new Panel control, how to Videos and a number of updates and fixes.

  1. Controls: New jQM Panel control. (Thanks, Erkan!)
  2. Controls: The height property of Form object can now be set if fullscreen is false.
  3. Controls: jQM RadioButton square corners fixed.
  4. Controls: HeaderBar – background on notext buttons is gone.
  5. Code Window: go to function works properly in JavaScript
  6. Code Window: JavaScript functions created from Properties Window correctly.
  7. Deploy: iOS 8 no longer supports minimal-ui, so default is now off.
  8. Deploy: Security certificate handlers updated.
  9. Language: SQL now supports Using_SQLite#Parameters|parameters.
  10. Language: Bug in Yosemite’s handling of Arabic worked around.
  11. Language: Serbian added (Thanks, Elvir!)
  12. Help: Link to English and Arabic AppStudio Videos added.
  13. Libraries: DropBox upgraded to 1.2.
  14. Samples: New Panel sample.
  15. Samples: All use .appcache as the cache file name suffix.
  16. Samples: Updated to use SQLite Parameters.
Posted in news | Comments Off

Advanced control of the Camera using PhoneGap

(Guest post from Mike Burgher – thanks!)

I’ll share my experience using the Android camera; hope this doesn’t cause confusion. I wrote an NSBasic app that uses the camera to do motion detection on the area. It does time-lapse, auto-shoot the camera, and compares portions of the images over time. You use it, for example, if you are in a sketchy hotel room and you want some peace of mind. While you sleep, it will detect if the door starts to open, and alarms loudly and summons help.

It’s all NSBasic except the “getpicture” camera operation, which is a custom PhoneGap plugin. I know of no way to do this whole thing from JavaScript. The Android camera API sequence is non-trivial, but there is good documentation and code examples.

In a plugin, it’s fairly easy to select which camera, set the parameters, shoot the picture when the camera is ready, and save it.

The camera preview is more of an issue. The Android API sequence requires you to display a preview on the screen before the camera is ready to take a picture. For many applications, you don’t want to see that preview; you want to see your app. There are several approaches to hiding that preview, from making it ultra small (1px by 1px) to making it transparent on >= Android 4.0. But there is no single solution that works on all Android cameras. And there are various undocumented limitations on cameras, dictated by the manufacturer.

And it’s hard to debug a camera app! Things will work on the device, that won’t work in the Android emulator, and vice versa.

I started with an existing custom PhoneGap plugin called Foreground Camera, who’s purpose was to keep your app from going to the background and getting killed off by Android when you called the standard “getpicture”. It was modified to select the camera, hide the preview, and take the picture without user intervention.

Unfortunately, I’ve been living in an ancient PhoneGap 2.5 world for a long time. I suddenly have to bring all my stuff up to the current PhoneGap level. But I’d be happy to share my mods to this plugin. It’s not 100% stable yet, and I’d welcome any improvements.

— Mike

Posted in tips | Comments Off

AppStudio 4.2.2 released!

AppStudio 4.2.2 is ready. This release has some nice new stuff, including a new Debugging option, Playsound options and modal forms.

  1. Debugger: New NSBApp Debugger for PhoneGap and iOS apps.
  2. Deploy: Error in Make Desktop App fixed.
  3. Deploy: Possible error in FastClick fixed.
  4. Controls: jQM CheckBox square corners fixed.
  5. IDE: Registration check when offline fixed.
  6. Language: new ForEach statement.
  7. Language: new Object.observe statement.
  8. Libraries: iOS 8 support added to Add to Home Page.
  9. Libraries: New EasyModal library
  10. Libraries: Retina updated to 1.3
  11. PhoneGap: Version can now be set in Project Properties
  12. Runtime: PlaySound now has stop and loop options.
  13. Runtime: Sound only inits if needed. Saves battery life on M8 device.
  14. Samples: New Modal sample.
Posted in news | Comments Off

PhoneGap 2.9 and older is deprecated

PhoneGap announced today that they will deprecate PhoneGap 2.9 and older on October 15, 2014. Phone 3.0 and later are supported: the current version (as of the date of this post) is 3.6.3.

In most cases, the changes will not be major. Remember to go into your Project Properties and edit ‘PhoneGap config.xml’. It will have a line like this – edit it to use Version 3.6.3 (current as of the date of this post).

  "<preference name=\"phonegap-version\" value=\"3.6.3\" />", 

You can also delete the line entirely. In this case, PhoneGap Build will always use the latest version of PhoneGap.

Posted in news, tips | Comments Off

Google Play Store notice for PhoneGap apps

Recently, a number of users with AppStudio apps in the Google Play Store got this notification:

This is a notification that your {name of app), is built on a version of Apache Cordova that contains security vulnerabilities. This includes a high severity cross-application scripting (XAS) vulnerability. Under certain circumstances, vulnerable apps could be remotely exploited to steal sensitive information, such as user login credentials.

You should upgrade to Apache Cordova 3.5.1 or higher as soon as possible. For more information about the vulnerabilities, and for guidance on upgrading Apache Cordova, please see http://cordova.apache.org/ announcements/2014/08/04/android-351.html.

Please note, applications with vulnerabilities that expose users to risk of compromise may be considered “dangerous products” and subject to removal from Google Play.

To fix this, you have to update your project to use the current version of PhoneGap. Go into your Project Properties and edit ‘PhoneGap config.xml’. It will have a line like this – edit it to use Version 3.6.3 (or later – use the current version).

  "<preference name=\"phonegap-version\" value=\"3.6.3\" />",

You will then need to resubmit your app to PhoneGap Build. Use the resulting build to update your app in the Google Play Store.

Posted in news, PhoneGap | Comments Off

AppStudio 4.2.1 Released!

AppStudio 4.2.1 is ready. A few new things for i0S 8, the iPhone 6 Plus and more…

1. Controls: Adsense updated for current API – Use Content ads instead of Mobile.
2. Controls: Projects with old style jqWidget Button rounded corners load properly.
3. IDE: Improvements to registering.
4. IDE: Support for iPhone 6 screen size added (375×646)
5. IDE: PhoneGap Status screen works properly in Arabic.
6. PhoneGap: Certificates updated.
7. Samples: New IndexedDB sample.
8. Samples: Updated AdSense sample.
9. Translations: Slovenian is complete!

Posted in news | Comments Off