Category Archives: Development

RELEASE – RSS Alarm 1.2.0

Hi everybody, long time no see!

The good news is that my time at University is quickly drawing to a close. The even better news is that this means I can get back to working on RSS Alarm. With that, I present version 1.2.0.

The first thing you’ll probably notice is that it looks different. I’ve given the interface a cleaner, brighter look with a larger contrast between the background and the text. Those running Android 4 will also notice a few more subtle differences, as the native Action Bar and Holo UI elements are now used. Users on Android 2.2 and 2.3 will still have the old navigation style.

There’s also a few tweaks and bug fixes. The method of queueing up alarms has also been reworked to improve reliability. Now that’s out the way with, I can finally take a look at the to-do list and start adding some more features! Watch this space.

This update is currently live for the paid version only. I’ll update the free version when time allows. As ever, you can get RSS Alarm from the Google Play Store for only 99p!

RSS Alarm v1.1.0 – A change cometh

RSS Alarm has been out for over a month now, and it’s still surprising how positive a reaction it’s received in the media and from its users. While I’ll readily admit it’s not sold a ground-breaking amount of copies, it’s still sold a lot better than I expected and it’s paid for my web hosting this month.

So what next? How do I drum up some more publicity for RSS Alarm now the initial media coverage has faded away? A very difficult question for a team of developers, let alone a one-man operation. The clue to this answer is that this is version 1.1.0 of RSS Alarm, not v1.0.5. This is a major change.

Continue reading

RSS Alarm v1.0.3 – The mini feature update

Hooray! It’s the first non-bugfix update! RSS Alarm v1.0.3 will be on the marketplace shortly, and it brings:

  • The ability to specify the amount of time between RSS Feed updates. (Main screen > MENU button > Settings)
  • Alarm will be dismissed when moving away from the alarm screen (e.g. pressing the back or home key)
  • All indexed podcasts will now be displayed on the Feeds screen, below the list of RSS Feeds.
  • Did I mention RSS Alarm is now on Google+ and Twitter?

The update will automatically download to your phone shortly (provided you’ve allowed automatic updating), and if you don’t have RSS Alarm yet, you can buy it here.

RELEASE: RSS Alarm v1.0.2

Ice Cream SandwichMy new phone arrived today! Though it’s not all sunshine and butterflies when you realise that RSS Alarm has a couple of major bugs specific to Android’s latest release. As such, there’s a new version out to fix these Ice Cream Sandwich-specific problems:

– Fixed bug that prevented users from importing their feeds from Google Reader
– Fix bug that prevented the Text-to-Speech engine from reading out RSS feeds.

As you can see, those were problems that warranted an immediate fix, so here you go. Updates will be arriving to your phones within the hour.

RSS Alarm in the media

It’s been just over a week since RSS Alarm launched, and what a week it’s been! On top of better-than-expected sales, it’s been mentioned in 2 online publications so far! This is what Android UK News ETC had to say:

I’ve downloaded the app and it looks great  and is easy to set up and use, I love the night clock mode.

 RSS Alarm also had an honourable mention in Thursday’s Guardian App Blog:

Clock widgets are ten-a-penny on Android, but RSS Alarm has a neat twist: it wakes you up by reading your RSS feeds, including podcasts. It works with Google Reader, Google Listen and other podcatcher services, and uses Android’s text-to-speech engine.

This has been absolutely brilliant, and I’m very pleased to see that the initial reactions are very positive. A huge thank you to everyone who has bought the app so far, and if you’ve enjoyed using RSS Alarm then please pass your recommendations to your friends and family.

If you don’t have RSS Alarm yet and want to grab it from the market, then you can grab it here!

RSS Alarm Feature graphic

RELEASE: RSS Alarm v1.0.1

RSS Alarm Feature graphic

Today’s been a very good day. Following several months of work and a number of UI redesigns, I’ve finally signed off RSS Alarm and uploaded it to the Android Marketplace. Given how hard I’ve worked on this project in my spare time and how much time I’ve put into it, it’s both relieving and very satisfying to finally see it up on the marketplace (and already attaining a five star rating!). So here’s a brief rundown and a few thoughts:

What is RSS Alarm?

In short, it’s an alarm clock with the ability to read RSS feeds aloud. In reality it does a few more things on top of that. It can also use any podcasts present on the phone, including podcasts downloaded by Google Reader. It can even use the standard alarm tones if you just fancy using it as a replacement to the built-in alarm clock.

How does it work?

The application works largely thanks to Android’s Text-To-Speech functionality. Text is fed in (parsed from the RSS feeds), which is then read out by the phone in what can only be described as a sexy female version of Stephen Hawking. Android’s built-in TTS engine certainly isn’t Siri, but it’s certainly decent enough.

The feeds themselves are managed directly by RSS Alarm and are automatically refreshed every 15 minutes. I plan to allow users to change this interval in a later version, but for now that should be enough without eating up too much data.

The alarms are pretty much what you’d expect of any alarm clock app. Alarms can be set for any minute of the day, for any day of the week. Alarms can be set as one-offs, or can repeat for certain days of the week.

Other features

There’s a few other neat things that RSS Alarm does, without going into too much tedious detail. Firstly is the importing of RSS feeds from your Google Reader account (which can be accessed from Feeds > Menu > Import).  Just enter your Google Reader username and password, and RSS Alarm will automatically start importing all of your feeds from Google Reader. Simple.

