Widgets in Temenos Quantum Visualizer for iOS and Android

Temenos / Kony Quamtum Visualizer

Over the last few weeks, I have been building an application using Temenos (formerly Kony) Quantum Visualizer version 9. This app will eventually be pushed to both Apple and Android phones and tablets, which is the main reason someone would use Visualizer instead of developing natively with XCode and Android Studio.

In theory, the JavaScript code written in the Visualizer IDE will result in the same UI on both the iOS and Android platforms, but that isn’t always the case.

For the first time, I got an actual JavaScript error on the Android app, whereas the iOS app worked perfectly. Apparently, Android isn’t as forgiving when accidentally leaving out the “new” keyword when instantiating a widget – in my case, a RadioButtonGroup. (The error I got on the Android side was “invalid operation : trying to create object without ‘new’ keyword”.)

The RadioButtonGroup widgets, when set in Toggle mode, are rendered differently on iOS and Android. That wasn’t really a problem in and of itself. The problem was that the iOS widgets looked good and took up the entire width of the parent container (a FlexScrollContainer), and the Android screen had the radio buttons bunched up on the left side of the screen.

RadioGroupButton differences on iOS vs. Android

For whatever reason, the Android app required that the hExpand property be set to true, and it didn’t matter on the iOS version.

The moral of the story: If your UI looks different in unexpected ways on one platform, it probably will require explicitly detailed widget property attributes to make them look more similar.

Google Glass, GPS, and Bluetooth using an HTC Evo 4G Phone

Google Glass logo

After Google announced several months ago that they were expanding the original pool of 2000 Google Glass Explorers (from the 2012 Google I/O Conference) by up to 8000 more people with the “If I had Glass” program, I decided to throw my hat in the ring and signed up, hoping to get an opportunity to buy Glass before it went on the open market.  I was selected to be in this second pool, and I picked up my Glass at the Googleplex in Mountain View, CA a couple of weeks ago.

To be able to use the turn-by-turn directions app for Glass, it currently has to be connected using Bluetooth to an Android device running the MyGlass app.  (MyGlass for iOS is rumored to be released soon after Glass is released into production.)  MyGlass for Android requires Ice Cream Sandwich 4.0.3 or better.  Here’s where my problem comes in.  I don’t use an Android phone – I have an iPhone 5.  So, no GPS for me.  Considering that this is one of the main features of Glass, I thought about possible solutions.  I wasn’t going to buy a new Android phone just for GPS, but I could buy a tablet.  I looked at many of the tablets out there, and there are certainly quite a few to choose from.   The only problem for me was that about the only ones that get good reviews are those made by Google, Samsung, and Sony.  All of these will set me back by at least $200.  Most of those that cost less than that are accompanied by reviews that say “don’t buy it” or “it’s not worth the money”.

As it turns out, I had an old Sprint HTC Evo 4G Android phone at home that was deactivated.  Perhaps I could use this!  Unfortunately, it ran Android Gingerbread 2.3.5 – several versions below what MyGlass needed to function.  At that point, I decided that the trouble to root the device and load a custom ROM might be worth it.  After all, I wasn’t using the phone for anything else, and if I could get Ice Cream Sandwich loaded, I could make good use of this otherwise obsolete phone and I wouldn’t have to buy a tablet that I didn’t really need, aside from it being a source for GPS data.

After looking around, I found that the best ROM for this phone would have not Ice Cream Sandwich, but Android’s newest incarnation, Jelly Bean (4.2.1, not 4.2.2).  This ROM is known as MazWoz EVO, beta 4.  As is usual with these custom ROMs, there are things that no longer work after loading them.  With this one, the documentation said that the forward-facing camera (FFC) and WiMax don’t work, and the other camera/video functions may be buggy.  This was not surprising to me – and I didn’t need these things anyway.  Using these directions, I was able to load Jelly Bean 4.2.1 onto the old Evo 4G in about an hour and a half.

I was ready to pair the Google Glass to the Evo 4G when, lo and behold….Bluetooth doesn’t work on the Evo.  By this time, which was at about 3 AM, I was not pleased.  No one had mentioned this snag in anything I had read up to that point, so I figured there must be a workaround.  Surely not everyone that had loaded the ROM never tried to use Bluetooth.  After searching for a bit, I discovered that there was an easy fix!  Using Root Explorer or some other file manager that will allow read-write access to the system, delete the file “/etc/bluetooth/bt_vendor.conf” and reboot the phone.  After doing this, I have no problems pairing my Glass with the Evo, and now I can ask Glass for directions!

Fixing the “Unknown Error code during application install: ‘-24′” Issue

Android Jelly Bean logo

I just finished installing the CyanogenMod ROM for Android Jelly Bean 4.1.2 (cm-10-20130117-1903-otter-sgt7.zip) on my rooted 1st generation Amazon Kindle Fire. I am very pleased to say that it boots much faster than the stock Amazon-loaded OS (forked Android Gingerbread 2.3)!

Loading another ROM removed the Amazon Marketplace, but does not load Google Play. After loading CM10, Google Apps (gapps) must still be loaded in order to get Google Play. Once this is done, Android apps – including the Kindle reader – can be reloaded.

The problem is that after loading CM10, some apps would not install correctly using Google Play. The Kindle Reader app in particular gave an error that was particularly vague: “Unknown Error code during application install: ‘-24′”.

Fortunately, the fix for this is rather simple. After loading Google Apps, do a factory reset using TWRP or whatever boot loader you’ve installed on the Fire. From what I’ve read, this may apply to other Android devices as well.