Sunday, March 18, 2012

Portland TriMet TransitTracker under patent troll attack

Oh great. A patent troll is going after TriMet's Transit Tracket system with a really broad patent on all vehicle tracking systems... I hope they don't drag me into it, or any other of the many apps!

Saturday, March 17, 2012

Starting work on the next release - anyone got any issues?

I'm starting work on the next release - this will mainly be a bug fix release - I'm looking at the crash reports from Apple.

Does anyone else have any information about crashes or problems that I could look into for the next release?

The crash logs are interesting - all the crashes on iOS 5.1 happen when the app is caching the arrival data.  On iOS 5.0 I see 4 different kinds of crashes,  mostly to do with alarms and user interface.  I see no crashes on any other OS versions - maybe no-one is using iOS4 any more? :-)

Monday, March 5, 2012

Why don't I write an Android version of PDX Bus?

This is one of the most common questions about PDX Bus,  and I have not really answered it.  So here goes!

Firstly - part of me really likes the idea of porting the app to Android.  Being an iPhone developer for a free app can be incredibly annoying:

  • I have to pay Apple $100 a year for the privilege of being able to put an app on a device.  (Yes the Civic App awards prize money covers that, but it i still annoying that actually I am the only one who has to pay to use PDX Bus!).
  • The app approval process is still slow and feels random.  You may get rejected as Apple may simply decide your app does something they don't like.  It can take anything from 2 days to 2 weeks to get approved.
  • Technically, the apps in the app store cannot be "free" by the definition of the GPL - apps cannot be shared or modified by their users.  Kids can't experiment with writing apps.  It feels like censorship. This is just annoying.
So why don't I just recompile it for Android.  :-)  Here this bit gets technical.  Basically I'll have to start again... (Skip this technical bit...).

  • PDX Bus is written entirely in Objective-C, Android apps are written in Java or recently C/C++.  You might think that this is a small difference...  Objective-C is quite different from these languages in syntax. The code looks really different, it would need completely re-writing.
    • The back end data retrieval code is tightly coupled to Objective-C frameworks.  For example, Apple provides an XML parser - this returns the tags and data in Objective-C associative arrays ("NSDictionary") from which you access the XML tagged data and place it into objective-C objects for use by the UI.  This'll need completely re-writing.   PDX Bus currently deals with 10 different XML schemas for the different data.
    • The GUI is written entirely with Apple frameworks (UIKit) and none of it can be re-used - Android GUIs have a completely different paradigm.  The GUI has been a lot more work than the back end.     Even the Google Maps API is completely different on the two platforms.
Summary:  Almost none of the PDX Bus code can be re-used as-is for Android.  Some of the design and flow could be re-used, but still, there would be a lot of re-coding.   I don't have the time for this!