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.
- 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.