Saturday 20 January 2018

Devlog Weekly Update – Jan 15th - 19th 2018

This week went reasonably well, working on Cowbell and runtime. Cowbell is my crowd support, shake to ring alpine bell app which was the first Android app I released back in September 2015.

Cowbell

As my app framework developed, the code for Cowbell started to fall behind in the metric I call build distance. Build distance can be used as an indicator of how out of date code is.

Cowbell was getting pretty out of date as my other projects progressed and its entropy increased. Also I’d started to notice the occasional crash in Cowbell and so I've started to devote more effort into bringing it into line with my other projects in respect of screen handling etc.

I also wanted to add capabilities which I’d been folding into my more recent apps such as alpha / beta tester detection and reward handling, promotion codes, rating and reviews and work on better monetisation.

These recent capabilities could not be simply folded into Cowbell as it stood. So began a lengthy and ongoing process of getting Cowbell to build cleanly and then be morphed and factored to use my latest code.

There is an imperative for this work in that the NFL Superbowl is coming up in February and the Virgin London marathon is coming up in April. Both of these could be good times for getting people to try Cowbell.

London Marathon spike for Cowbell
Cowbell had seen a nice spike on the day of the London marathon in the past when I'd pushed it and it would be nice to get the same exposure again if possible. I definitely need to work on retention though!


runtime

Work on runtime progressed towards its first closed alpha release to a small group on the 15th January. The bug backlog was attacked with fervour.

Yesterday I received some strange looks as I tested the latest build out on Hackney Marshes. It is really quite difficult to run with two 7” tablets and two phones in your hands so I could compare results.



runtime will get another parkrun course test this morning, though it is horribly rainy this morning. It’s a good test for me as our local parkrun course features several loopbacks on itself which will exercise the GPS point clustering code I’ve written and is of course 5km long, so I can check its accuracy.

runtime allows the user to upload runs to Strava. I had been having trouble with the OAuth2 authorisation flow as the user may authenticate via three different means and they may do this on a device (in my case) in the API level range of 18 – 26. API changes meant that I thought I would have to handle multiple client types for Marshmallow, Nougat and “other”.

Luckily this week I have managed to get that down to one client type and barring some weird rendering behaviour on my old (API 18) HTC M1 test device, the flow appears to work for facebook, Google and email/password authorisation use cases.

I think (hope) I may have fixed an irritating defect which resulted in the distance run accuracy of runtime being off. runtime uses an unbound background service to handle position gathering and broadcasts that to the runtime client which handles persistence and all further processing.

It occurred to me that is was possible that when the user swaps out the client app to take a photo, answer a call etc. that position updates were being missed and when the app was resumed, the distance calculation and hence the projected time calculation was out.

I've now added a communication mechanism between the client app and the service so that it knows when it needs to queue up positions and broadcast them to the client when the client comes back. Hopefully this will fix my issue, I guess I’ll find out this morning.



Accuracy seems to have been improved. I'm reasonably happy with that for now.

Godot

As some light relief from working on bugs, I’d been browsing reddit and came across a post about the games engine Godot. I’m generally quite sceptical about these frameworks as I don’t like the ones that tie you into a particular style of game, but this looked different, interesting, flexible and free! I had been studying Unity and its support for Android VR.

Some of the showcased Godot apps are of excellent quality and I must admit, the engine has piqued my interest. I may consider a “quick” foray and roll one of my game ideas out in Godot to see if it will fly.

One of the showcased apps made with Godot which really caught my eye and I thought was excellently implemented, eye catching and really fun to play was Get Teddy.

I may use that as a reference benchmark for any work I do in Godot in the future.





No comments:

Post a Comment