Then there’s the podcast import. RSS Alarm will automatically scan your storage space for any Podcasts, from both Google Listen and your phone’s /Podcast directory. And if you do use a podcast as your alarm tone and hit the snooze button, RSS Alarm will continue playing the podcast from that point ten minutes later.

Finally, there’s the night clock. A soothing way to glance at the time when you’re trying to sleep, this was one of the best-appreciated features of RSS Alarm amongst our Beta testers. Providing the perfect amount of lighting, this feature allows your phone to sit on your bedside table as a true alarm clock replacement.

Oh, and it’s also available in Traditional and Simplified Chinese thanks to the translation skills of my amazing Fiancé. <3

What’s next?

That entirely depends on how much time my University course eats up. Final year BSc Computer Science is very time consuming! I do have some ideas in mind, particularly customisation features, so if I do get to implement those ideas I’ll post them on this blog. Likewise, any future changes to RSS Alarm will be documented on this blog on release.

As mentioned before, it’s up on the Android Marketplace right now for only 99p/$1.59! Give it a try!

Thanks for reading, and enjoy the app!


v1.0.1 – Minor bugfix. Solved issue where “Language not found” dialog would appear on feed screen, despite the user’s language being supported by the text-to-speech engine.

v1.0.0 – Initial release. 

Speed Development, or how I learned to love the App (Part 2)

For anyone visiting this entry directly, the first part of this article can be found here, and the final app can be downloaded here.


All in all, not really that much to do once I had done a bit of planning, making it the easiest part of the app development process. The app consisted of two activities – of which one was a menu with only three buttons – and a class to parse the rules of a game. By having a rule parser instead of hard-coding the rules into the generator activity, the app can be expanded in the future to pick numbers for more international lotteries e.g. the Irish lottery. Continue reading

Speed Development, or how I learned to love the App (Part 1)

(The finished app can be purchased on the Android Marketplace)

Let me set the scene first: It’s mid-evening, I’m in my home office working on my next major app but nothing seems to be clicking. I’m trying to get a fairly simple feature to work, but it’s not. Even the logs and debugging list isn’t giving me much of a clue. The heat of two computers, a laptop and a server in a small-ish room compounds my frustrations further.

Then I give up. I close Eclipse and play some Team Fortress 2 to unwind.

Sometimes when I’m coding something that takes a lot of my time, something that seems like it’s going to take forever for a one-man effort, it’s disheartening. It happened with My Shopper, an app I spent months pouring my efforts into, but ultimately didn’t sell well. I’ve got high hopes for this current project, but it still feels like it’s too easy to get completely lost. At times like those you just want to do something different, start fresh.

So that’s what I did.

Inspired by the second episode of this year’s Apprentice and fuelled by tea, I decided to set myself a challenge – come up with an idea for an application and bring it to the Android Marketplace by the morning.

The Idea

As it was 11pm, and I effectively had up to 9 hours to get this app complete, I had to think of an idea that was small but practical and whose scope was unlikely to spiral out of control. I also had to find an idea that, while not completely unique, was not likely to be crowded out by an established or superior app. Something that was likely to be used in a real-life situation.

After jotting down some ideas and comparing those ideas to existing apps on the marketplace, I opted to make a Lottery Number generator. The structure of the program would be simple – a random number generator picking numbers within the rules of each game. The rules of the chosen game would then be fed into the generator, meaning the app could be expanded for other non-UK lotteries in the future.

The simplicity of the program structure meant I could make a bare-bones demo of the app within a couple of hours, getting the functionality done and frozen before giving serious thought to the look and feel.

The Realisation

At this point I had a realisation, one of the reasons I was becoming bogged down in my major project – I had spent too much time on the User Interface, how the app was going to look, but not to the features and how it was going to work. What I thought were simple features were spiralling. I was having a hard time keeping these new features under control because I didn’t have a map of what features were required, and ultimately didn’t know how to implement them. Essentially, without the map, I was lost.

Whether it was the coding or the coffee, things were starting to look a lot clearer both in this challenge, and my coding techniques.

My name is JSON, Part 1

So here it is, my first post. And while I may have been slightly distracted by the rise of our robotic overlords, it didn’t take me that long to think of a starter for 10. As a mobile and web developer there are always certain things that may not seem important at first, but start to take a greater importance when you realise just how useful it can be, even for mundane things like encapsulating data for easy transfer.

So I’m beginning with Javascript Object Notation, or JSON for short. JSON is one of the most widely-used methods of holding data in a structured format, XML being its main rival. This was a topic originally thrust onto me during a University project in 2010, and while seeming daunting at the time turned out to be fairly straightforward. Before I explain how this data can be handled in PHP and Java, let’s take a look at some JSON-encoded data.

So what does JSON look like? Something like this:

    "forename" : "Michael",
    "surname" : "Dodd",
    "age" : 23,
    "breaks" : [34, 66, 12, 35, 22, 73, 94, 147],
    "match" : {
        "frames_won" : 5,
        "frames_lost" : 3

This example is my performance in a snooker match (I wish!). Similar to PHP, this data structure can be seen as an array with named keys. Each key can contain:

  • A simple value such as a string or integer.
  • An array of simple values, denoted by square brackets [ ].
  • A child JSON object, denoted by curly braces { }.

With the ability to structure data in such a fashion, it is easy to map the data in a JSON object to the data structure in your application. One point to note when creating these structures, however, is to make sure that the final entry in each object does not have a comma at the end of it as this may cause problems with some parsers.

In the next few posts, I will explain how JSON data can be used with PHP and Java (with an Android flavour), but for now check out some of the many potential uses of JSON data with the Guardian Open Platform API.