End of an Era

After 11 years on the App store, 12 versions released, 5k downloads, countless Tweets made through it, my GAA Scoreboard app is no more.

I got a number of e-mails last week reporting it wasn’t working anymore and when I checked the Twitter Developer dashboard, there was a message saying that the Twitter app I’d set up had been suspended. The message simply said:

This App has violated Twitter Rules and policies. As a result, it can no longer be accessed. For assistance, submit a support ticket.

No details on what rule and/or policy had been violated so I had a look at how to submit a support ticket…and there doesn’t actually seem to be a way to do that (for free accounts at least).

My best guess is that the API it is using is no longer supported properly and I’d need to update to the v2 API. Given the small number of downloads the app has had over the last couple of years, I’ve decided to retire it rather than spend any more time on it. There’s a few alternatives out there anyway so I don’t think my app will be missed.

Still, it’s somewhat annoying there isn’t a way to sort this easily given it was adding value to Twitter. C’est la vie under the new management.

An Experiment In iOS App Pricing

I’ve a couple of paid apps and I am never really sure what to price them. On the one hand it’d be nice if I made anything from them but I also want people to actually use them. Last year, Michael Jurewitz wrote a series of fascinating posts on App Store Pricing. In particular the section on price elasticity stuck in my head.

My tax calculator app (unimaginatively called) TaxCalc.ie generally does best at two times of the year – in and around the budget announcements and in January (presumably as people are checking their first payslip).

On the run up to the 2014 Budget, I did a bigger than normal update to the app both modernising its internals and sprucing up the UI a bit. Based on the extra effort that was put in and keeping price elasticity in mind, I decided to increase the price on the 1st of October from 89c to €1.79 as a bit of an anti-sale.

For the period between the 1st of October 2013 and the 6th of January 2014 (€348.80 profit), I sold 320 copies compared to 315 the previous year (€151.20 profit). So not only did I sell more, I also more than doubled my profit.

I hadn’t really noticed this until I was doing my usual end of year comparisons at the start of January. As people seemed to be as willing to pay €1.79 as they were 89c, I decided to ratchet up the price to the next tier (€2.69) for the rest of January. The result was 72 sales compared to 101 in the same period of 2013. It may have been a 30% drop in downloads, but when you look at the proceeds, the app still generated more than twice amount at €118.08 as opposed to €54.54. I’d call that a successful experiment.

Will I increase the price again? Possibly for a week later in the year, but probably not. My gut feeling is that another price increase would would further drop download numbers to the point where it would make less money. More likely, I’ll either release the 2015 calculator as a standalone app or offer an update as an in-app purchase.

The tax calculator is a very niche app and and it’s really only providing me with beer money. Still, it was well worth tweaking the price to squeeze that little bit extra out of it to make the time spent developing it actually worth something.

tl;dr Increased the price of TaxCalc.ie from 89c to €1.79 and finally to €2.69 resulting in 2x profits while more or less maintaining the number downloads.

Your Broadsheet.ie Android app has arrived

Screenshot_2013-06-09-12-23-01

Finally, more than two and a half years after my iOS version was released I’ve built an Android app for Broadsheet.ie and it’s available now on the Google Play store.

The app doesn’t quite have feature parity with the iOS version but is close enough that it warrants release (especially considering the clamouring for it from the readers). I will be actively developing it over the summer in step with some updates to the iOS app.

The Android fragmentation issue means I’ve not been able to test it on all platforms, but I’ve made an effort to ensure it works on the top 10 devices that access the website. Hopefully the app won’t look too bad outside of these.

Think you can do better?

As with the iOS version of the app, the code is available on GitHub under the MIT license. I do this not in the hope that someone will come along and fix bugs or improve it but in case someone else finds it useful and wants to use it.

I would, of course, be delighted if someone actually did create a pull request…

And now over to you

