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.

Sync iCloud Photos with iOS

iOS logo

This is not so much a software development topic as it is an iOS / iCloud issue that does not seem to be well-documented, but was solved only after discussing with Apple Support.

The scenario here is where an iOS device (an iPhone 8 Plus, in this case) gets restored from backup. During the time between the backup was made and was later restored onto the iPhone, a number of photos had been taken and uploaded to iCloud. After the phone was restored, the pictures were missing from the iPhone, yet could still be seen in the Photos app on a MacBook.

When looking up this issue, I found time after time, there does not seem to be a documented definitive way to force sync iCloud with your iOS device.

Having had some similar experience with this sort of thing before, I thought that turning off iCloud Photo Sharing in Settings and turning it back on might force a sync.

iCloud Photo Sharing in iOS Settings. Image Credit: Business Insider http://static2.businessinsider.com/image/54591934ecad04974f8b4567-747-560/icloud-photo-sharing.jpg

Before I turned it off, only ten or so pictures were missing. Now several thousand pictures disappeared from the iPhone. Needless to say, I was not pleased at this point. I checked Photos on the Mac, and they were still there, so I breathed a sigh of relief.

I then turned off Upload to My Photo Stream in Settings.

Upload to My Photo Stream in Settings. Image Credit: iMobie. https://imobie-resource.com/en/support/img/my-photo-stream-not-w.png

This didn’t seem to change anything, so I turned it back on. I then turned iCloud Photo Sharing back on, which automatically then turned Upload to My Photo Stream back off. I turned it back on so that both settings were on, as they were after the iPhone was restored. I then rebooted the iPhone. Still no change.

At this point, I thought time might solve the problem. Perhaps the photos needed to be re-downloaded from iCloud. I let the iPhone sit overnight to see if there was some change in the morning. By the next morning, there was still no change.

Time to contact Apple Support. After talking to a support tech for just a few minutes, a suggestion was made: on the Mac, navigate to iCloud.com, log in, and open Photos on the website. After doing so, all of the pictures – including the ones that were originally missing – appeared on the iPhone!

Whether or not this always works remains to be tested, but it solved my problem in this instance. For such an easy and quick fix, it’s worth trying.

Completing the Core iOS 7 Code School Course Using XCode 6.x

iOS logo

One of the classes that must be completed on the iOS Path for Code School is Core iOS 7. When this course was published, version 7 was the most recent iOS release and the IDE used was XCode 5 from Apple.

This course may be done using XCode 6.x, and most of the exercises will run on the iOS 8/8.1 Simulator that comes with this version of XCode. However, due to some changes between iOS 7 and iOS 8, some of the exercises will successfully compile and run, but the associated tests will fail.

The solution to this problem is that the iOS 7.1 Simulator must be added to XCode 6.x. This is done through XCode Preferences on the Downloads tab. If you are using a MacBook Pro or MacBook Air, make sure that it is plugged in before attempting to download anything through the XCode Preferences interface. If you are running on battery, the download never starts and no error message or warning is given.

Also, before selecting Test in your application, make sure that the active scheme is a device running iOS 7.1. The iPhone 6 and 6 Plus options only run on iOS 8, so choosing “iPhone 5s (7.1)” should work fine.