In Saudi Arabia, everyone learns to program.

Mobile device programming is now a required part of the High School curriculum.

Saudi Arabia has added computer programming to its High School curriculum. Starting this year, all High School students will take a course in creating apps for mobile devices.

teacherAbout 450,000 students will learn programming each year. The vast majority of them have smart devices: iPhones, Android phones, tablet and iPods. Like everywhere, their devices are prized possessions, in use all the time.

The software package used is NSB/AppStudio, from NS BASIC Corporation. It allows students to easily create apps using a visual interface. Programming is in JavaScript or BASIC. Allowing the students to create apps for their own smart devices makes programming a much more relevant and interesting subject.

“The Saudi government has shown great foresight in teaching its students to program.” said George Henne, President of NS BASIC Corporation. “We strongly support education and believe that learning to program should be a core competency for all students. Saudi Arabia is now in the forefront of countries educating their students.”

Training is already underway, with the first class scheduled to complete in January 2015. The Ministry developed its own curriculum in Arabic for the course. The AppStudio IDE was enhanced to provide Arabic language and right-to-left text support.

nsbapp.com now requires AppStudio 4.2.6!

We’ve just uploaded 4.2.6 to the servers. In it, we overhauled how we deploy to nsbapp.com. It’s much faster and smoother now. However, to do this, we had to make changes to how the server works.

Older versions of AppStudio WILL NOT BE ABLE TO DEPLOY to nsbapp.com any more!

Please download 4.2.6 and start using it.

Here is what is new:

  1. Deploy: Deploy to nsbapp.com is now much faster.
  2. Deploy: Deploy to nsbapp.com now shows download QR code.
  3. Deploy: Deploy to nsbapp.com now has option to show all your projects (registered users).
  4. Deploy: New dialog box on completion.
  5. Library: AddToHomeScreen 3.1: improved Android Chrome support
  6. Controls: Grid clicks when scrolling improved on some platforms.
  7. Controls: Select now shows square and round corners properly.

AppStudio 4.2.5 Released!

AppStudio 4.2.5 is ready. This release has an easy way to save data on the server, PhoneGap CLI support, and introduces Google Glass as a platform.

  1. Language: New serverStorage object: makes it easy to store data on the server.
  2. Deploy: PhoneGap CLI support added.
  3. Deploy: Google Glass support added.
  4. Code Window: Disable block comments in free form blocks.
  5. Controls: Error hiding Panel fixed.
  6. Deploy: Fix extraheaders line ending. Existing apps need to open property and hit OK.
  7. Deploy: versionCode added to default PhoneGap configxml.
  8. Design Screen: Fix non numeric left and top.
  9. Design Screen: Vertical drag now sets horizontal % correctly.
  10. IDE: Better message for Other files without an external file.
  11. Library: jQuery Mobile: Upgraded to 1.4.5. Fixes for iOS 8.
  12. Library: Updated iScroll to 1.5.3 and minified.
  13. Preferences: Moved PhoneGap options to a new tab.
  14. Runtime: Change close character to %times; in dialogs.
  15. Runtime: isEmpty() function improved. (Thanks, Tomas!)
  16. Runtime: PlaySound now fails gracefully in IE11.
  17. Runtime: Set NSBCurrentForm before global code executes.
  18. Samples: Dropbox samples updated.
  19. Samples: New serverStorage and StudentsServerStorage samples added.
  20. Samples: Google Glass sample added.

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!)

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.

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.

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.

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.

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!

AppStudio 4.2 released!

We’re happy to announce that AppStudio 4.2 has been released. It includes support for iOS 8, the iPhone 6, a new Signature control and more.

It’s available from the usual download location.

Here is the complete list of what is changed:

  1. Adsense: Updated for current API.
  2. Controls: Add zoom capability to scrollers.
  3. Controls: Facebook now uses HTTPS, updated for new API.
  4. Controls: jQuery Mobile updated to 1.4.4
  5. Controls: jQWidgets updated to 3.5
  6. Controls: New Signature Control
  7. Controls: Missing filter image added to jqxGrid.
  8. Documentation: Locale files and Wiki updated.
  9. Documentation: Unneeded Locale files removed.
  10. Deploy: Icon for Android home screen now appears.
  11. Deploy: New projects default to PhoneGap 3.5.0.
  12. IDE: Support for iPhone 6 screen size added (375×646)
  13. IDE: New Education license options
  14. IDE: Registered name now appears on About screen.
  15. iOS8: minimal-ui no longer supported.
  16. Runtime: Print output is scrollable again.
  17. Samples: New GridDynamic sample. Shows how to dynamically read SQLite database.
  18. Samples: New Signature sample.
  19. Samples: New TwitterURL sample.
  20. Samples: New WhatApp sample.
  21. Samples: Obsolete WebSocket samples removed.
  22. Samples: Update ListWithScrolling sample.
  23. Translator: Dim array with variable as one of the bounds gets treated properly as an array.
  24. Translations: Tagalog is complete!