The Android using section of our readers have been very vocal about wanting an app. When presented with evidence of lower engagement on the site from Android the lack of an app has been blamed (an opinion which I don’t subscribe too – it seems more like Android users don’t really use their devices compared to iOS).

The only way developers are going to take Android seriously is if people actually use their phones and download apps. So grab the app today and make this developer a happy man!

Broadsheet.ie iPhone App 2.0

For the last few months I’ve been picking away at a new Broadsheet app for the iPhone.  It’s finally been released to world so it’s time to talk about it and some of the changes.

Raison D’être

The original version of the app was released in January 2011 and bar some minor bug fixes released in March 2011, it has gotten little attention since then.  While the app has been well received, there’s various bugs with commenting, sharing, post rendering and loading new posts.

The app also looks very tired and old compared to its peers so a bit of a more modern look wouldn’t go astray never mind the fact that none of the image assets were updated for retina displays.

What’s New

IMG_1714

IMG_1715

IMG_1719Straight off, for those on an iPhone 5, the app is no longer letterboxed.

There’s a new layout which disposes of the need for a tab bar by moving the information and tip tabs into the nav bar and eliminating of the gallery and video tabs.  The purpose gallery tab has disappeared as Broadsheet now posts galleries as images inline rather than using a javascript gallery.

The post archive is now searchable via a search bar which is hidden at the top of the post list.  While the search is powered by the not-great standard WordPress search, it does open up more content to the user.

Down on the bottom right there’s a fullscreen button.  This hides the status and navigation bars giving you an extra 64 pixels of space to gaze lovingly on the content.  When in fullscreen mode, there’s a little back arrow at the bottom left to help you navigate between screens.

Tapping an image in a post now brings you to that image in a gallery of all images associated with the post.  You can now easily zoom the image and swipe between the other images associated with the post.

IMG_1718IMG_1717

There’s no need to return to the post list screen to navigate between posts.  Dragging the screen down will load the next post while dragging up will load the previous.  This turns into an infinite scroll for posts as long as there are more posts to view.  The post list screen will also be updated with the extra posts.

The comment view is now threaded as well as rendering people’s avatars (which are generated from Gravatar) properly. Now all we have to do is get people to sign up for their own avatar.  Comments can also be replied to directly as well as creating new posts.

Touch me

A big change from the original app is the use of gestures through out for navigation.  Swiping left and right brings you between the post list, a post and the post comments.  This allows for quick and easy navigation.

Swiping left on a comment allows you to reply directly to it, providing a secondary access method to the reply button.

IMG_1710 IMG_1711
On a post screen, the available controls are revealed with a long touch, putting the buttons just above your finger tip. These allow you to view comments, make a comment and share the post.

A Bit of Help

IMG_1713

Gestures and hidden navigation is all well and good but it can be hard for users to discover.  This is easily solved with a couple of help screens which appear the first time you hit the post screen or go full screen.  These very quickly show you what you can do using some great gesture icons from Mobile Tuxedo.

Down The Line

There has been a consistent call for an iPad version of the app.  I have started on making the app universal (i.e. works on both iPhone and iPad from the same download) but for the initial release I decided that getting the iPhone version right was more important.  Hopefully I’ll complete the iPad changes over the next few months and release that as an update.

Other Platforms

An Android and Windows Mobile version of the app are in development and should be released soon.

You can download the app from the Apple App Store and if you have the previous app already installed you should be able to update.

GAA Scoreboard from DubMatchTracker

After a ridiculously long gestation, the latest app I’ve developed is available on the Apple App Store – GAA Scoreboard from DubMatchTracker.  As the name suggests, this app lets you track the score of a GAA match and tweet the current score.

Way back at the end of May 2011, a GAA obsessed friend of mine Ronan Gahan (one of the guys behind DubMatchTracker) approached me about developing an iPhone app so he could quickly tweet out the score of match. After a couple of to-ing and fro-ing emails, I told him it wouldn’t take long and I’d have time in a few weeks.

