Sunday, 24 February 2013

Version 1.2.1 of the Trailer app for iOS available

A new version of the Trailer iOS application is now available in the iOS App Store.  The link for the application (using Apple's new URL scheme for iOS applications) is http://appstore.com/tltrailer.

This version is a bugfix release to v1.2 (which was not announced here because of the bugs
which were discovered shortly after release and are fixed in v1.2.1).

The main changes in v1.2 were largely as a result of user feedback:
  • The application user interface has been rearranged so that the user starts in the list of trails instead of starting in the welcome/help web page.  The web page is still available from the 'About' button at the top right of the trail list page, and was rewritten.
  • Changes have been made to the way background location tracking works to address reported problems with the application draining the battery.   The application is now very aggressive about only using background location tracking periodically for long enough to get a good fix, then turning location tracking off for a variable period which is calculated using the nearest notifiable zone border and a presumed walking speed.
The application also has a settings page which allows following configuration parameters to be set:
  • Parameter 'background location tracking time limit' allows the user to control the maximum length of time for background location tracking to be kept on if no new zone border is reached.  By default this is set to  30 minutes.
  • Parameter 'Diagnostic logging enabled' controls whether the application sends diagnostic events via the Flurry analytics library which relate to the operation of background location tracking and include exact location fix details.  This option is set to 'Disabled' by default, in this state the application still sends some analytics events, but none which include GPS-level location data. 
I am very happy to receive user feedback.  The offer I made some month ago to send an App Store redemption code to allow a free copy of the app anyone who sends me an email request still stands.


Thursday, 14 February 2013

Google code scripts for creating .tqz files now also generate .gpx files

A short while ago I checked in a change to the google code project which provides example Python code for building files in the .tqz file format required by the Trailer iOS program.

This change enhances the example code so that as well as generating the .tqz (as used by the Trailer iOS application), it generates a .gpx file, which which can be used during Xcode debugging sessions to provide a feed of synthetic location events which simulate moving between the zones covered in the generated .tqz file at a speed which can be adjusted in the source code.

In theory, these scripts could be used or adapted for generation of .gpx files for use in development/debugging/testing of other iOS apps.

I'd welcome comments on whether anyone would be interested in having a similar feature added to the tl-trailer web application.

Sunday, 27 January 2013

The .tqz file format example

The .tqz file format used by the trailer program is a form of XML.  Recommended encoding is UTF-8.
The following text is a shortened version of the file which is used to define the trail for Barcelona which is one of the four built in to the application:

<?xml version="1.0" encoding="utf-8"?>
<tw1>
    <tw1_plaintext description="Places of interest (mostly related to Gaudi and other architects and artists)." locality="Barcelona, Spain" mode="1" version="1">
        <zone address="PARC MONTJUÏC" name="MNAC">
            <coordinates latitude="41.3676819" longitude="2.1540772" radius_metres="250"/>
        </zone>
        <zone address="08038" name="Fundacio Joan Miro" url="http://fundaciomiro-bcn.org/">
            <coordinates latitude="41.3681130" longitude="2.1600900" radius_metres="250"/>
        </zone>
        <zone address="08038" name="Pavello Mies Van der Rohe">
            <coordinates latitude="41.3705850" longitude="2.1499300" radius_metres="250"/>
        </zone>
        <zone address="Provenca 261-265" name="Casa Mila" url="http://www.lapedrera.com">
            <coordinates latitude="41.3952913" longitude="2.1620618" radius_metres="250"/>
        </zone>
        <zone address="Pg Gracia" name="Casa Batllo">
            <coordinates latitude="41.3930617" longitude="2.1637884" radius_metres="250"/>
        </zone>
        <zone address="Portal de la Pau" message="Monument to Christopher Columbus" name="Mirador de Colon">
            <coordinates latitude="41.3761141" longitude="2.1777053" radius_metres="250"/>
        </zone>
        <zone address="C/ Montcada" name="Museu Picasso">
            <coordinates latitude="41.3851630" longitude="2.1807439" radius_metres="250"/>
        </zone>
        <zone address="C/ Joan d'Àustria" name="Parc de Ciutadella">
            <coordinates latitude="41.3957639" longitude="2.1879312" radius_metres="250"/>
        </zone>
        <zone address="Carrer Nou de la Rambla" name="Palau Guell">
            <coordinates latitude="41.3791929" longitude="2.1744567" radius_metres="250"/>
        </zone>
        <zone address="C/ Mallorca" name="La Sagrada Familia">
            <coordinates latitude="41.4033729" longitude="2.1739170" radius_metres="250"/>
        </zone>
        <zone address="Carrer d'Olot" name="Park Guell" url="http://www.barcelona-tourist-guide.com/en/gaudi/park-guell.html">
            <coordinates latitude="41.4134000" longitude="2.1530000" radius_metres="250"/>
        </zone>
        <zone address="Av Marquès de l Argentera" name="Barcelona Franca Station">
            <coordinates latitude="41.3844859" longitude="2.1850869" radius_metres="250"/>
        </zone>
        <zone address="08014" name="Barcelona Sants Bus Station">
            <coordinates latitude="41.3795172" longitude="2.1386865" radius_metres="250"/>
        </zone>
    </tw1_plaintext>
</tw1>

Wednesday, 17 October 2012

Updated example code for .tqz file generation posted back on Google Code

As I wrote in this post, I recently took down the source code repository for the Google Code project I created which contained example code for creating .tqz files for the Trailer iOS application without using the web application.  This was due to the original posted code relying on the Google Maps API, and the fact that with Apple's switch to use their own maps infrastructure in iOS6, the original code could no longer be claimed to fit in with Google's terms of service (which require users of this API to render the geocoded points on a map served from Google's infrastructure).

I have now modified the applications to use the geocoding API offered by www.cloudmade.com, and reset the Mercurial repository so that both the new implementation and all history including the prior implementation is available.  The Google Code project page is at http://code.google.com/p/tl-trailer-tqz-creation-scripts/.

The Cloudmade servers take about 5 or 10 times as long to return results as the Google ones did, and some of the addresses which Google was able to geocode accurately are being resolved by Cloudmade to less accurate coordinates (presumably associated with the surrounding district).  I'm looking into whether there are other alternatives which can either improve timing or accuracy performance.

Wednesday, 10 October 2012

Taking stock

Apologies for the gap since my last post, I needed to do some paperwork (mostly my family's tax returns for the year to June 2012), and then I had a short family holiday on Rottnest Island.

This blog and the two software applications associated with it have now been on public view for a bit over three months, so now is a good time for me to review how they're tracking relative to the my initial plan.  As the plan has, up until today, been pretty much in my head, I spent a little time today writing up a page under the rather grandiose title 'Project Charter' which is now present here.

Looking at the blog component of the project first, I am reasonably happy with how this is going.  The statistics provided through the Blogger service dashboard and through Google Analytics aren't particularly consistent, I'm guessing this is because I haven't integrated the analytics code snippets are integrated into the blog template correctly yet.  The Blogger dashboard shows larger figures for the readership and suggests that there are readers across ten countries so far, with a total of 321 page views over all time (of which all but 61 are from outside Australia and are therefore presumably not related to myself).  The page views over the last month are 180, of which only 11 are from Australia, so there appears to be a healthy pattern of audience growth (although there may be some web crawler robots included in this total).  While I am quietly happy with the level and trajectory of the readership, I have to report that I haven't had a single comment on any of the posts, nor have I received any feedback by private emails or via my Google+ profile.

In relation to the iOS application, to date only myself and a single personal friend have purchased it from the iOS App Store.  The offer I made in September to supply App Store redemption codes still stands, but to date no-one has contacted me to take advantage of it. I've taken a deliberate decision not to spam all my Facebook friends (nearly all in non-technical occupations) with an invitation to try the app out until I've established at least a small community of early adopters who I expect to be interested in the app from a software design point of view as well as a simple utility for use in daily life.  I'm very grateful to the one friend I have enrolled (carefully chosen because I know we share skills and interests).  I won't embarrass him by naming him, but his honest feedback has made it clear to me that I still have some way to go in getting my vision of what the app is for across to first time users who don't have the opportunity to talk directly to me about how I see it being used.

Although the low takeup of the iOS application (and hence near-zero revenue of the project when viewed as a business) are a mild concern, I am much more worried that the interest in the blog isn't yet flowing over to an exploration of the capabilities of the web application by users other than myself.  Of course there is a chicken-and-egg problem between the web and iOS apps, and the problems I am having getting my vision for the iOS app across probably undermine potential users motivation to try the web app out even though there is no cost.  I hope that by the end of the next three month period I have at least a few trails defined in the web application which I didn't create myself.  I suspect that one of the things which may be holding potential contributors back may be the requirement to log in using a Google account.  I plan to try to provide a means for users who are not logged in to create trails, although allowing this means that these trails won't have an owner and will presumably need to be open for any user to edit.  Another possible source of friction may be the fact that there are definitely still soem rough edges on the site from both a cosmetic and functional point of view.  As far as I am aware there are no reproducible errors in the app which cause loss of previously entered data (as opposed to failure to save new data entered on a single screen), but I obviously be doing what I can to smooth out the bumps (and maybe improve the look a little bit, although you can probably tell from this blog that I'm no visual design guru).

Anyway thanks for reading this, please come with me for the ride, and as always comments are very welcome.



Wednesday, 19 September 2012

Welcome page on web application updated

I've updated the welcome page which is presented as the default page for new visitors to the web application to try to make it clearer that the site is very much open for business.

Comments welcome.

Monday, 17 September 2012

Trailer web application now tested with a wider range of browsers

I have just uploaded a new version of the Trailer web application.

The new version has been tested on the following browsers:
  • Chrome, Firefox and Safari on OS/X
  • Mobile Safari and Chrome on iPad
  • Chrome Firefox and Internet Exporer 8 and 9 on Windows.
The application now seems to be working reasonably well across all of these browsers with the following known issues:
  • on Chrome on iPad, it is not possible to drag the marker for a zone on the zone details page (this does work on Mobile Safari, although finding the right touch spot to start the drag can be difficult); 
  • on some browser/OS combinations, the header and footer panels render out to an area which extends outside their reserved bounds, causing display of horizontal and/or vertical scrollbars; and
  • on IE8 on Windows, the intended background colours do not display.
Please let me know if you find non-cosmetic problems which are not on this list.

Google Code project containing Python scripts for generating TQZ files deprecated.

When the initial version of the Trailer iOS application came out in July, the companion web application at http://tl-trailer.appspot.com wasn't ready for use, and I released some command line scripts via Google Code to support generation of the .tqz files consumed by the iOS application.

The web application still isn't perfect, but it should be as good as or better than the scripting framework as a way of quickly setting up some .tqz files to use with the iOS app.

The scripting framework used Google's geocoding API, which is subject to terms of use including a requirement that geocoding information returned by it should be used for display of maps served by Google's infrastructure.  While iOS5 is current, this requirement is satisfied on the iOS device, because the maps displayed by the iOS device will be based on Google's services.  When iOS6 comes out in a few days, this requirement will no longer be satisfied, as the iOS6 mapping services will be serviced by infrastructure owned by Apple.  For this reason, I've deprecated use of the scripting framework for the time being, although I plan to reinstate it at some time in the future when I have time to integrate an alternate geocoding source.

If any developers are interested in having access to the scripting framework code before I get round to reinstating it, please get in contact directly via email or via a comment on this post so that I can give higher priority to the work required to bring it back online.

Wednesday, 5 September 2012

Get the iOS application for free

I've just worked out how to issue redemption codes which can be used to get the Trailer iOS app for free, and I'd like to spread a few around to get a bit feedback on how the app works.

If you'd like me to mail you a code (or more than one so that you can share with your friends), please go through the following steps:

  1. Visit http://tl-trailer.appspot.com, log in using a Google id and follow the steps on http://tl-trailer.blogspot.com.au/p/using-trailer-web-application.html to define a trail containing at least three or four landmarks you will be able to visit to test the app out.
  2. Send me an email with the URL of the trail you created, and the number of codes you would like, up to a maximum of five.  The email address for this is in near the right of the top line of the blog format (I don't want to repeat it in the text of blog posts as I am not sure whether this will result in this address starting to receive spam).  If you can't complete the trail creation process due to problems with the web app, please email me a bug report, this will do just as well as a completed trail.
  3. For at least the first ten responses I get, I'll email you back with the codes.  Whether I give people the full number they ask for will depend on demand.  If you ask for more than one code I may send a smaller number in the first instance and email again with extra ones when I can see that the first ones I sent have been used in the store and that someone has visited the zones in the trail.
The value of the app to its users will ultimately depend on the number of trails which get created and shared (either in the tl-trailer.appspot.com app or elsewhere), so I plan to continue to use redemption codes from time to time as a means of saying thank-you to people who contribute in this way.