Android Ecosystem: 2008-2018

Some time in 2018 I realised the Android ecosystem had been around over 10 years and there was more stuff coming out than it was possible to keep up with. So I thought it’d be fun to draw up a high level map of most things Android developers have come into contact with, in general, since the start. Links to large-sized files are at the end… Roughly speaking as you move out from the centre you are moving forward in time, although to group some items by theme I bend the rules. The lines represent relationships, though not always direct, and the dotted boxes are things that may no longer be in active use. There are also some 3rd-party honourable mentions in there. ...

January 15, 2019

Value Objects in Java with AutoValue and Lombok

In this post I want to discuss the subject of Value Objects, their purpose and some ways of easily implementing them in Java, specifically, although not exclusively, within the context of Android development. I’ll cover a couple of popular libraries that I’ve tried, namely Project Lombok and AutoValue, how they approach the problem of making value objects easier to create and maintain, plus a few pitfalls. In computer science, a value object is a small object that represents a simple entity whose equality is not based on identity: i.e. two value objects are equal when they have the same value, not necessarily being the same object. Examples of value objects are objects representing an amount of money or a date range. ...

January 14, 2017

Bots as Celebrities

Messenger-based services, bots, agents, AI. It looks like app fatigue has led us to look to these for the next green field, something new for VCs to plough their money into, something that feels different. From time to time technology comes full circle and here we are again using something like IRC, in the UX slam dunk that is Slack, and setting loose upon it an army of bots… again, like we do/did with IRC. Of course both of these things are significantly evolved from their forebears; the semi-public messaging platform (albeit, now less suited for massive audiences) but also the bots, who once were relegated to performing simple tasks like running file shares or hosting quizzes for a handful of geeks, are now powered by significant “AI” resource and connected to millions of people and myriad services from Uber to Dominos. ...

March 24, 2016

How did you start coding?

Recently Usborne books made their beautifully illustrated 1980’s computing books for kids available for download. It turns out several of my friends and Twitter acquaintances picked up their love of coding from these books as youngsters, myself included. I owe my career to these books. I first learned BASIC from this one back in 1993: https://t.co/a9SwJxLTrc https://t.co/cdinNZi47j — Nick Lockwood (@nicklockwood) February 7, 2016 I remember being in a dentist’s waiting room where an old battered copy of “Computer Space Games” lay on the bookshelf. I was so engrossed they actually let me take that book home, and thus began my journey. ...

February 28, 2016

Are You OK? App

I’ve just published a companion site for my free app Are You OK?. The app is aimed at people wishing to regularly check the status of family or friends who may for example live alone and are vulnerable to accidents like a fall in their home, unable to call for help. Something like the reverse of a panic button system; if they don’t press a button every few hours, it sends an SMS message to selected contacts with a call to check in. ...

February 5, 2015

Fragments and Activities in Android Apps

UPDATE: 5 years later this post is pretty out of date. Some of it still holds, but it is now possible to better architect primarily “single Activity” apps, especially with the advent of the android Navigation component. For posterity the post below remains… When asking “should I use a Fragment or Activity?” it’s not always immediately obvious on how you should architect an app. My advice is try to avoid a single “god” Activity (h/t Eric Burke) that manages navigation between tens of Fragments – it may seem to give you good control over transitions, but it gets messy quickly*. ...

September 18, 2014

Load Testing Live Streaming Servers

There are two types of test I’ll describe below. First of all using Apple HLS streams, which is HTTP Live Streaming via port 80, supported by iOS and Safari, and also by Android (apps and browser). Then we have Adobe’s RTMP over port 1935, mostly used by Flash players on desktop, this covers browsers like Internet Explorer and Chrome on desktop. These tests apply to Wowza server but I think it’ll also cover Adobe Media Server. ...

June 13, 2014

Postman Collection to HTML (node script)

If you use the excellent Postman for testing and developing your APIs (and if you don’t yet, please give it a try!) you may find this little node script helpful when generating documentation. It simply converts your downloaded Postman collection file to HTML (with tables) for inserting into documentation or sharing with a 3rd party developer. The Postman collection is perfect for sharing with developers as it remains close to “live documentation”, but sometimes you need a more readable form. ...

June 11, 2014

Registering Your Android App for File Types and Email Attachments

I’ve recently finished work on an app that registers itself as a handler for a given file extension, let’s call it “.mytype”, so if the user attempts to open a file named “file1.mytype” our app would launch and receive an Intent containing the information on the file’s location and its data can be imported. Specifically I wanted this to happen when the user opened an email attachment, as data is shared between users via email attachment for this app. ...

January 26, 2013

Seconds Pro for Android

The latest Android app I’ve been working for Runloop, the hugely successful iOS interval timer Seconds Pro, is now live. Packed with the following features: • Quickly create timers for interval training, tabata, circuit training • Save your timers, as many as you need • Organize Timers into groups • Text to speech • Install timers from the timer repository • Send your timers to your friends • Full control over every interval • Assign music to intervals or timers • Large display • The choice of personal trainers up and down the country ...

January 17, 2013