Roll on 6 months later and I finally had some time and threw together a prototype. Ronan and the DubMatchTracker lads field tested this over a couple of weekends. David Whelan in particular was a monster of a tester for us.

The first prototype

The first version started the user off in landscape mode and had tapable scoreboards. While I thought this was a great idea, no one realised the scoreboards were tapable. Using the app in portrait mode required two hands which proved awkward, especially in cold weather.

The final product

Armed with the feedback (and a request to use the Dublin colours), I rejigged it to work in portrait mode.   The tapable scoreboard was ditched and replaced with a simple LED font.  A few more weekend test runs shook out all the inevitable bugs and it was finally ready for the App Store.

One of the interesting parts of this app for me is that I’ve included the Heatma.ps library to track user interaction with the scoreboard screen.  The library was trival to add and gave back results pretty much instantly.

Heatmap of the scoreboard

At the moment, the preview button is getting a lot more love that the quick tweet but that’s because of working around issues during the field test.

I’d love to hear any feedback and comments people have about the app.

Another Six Months of iPhone App Stats

It’s been six months since my last post on download stats for my apps, so it’s time for an update. Again, this is as much to have the stats somewhere for when I want them as talking about them. The following are the downloads and updates from the 4th of July 2011 to the 1st of January 2012 with some commentary on the apps.

TaxCalc.ie
Downloads: 713 (up 19 on previous 26 weeks)
Updates: 2,424 (3 updates released)
I’ve already posted about the performance of the app in and around budget week. Apart from that week, it trundles along with a few downloads every day. I’m expecting a slight uptick in downloads for January since people will want to check their pay slips. The app still has an edge over its paid competitors as it is the only one that handles the 2012 tax year.

Broadsheet.ie
Downloads: 5,014 (up 684 on previous 26 weeks)
Updates: 90 (no updates released)
This app has been holding its own with it being my most downloaded app pretty much every day (only beaten once by Taxcalc.ie and once by Pint of Plain). There’s been a few surges in popularity, for example when adverts were first introduced to the desktop site and another over Christmas when people got iPhones as presents. Its popularity though is all down to the content rather than it being a particular good app.

It does need a refresh and a couple of bug fixes, but finding the time to do them and test it properly is problematic. Maybe I’ll get a chance to breath this year and get around to it.

Pint of Plain
Downloads: 1,928 (down 661 on previous 26 weeks)
Updates: 1,975 (1 update released)
The main reason for the single update made to the app in the last 6 months was to switch from just serving ads from iAd to using the MoPub service. It’s not worked out great for me as I just don’t serve the volume of ads needed to make anything from them. The ads are a bit annoying so I may just take them out again completely.

Like Broadsheet, the app saw a noticeable jump in downloads on Christmas Day and St. Stephen’s Day.

Visionary.ie
Downloads: 571 (down 719 on previous 26 weeks)
Updates: 29 (no updates released)
This app really doesn’t get the love it deserves. However, it’s still getting a bit of interest with a handful of downloads each day. You can always tell when Darren’s just done a wedding as there’s a small spike in the downloads. With a relaunch of the website planned soon, there will probably be a refresh of the app to match.

My main disappointment with the app though is that no one has actually used it to buy a print. Whether this is a problem with how the purchase system works or just that people rather ringing up and talking directly to Darren about them I don’t really know. Still, I do really like how the frame selection works.

I didn’t get to release anything new in the last six months, but I have a couple of ideas percolating that might actually see the light of day soon. It’d be nice to talk about something other than the same four apps.

Apple released their auto-injest tool over the summer and since the 1st of September, I’ve been recording the app download stats locally. This will make posts like this a bit easier since my tool scrapes both of my accounts and presents the lot at once.

Budget Week and TaxCalc.ie

With the budget (well, the half I was interested in) being announced last Tuesday, this was the big week for TaxCalc.ie – both the site and the app.  It is the natural time for people to be interested in their tax affairs (the other is in the New Year when people actually see the changes to their pay packets).

The Budget

