Alex's Notes

Alex's Notes

Alex Reid  //  Software developer from Newcastle upon Tyne, UK. All of the dubious opinions stated here are purely my own and not those of my employer.

Jun 27 / 12:53pm

Next Metro, a bit of history ... and Android release

Almost two years ago, I had the idea for a mobile app that would let me know when the next Tyne and Wear Metro would be at my local stop. This meant I could decide whether to stroll to the station, or whether I needed to get a move on in order not to miss my train.

I hacked together an app for Android, as I was using a T-Mobile G1 at the time. It contained a simple database that I had manually entered from the timetables on the Metro web site. After using it daily for a few weeks, I realised that this was something that other people would find useful.I have long believed that the best solutions are those the author builds to make their own life easier, not primarily to make money or show off technical prowess.

After chatting with Paul and Jon at Never Odd or Even LLP, we decided to jointly take the idea to the Metro operator Nexus, with the view of being commissioned to produce an official Metro times app for the dominant mobile platforms. This proved to be a dead end, although they were supportive of the idea.

We didn't want to give up, but if the app wasn't going to official, we faced obstacles. Not just anyone can publish copyrighted timetable information in a mobile app. Although I'd like to think that my nifty Objective-C and Java code alone would be well worth the £1.79 asking price, I'm not stupid. It's all about the content and how you deliver it to the user. 

If I had finished the prototype app, we would have been selling content we did not own. TfL famously takes a hard line on any unofficial apps that use the Tube feeds without licence. Although the Metro operators are smaller, there is no reason why they wouldn't protect their IP. We did not want to waste time producing an app that would potentially get removed from the app store, or worse, face legal action.

The solution, discovered by Paul, was to licence the data from the Traveline NextBuses API which is used by many other mobile apps. Despite the name NextBuses, the system also contains Metro times. Next Metro, as it had become known, would need to be a client to this system, via an API, rather than timetable data being stored in the app.

The advantage to this approach was that we didn't need to maintain our own timetable database and have to enter bank holiday or engineering work deviations. The disadvantage was the app would be considerably slower as it would need to communicate with a server. One other drawback was that the API did not deliver live train data, just timetable information relative to the request time.The whereabouts of trains is not exposed anywhere outside of the Nexus system, so it was simply not possible for us to provide this.  If, however, this one day changes and the NextBuses API receives live train data - the app will show these, without modification. This has proven to be less of an issue than we first thought it would be as the Metro system does keep to timetable remarkably well. (Edit: Apart from the day after I posted this... people have been stealing live overhead cabling again ... 1500V DC ... braver men than I.)

We decided to first target the iPhone. This was absolutely the correct thing to do. Whether or not you like the iPhone or Apple, you would be hard pressed to argue that developers don't stand the best chance of making a small (or large) income on this platform. iPhone users buy the most apps and the App Store does an excellent job at promoting and delivering small developers' work to mass audiences, even if Next Metro was incredibly niche. You can't get more niche than a train times app for a slightly rickety, thirty-one year old regional train system somewhere to the North East of a small island.

The app did really well. It won an award. The income, even after royalties and costs, definitely exceeded my expectations. Not a notable fraction of a month's salary, but still nice enough. Not everyone saw the point - there was some inevitable critcism about the app not showing live train data and some thought it was pointless when you could download a PDF from the Nexus website. And we were charging for it! The cheek! Horses for courses. Better to delight the people who would find the app useful than to try and win over those who never will. 

When we released the iPhone version a year ago, Android users were by far the most vocal at requesting a version for their handsets. After politely ignoring them, about a month ago I decided to finally port the app to Android, largely as an experiment to see how the app would do commercially on what many believe to be the dominant mobile platform. Although I choose to use iOS and really like developing for it (I spend a lot of my day job in Xcode), developing for Android is great too. In many ways easier than iOS. I'm a techy at heart and don't really understand religious wars over technology. It's all good. Unless it's a touch screen BlackBerry.

So there you go. Thank you for reading this little ramble about the history of a small mobile app, which is now on two platforms. I can't wait to see how well the Android version does.

Next Metro

Next Metro for iPhone

Next Metro for Android

(download)

Filed under  //  android   development   iphone   nextmetro  
Apr 28 / 2:53am

Developers, eggs and baskets

I am currently handing over the system that I have worked on for the past three years. It is written in ColdFusion. 

I have noticed two things:

  • some developers are initially wary of something less familiar, while some are keen to embrace something new
  • an implicit assumption is made that you must be wedded to that platform you work in: "I am a .NET developer so you must be a ColdFusion developer."

In actual fact, I see myself as just being a developer.

Someone actually remarked that they were surprised that my new employer made use of ColdFusion. They don't, of course. Do developers get typecast? 

I develop in many different languages and frameworks. Java, mainly, but also C#, T-SQL, Python, Objective-C and Cocoa. Does this versatility make me a jack of all trades and a master of none? Some would say yes.

I just prefer to consider myself as someone who is not shackled to any particular platform. Us developers have transferrable skills which mature throughout our careers. Implementation languages and frameworks are only half of the story. I'm not saying that it is wrong to specialise and become expert in something. I am not saying it is wrong to specialise. I'm saying it's wrong to deny the existence of any other technology. 

I understand why management favour a unified and supported technology path. There's less risk. It makes sense. If you have a pool of .NET developers available, in theory they should be able to maintain each others code. 

It can, however, be a ball and chain, particularly in a mobile context. 

Successful companies and individuals will think outside their bubble and comfort zones.

It's simple economics. It makes sense to write software for the iPhone because it's huge at the moment. The tooling and documentation for the iPhone SDK are excellent.

Does this mean I'll burst into tears as Android's popularity continues to rise and the iPhone's popularity inevitably wanes and Apple go bankrupt (despite the billions) if we are to believe many of people I follow on Twitter? Will I have wasted my life in Xcode, typing square brackets? Not at all. I won't have called myself an iPhone developer. I'll still have been just a developer - developing for iPhone, Android, BlackBerry and ... whatever else.

Being a mobile developer in 2010 will be very different to being one in 2015, that's for sure.

Filed under  //  android   career   development   iphone   mobile   rant   software  
Feb 22 / 1:03am

Speaking at SuperMondays tonight about mobile development

Tonight I will be speaking at SuperMondays about mobile development, with a live coding demo showing the build of a simple app for #Android powered devices. I hope to keep a good part of the talk generic so it appeals to as many as possible. If you're going, I hope it proves useful. There's a fair bit to get through but feel free to comment/shout/agree/disagree at any point during the talk.

Update: Here are my slides.

Exciting times. I am collaborating on some shiny new mobile projects of all shapes and sizes, planned for release in the coming months.

Also, as of yesterday, there's a new North East mobile developers group - follow @appnorth on Twitter for more information. First meeting in March.

Filed under  //  android   iphone   mobile   supermondays