schoolboy error

What a dumbarse.

I gave a button onclick listener the wrong scope (a downside of flicking between Java and Kotlin), everything worked fine in test. but then minify removed it in release, changing the button from ‘please contribute’ to ‘please crash immediately’ (with incoherent error message).

WHAT a first impression!

I found it immediately when the play store finally deigned to run the pre-release reports. Time to improve my testing process…


GDPR killed Google Play Console

Since that GDPR last week Google play console has been largely unusable. Especially pre-launch reports.

Which is bad cos I have a problem with a prod version, the stack traces are useless and I can’t get a moment on the pre-launch testing to try and narrow down my search


Looks like exactly as my worst fears, my tiny changes to bin ads has had some freako knockon effect somewhere and now my crashes in prod are creeping up. I can’t replicate the issue. Bugger.

Please can we have pre-launch reports back?

Hmmm Play Console seems busy tonight

Perhaps I am not the only one rushing last minute to cope with the GDPR shafting Google has most generously provided us with.

For now I have replaced my banner ads with a textbox asking users to consider upgrading to remove ads.

I have been caught on the hop as I am right in the middle of some super delicate surgery to another app, which I was wanting to get thoroughly tested before I forget what I was doing. Anyway I got tangled up and had to drop it for now whilst I sort this GDPR bobbins out.

I can’t see any sign of pre-release reports so I have just pushed my changes directly to live. Lets hope ripping the ads out hasn’t inadvertently¬† broken something important. (apart from my income of course).

I think I will give it a week or two and see if the new please upgrade panel can replace my ad revenue. If so I’ll sack adMob off completely I think. If not I will have to bite the bullet and implement the consent pap. No harm letting a few other devs beta test it though is there?

The joys of appreneurship eh?

GDPR killed my fledgling App business

Ads are shit. Creepy, tracking, personalised ads are even shitter, and creepy.

People like to use app functionality much more than they like paying cash money to use app functionality.

Apps take time and effort to develop, and most are developed with some sort of ‘profit motive’. Less chance of profits may well lead to less apps, or less effort invested in apps.

To go from a simple ‘personal use’ app with just the basic required functionality to fully polished ready for worldwide release quality takes about 10 times more effort than implementing that basic functionality.

I personally don’t collect any information, I don’t even have crashlytics or any other usage/failure reporting (just the Google play crash reporting). The only info is what the creepy ad tracker gathers, of which they share fuck all with me, neither data nor how they gather or process it.

The GDPR says if the ads provider collects any identifying info the user must give explicit consent. Google say the devs have to do that for their AdMob product. Even though we don’t know what they collect or how they use it.

There are a few tried and tested approaches to software monetisation. (Trial software – from the olden days)

  • Buy up front – yeah right…
  • time limited trial (Adobe offer a ‘generous’ 7 day trial of photoshop)
  • feature limited trial (crippleware)
  • free and complete but with ‘buy now’ hints (nagware)
  • free and complete but with random (creepy, generally it seems) ads
  • freemium – pay for more features or to bin the ads.

Ads are shit, I think I mentioned that. I see about 0.1% ctr – that means one ad per thousand gets clicked (and I get paid). That means 999 people were shown an advert they weren’t interested in, so I can earn a few pence. That’s pretty poor (use of everyone’s time), especially for ‘targeted’ ads, I guess telly must be even worse.

The ‘good’ thing about ads from a dev point of view is its easy to include them, a few lines of code, a bit of xml and the ad space is there. Someone else decides what to show in that space, fuck knows how.

I have about a 1% conversion rate, that is people paying to get rid of the ads. And that is all, no additional features.

So per thousand uses:

  • 1 person will see an ad that interests them and click it
  • 10 people will be so sick of ads they will pay (1 chf/usd/gbp/eur) to get rid
  • 989 people see ads they are not interested in but don’t care enough to pay to remove.

Ads only really make financial sense once your installs are over 100k, and that is pocket money. Scraping a living is probably more like 1M. So niche is not so nice!

The GDPR requires devs to ask for consent, then store that. Which then makes you a data controller! what the effing eff mate? [Edit – looks like this can just be in the app, not on a server so not quite so onerous]

So given that their creepy tracking mischief has leaked out of their banner ad space into my world, I have to ask, Do I still want to rent out a 320×50 pixel chunk of my app to some random ad flinger?

I don’t know yet if I will split my approach EU v rest of world (UK to be phased in in 2019!). Or just sack off ads completely and go freemium/nagware. Should I spend my next few weeks implementing GDPR consent, or a new (creepy tracking free) monetisation approach?

But GDPR has killed off my current business model that’s for sure.

First one star review

I got my first one star review today.

I’m a tad miffed…

At least they were generous enough to leave a review, which gives me something to respond to.

Its a simple timer app, clearly described as a simple timer app.

The review? you guessed it

‘its just a simple timer app’

I was going to go down the ‘can you not read’ route, but instead I (quite nicely) asked what other features they would like in a simple timer app.

I appreciate them bothering to leave the review, but the one star drops the app average massively, and I am concerned my already underwhelming install numbers will become even less whelming.

The app has a review component that is meant to steer the happy  users to the (public) app store and the less happy to (private) email. Not sure what happened here Рmaybe they were so outraged they went a different route to the app store.

Or maybe its a competitor in the dog eat dog world of simple timers…

New app released

I have just released my third app. My second written in Kotlin. I am a complete Kotlin convert. I haven’t found anything yet that it does in a way I think is daft. Unlike many other languages…

I found the switch over very easy, the JetBrains tools are utterly magnificent (copy Java paste as Kotlin – it doesn’t get much cooler than that; Microsoft certainly couldn’t even mange copy VB6 paste, never mind their grown ups language c hash tag.)

I find Kotlin very productive and very direct. I write code to do stuff, not write boiler plate framework peripheral cak that one day will get instantiated and do it all for me…hopefully.

Favourite things so far (apart from automagic copy paste):

  • app level function modules: awesome for stateless function library stuff
  • objects (not classes). like a static class in OO
  • strings like ” blah blah $SomeVariable” instead of concatenation
  • passing functions as parameters

Of course there are others but these spring to mind as big friction reducers. I would have put ‘by lazy’ down but I’m unconvinced on that one, having wasted a good few hours tracing some bizzaro update errors. Needs more investigation

I am finally looking forward to developing cool apps away from the tyranny of Object Obsession.

I have my sights on some extensions to to rid me of the findviewbyid nonsense too. Then we really will be back in the 1990’s, at Vb5 functionality. (Plus proper objects on the off chance one ever needs them.)

Macbook pro charging lights

One of the offspring had a problem with his macbook pro today.

When plugging the magsafe adaptor in it lit up very very faintly green with a regular tiny flash of orange.

The MBP would not start up. It looked very dead. No lights, no sleep light no battery indicator lights (why did they remove that on the retina ones??). no whirring, no buzzing, not even any CD grinding.

Well it had done, but then like a doofus he clicked every combination of buttons anyone on the whole interwebs had ever suggested. ever. for anything…

I jangled around with it for a bit, tried a few different adapters, then gave the magsafe socket a good seeing to with a cotton bud.

Macbook fixed.


It seems all the SMC PRAM reboot, reinstall, rejigger, rescue meddling he tried did not moff anything important up – the joy of user level access right?

Maybe he’ll take a bit more care of it from now on??