The budget itself contained no surprises, especially after the Taoiseach’s speech on Sunday night.  Considering the various stories circulating of a possible 3rd rate of tax or more USC bands it was a very easy budget in terms of code changes needed in my app.  The tweak to USC does seem badly thought out to me since someone on €10,035 pays nothing but another person on €10,036 ends up paying €200.72 in USC.  Hopefully someone in the Department of Finance will see sense and have the 2% USC rate eliminated altogether.

The App

I was a bit more prepared this year and created an update which posted user’s details to an endpoint on the TaxCalc site and returned the resulting breakdown as a lump of JSON.  This way I wouldn’t have the usual bad reviews because the apps wasn’t updated instantly.  Apple even approved my request for an expedited review for the update since the budget was so close and the update was available from the Sunday before the budget.  There were 390 downloads of the updated app by the end of budget day.

I was rather pleased with the number of new purchases of the app.  It reached a high of #8 in the top 25 paid apps on Tuesday before falling out of the top 25 on Thursday evening.  This was all based on 56 sales on Tuesday and rapidly dropping off to 7 on Friday.  The app is now back to selling between 2 and 6  units a day, which is still enough to get it to #1 Finance app in the Irish app store.

The Site

The site didn’t do as well as last year.  Apart from some tweets I made myself, the only place it got a mention was Broadsheet.ie which gave a boost on Budget day.  Traffic collapsed on Wednesday to the normal trickle.  This is very different to last year, where mentions on Boards.ie and TheJournal.ie meant that traffic was maintained for a couple of days after the budget.

The Competition

The only real competing app for this years budget was a free one from PricewaterhouseCoopers which got heavy advertising in the Irish Times and made it into the top 25 free apps.  This was a rather poor app that really should have sunk without a trace.  The first version had the bottom button partially off the screen.  My guess is that it was not supposed to have the status bar at the top and so the screen is 20px too big.  Then when the calculator is actually used the summary screen shows 0 for all values and you need to ‘View Details’ to see anything.  Even then, the view details screen doesn’t fit and you need to scroll sideways to see everything.  All in all, a very amateurish effort from one of the big accounting companies.

The other two apps – Irish Tax Calculator and the Irish Taxation Institute – haven’t been updated yet and I suspect the former has been abandoned by its developer.

Lessons Learned

Next year, I really should make more of an effort to get the app and site mentioned again on the likes of Boards.ie on the run up to and during the budget.  The site traffic to the site was certainly affected and the SEO tweaks I’ve been doing didn’t make up the numbers.

Having the endpoint ready to go well before the budget meant that I could roll out changes announced very quickly.  I could also take a bit more time with an update and run more tests.  Next year I should aim to have a version ready for developer release well before the actual budget so I’m not rushing to get everything changed at once.  Most of this year’s work should help that along.

Overall I’m happy enough but I think I can do better next year.  I’ll definitely be better prepared.

A Sunday afternoon project: Providing App Store stats via JSON

Last month Apple announced their auto-ingest tool for fetching the download and update statistics for apps.  The tool downloads the stats for a particular day or week as a gzipped CSV file that you can then process yourself.  This is far nicer than having to try and scrape the numbers from the iTunes Connect page although the daily numbers are still restricted by a two week limit and the weekly by 13 weeks.  Hopefully in the future you’ll be able to retrieve further into the past (assuming the data still exists).

I’d a bit of free time this weekend and decided to have a poke at this and see if I could  grab the data and present it in a easily consumed format (i.e. JSON).  Another reason for looking at this is because I have two iPhone Developer accounts and it’s be nice to see the data from both as one graph rather than having to log in and out.

