Thursday, 1 October 2015

App Re-release Completed

After a lot of recoding and bug testing, the newest version of the Nova Scotia Travel App has been republished in Google Play, and will appear soon in iTunes (once latest release is approved by Apple, likely a few weeks - they approved earlier versions).

With over 30,000 lines of programming code, the app is available on both IOS and Android platforms, with separate custom apps for phone and tablet.


The upgrades consisted of 6 main areas:

1/ Adding auto-scaling for newer high dpi devices, and 480x800 tablets

The Adobe Air programming platform used to build the app doesn't auto scale properly for certain devices, such as Samsung S4 and 480x800 7" tablets. The result was that the app screens were either oversized, or too small on non-standard devices. Code was added to correct this (major piece of work). With the variety of devices changing continually, there may still be some that don't scale properly, but I'll add fixes for those as they're reported.

2/ Setup process streamlined

The app originally unzipped a large quantity of setup files (images, etc), when it was run for the first time. I felt the amount of time a user had to wait for this to complete was a bit too long, so code was changed to leave most downloaded zip setup files intact - images are unzipped on-the-fly when needed by the app. The setup wait time is now approx. a minute - big improvement.

3/ Tighter integration between phone and tablet core modules

This part of the work isn't "visible" to users, but the end result is that most coding changes made in the phone version automatically propagate to the tablet version as well, reducing the amount of duplicate code, and subsequent bugs.

4/ Revamped Wave section in tablet version

The earlier tablet implementation of Wave messaging was my first attempt at maximizing screen space, but it turned out clunky. I made a number of major changes that vastly improved the interfaces, and it's now a lot easier to use.

5/ Detection/Handling of occasional device differences

My Next tablet doesn't have a camera (discovered belatedly); another device we tested stores its camera pics in external storage (most use internal). Added code to detect such differences and handle them properly.

6/ Additions/Changes

As I tested the app throughout the recoding phase, I found myself wanting features or info that the app didn't yet have. Here's a list of the additions/changes:

- the area list in the weather screen now contains summary weather info, instead of just the area name
- home screen is a lot cleaner. Browse/search sections can be expanded/collapsed; quick menu can be toggled on/off.
- the home screen quick menu is now customizable. You can add/remove icons, and rearrange them.
- events section is now searchable. Date range selection has been added to the "browse events" options.
- calendar: added the ability to view events by week
- radio stations section: listen to live streams without leaving the app. All known NS radio stations listed.
- NS webcams list: a large listing of webcams available in the province, organized by area
- the app's web browser now includes bookmarking
- added extensive functionality for the back button and menu button on Android devices. Previously, the app had very little tie-in to these buttons.
- android menu button now works on screens where main app menu  is available.
- an advertiser help section, and toggle switch to include/exclude it from the help index (makes it easier for advertisers using the app to access help info useful to them).
- added hundreds of event listings, from sources such as eventbrite and kijiji
- integrated over 1,000 listings from the Restaurant Association of Nova Scotia
- thumbs are higher res - they were a bit pixelated before
- photo sets for different areas will no longer need to be unzipped when installed (took a fair amount of time and cpu before)
- added caching to result pages to speed up rendering. 

Bug Fixes

I contracted a third-party bug tester to do extensive checking of both the tablet and phone versions, and discovered a range of bugs that were difficult to find on my own - and fixed them as they were discovered. I also developed an in-house custom software program to itemize and keep track of all the app elements, and tracked which had been tested and which hadn't. Turned out to be VERY helpful - there's too much to try and keep track of by memory. Over 200+ hours of bug testing, and still going.

There's a lot of moving parts in the app, sort of like a car engine - with both 4 cylinder (phone) and V8 (tablet) versions. Plus, the different manufacturers bring different variances into play - iPhones handle some things differently than android, and even my two test android tablets needed custom programming in the app  to handle their individual quirks.


There's a lot of work that isn't listed above. For example, a 3rd party vibration controller turned out to be buggy, and spent a fair amount of time communicating (unsuccessfully) with the developer to troubleshoot and get it fixed. Ended up using a similar module from Adobe, which had its own bugs, but was still usable. You get the picture:)

The end result is that the app is much improved, and vastly more stable. The next upgrade phase will focus on improving the look and feel. It will require hiring a mobile design expert, and will likely be a major piece of work. But all in good time:)