To that end I wrote a couple of lumps of PHP to ingest and process the stats which is available on GitHub (https://github.com/kmonaghan/itunes-connect-auto-ingest).  There’s a couple of small steps to get it all to work.

First, create a database (or just use an existing one) and create the table in schema.sql.

Next, edit boot.php.  Here, you need to put in your database details and the details for each iTunes Connect account you have.  To do this you need to put in an array with the following key pairs:

array('username' => 'iTunes Connect username',
'password' => 'iTunes Connect password',
'vndnumber' => 'VND number',
),

The username and password are the details you use to log into iTunes Connect.  You’ll find the VND number if you log into iTunes Connect and go into ‘Sales and Trends’.  It’s the number beside your name at the top left of the screen.

Update: From the comments, this is how you find the Vendor ID (VND):

Choose Sales and Reports.

Choose “Reports” from the top left menu (Where default is “Top Content”).
From the form that will be shown, choose monthly report and download.
The downloaded file will be of format S_M_(VendorID)_TIMEPERIOD.TXT

You can have as many of these accounts as you want and the ingest script will check each one.

Now all the details have been set up, you can ingest the data from Apple.  This is done by simply running ingest.php.   If it’s the first time the script has been run, it will look back 14 days.  Otherwise, it will look in the database for the last successful day there was an import and attempt to import all days since then.  After your first import, you should create a cronjob to run this script once a day to capture the latest stats.  If the downloaded tar files are 0 bytes, check your login details and VND number.

Once all the data is in the db, we can view it via daily.php which outputs the results as JSON.  This will by default output the total number of units downloaded for all apps in the last month.  It can take four parameters:

  • apple_identifier: A particular app identifier.
  • product_type_identifier: This can be 1 (default) which is downloads or 7 which is updates.
  • from: The date to get the stats from.  Expected as dd/mm/yyyy.  Defaults to 32 days ago.
  • to: The date to get the stats to.  Expected as dd/mm/yyyy.  Defaults to yesterday.

And that’s that!  There’s some Javascript in stats.html which consumes the JSON and uses the Google Chart Tools to display the results.  An example of some live data using my own apps is available here.

This is very much a works-for-me lump of code, so it may not do exactly what you want but it should be easily extendable to provide exactly what you want.  It will certainly not cover every error condition.  I’ll probably add bits and pieces to this as I think of a stat I want to visualise or I come across a bug unexpected feature.

Something I might consider looking at in the future is writing a clone of the iTC Mobile app that utilises the saved data.  It’d be a nice little project to try out Core Plot.

Half a year of App Store stats

As we enter the second half of the year, it’s as good a time as any to look back at how my apps have been doing in the Apple App Store.

These numbers cover from the 3rd of January to the 3rd of July, 2011.  As I’m a fool, I hadn’t downloaded the stats for the months prior to this, so this post is a record for myself as much as anything else.

Pint of Plain

Downloads: 2,589 (down 1,709 on the previous 26 weeks)
Updates: 4,979
Pint of Plain was my first app and after 18 months on the App Store.  At the start of this year, I released a major update which was essentially a complete rewrite.  One of the changes I made was to include iAds.  It’s not been a huge success for me, with revenue of $4.92 for the last six months.  I’ve not seen a live iAd myself yet so I’m assuming part of the problem is a low fill rate.

The app has a pretty poor rating but I’ve never been sure how much of an impact this has had.  If I do another version, I may abandon the current version in the App Store and essentially relaunch with a rebranded app.

TaxCalc.ie

Downloads: 694 (up 417 on the previous 26 weeks)
Updates: 28

TaxCalc.ie is my only paid app.  I was originally selling it at the €1.59 price point, but over Christmas I decided to experiment with dropping the price to 79 cents.  Sales increased by a little more than double which meant I was making a tiny bit more than I was at the old price.

The app is regularly #1 in the Irish Finance apps but this doesn’t translate into huge numbers of downloads.  It has rarely had more than 10 downloads in any one day and there have been times it has taken the top spot on the back of three or four downloads.  Still, I don’t look a gift horse in the mouth and I get a little thrill when I see the app icon used for Finance in the category listings.

The low number of updates isn’t surprising since there hasn’t been an update since early December.

Broadsheet.ie

Downloads: 4,330
Updates: 3,045

Broadsheet.ie was the first of two apps I’ve released this year.  It’s based on the first version of TTWordPress (which I originally wrote for the Visionary.ie app).  Of all the apps it certainly gets the most usage and there is a constant stream of reviews and suggestions.  The app certainly wouldn’t be such a success without the content coming from the website since it is rather basic.

Visionary.ie

Downloads: 1,290
Updates: 320

Visionary.ie is the other app I’ve released this year.  Considering it’s a very niche market (i.e. mostly clients of Darren) I’m very pleased how well the app has done.  There was a huge surge of downloads initially as the app was mentioned in a photography newsletter.  Since then it’s slowed to a trickle but that was fully expected.

Of the four apps, I track usage in three of them via Flurry (TaxCalc.ie being the odd one out as I don’t want people to think I’m sending any of their tax information outside of the app).  The most interesting piece  of information for me is the percentage of users with iOS 4 and the percentage using an iPhone 3G.  Between 66% (for Broadsheet.ie) and 78% (for the other two) of users have a device running iOS 4 and less than 3% still have a 3G.  Considering that there’s been just under 7000 users of the three apps (with very little cross over between them) that gives about 210 3G to 5460 on iPhone 4, iPhone 3Gs and iPad users.  This makes me think it’s getting to the stage where dropping iOS 3 support is not going to hugely impact on downloads.

Overall I’m happy enough with how my apps are doing, especially considering how little I directly promote them.

Pint of Plain V2.0

Last week, the V2.0 of my Pint of Plain app was approved for sale on the Apple App Store.  It’s a major update of the app, with most of the code base completely rewritten.  I think this version is a vast improvement on V1.2 and I’m planning a few more updates once I get some free time again.

What’s been interesting (for me anyway) to see over the last week is the number of people that download the update.  From what I’ve seen from previous updates, the bulk of users will update in the first week and then a trickle after that (in a classic long tail style graph).  Since it was approved, there’s been 1,144 downloads.  This compares to about 10,000 total downloads since the app was released in December ’09.

It’s a useful app to test out various libraries I come across so I decided I’d mention the ones I used this time around.

Three20

The core functionality of the app uses the fabulous (if a little delicate) Three20 library.  Using the table classes and JSON library meant I could quickly rebuild the primary screens of the app.  The crowning glory though is the photo gallery.  It’s pretty straight forward to add a slick gallery once the images have been pulled from the API.

I have been frustrated though that when a new version of Xcode is released, the library needs tweaking before it works again.  There’s been promises to improve this in future releases, so fingers crossed there.

The lack of documentation is a hinderance as well.  This is mitigated by the fact that most of the methods are well named.  Still, when you’re not sure where you should be even looking, it can be annoying.

Appirater

Appirater is a great little library for quickly adding an alert reminding people to rate the app.   I’m not hugely convinced that a good rating boosts downloads all that much, but since this is so simple to use it’d be a shame not to add it.

InAppSettingsKit

In this version of Pint of Plain, there’s a few more settings the user can tweak.  I doubt many people ever look at the various settings you can change in the Settings App so I wanted to offer an in app alternate.  InAppSettingsKit does all the heavy lifting for you and like Appirator, so easy to include it was a no brainer.

MapKitDragAndDrop

In the old version of the app, a bar’s location was simply determined by using the GPS and only used if the accuracy was under 50m.  This was never a great solution and I wanted to give the user the option of dropping a pin the right location.  While search for how to do the drag and drop, I came across MapKitDragAndDrop which did everything I needed.

Glyphish

Not a code library but rather a set of icons, Glyphish is a great resource.  There’s an icon for nearly every tab you need and they’re all beautifully crafted.

I think the fact that there’s so many libraries and resources out there now shows how iOS has matured as a platform.  Every time I go to find out how to do something I’ve seen in another app, there’s a library for it.  It certainly makes development much easier than when I first looked at it all over 2 years ago.