Clean Android

As an Android developer, I spend a lot of my time worrying about app architecture. Android has a long history of attempts at a convention. We’ve had Activity god classes. We then had fragment god classes. Along came MVP (Model-View-Presenter) with its presenters, which really improved things, but often led to god presenter classes. MoreContinue reading “Clean Android”

Not Good Enough

I’m a perfectionist. I know a lot of people testify this about themselves. But I truly am. Nowadays, there seems to be a trend of “good enough”. It stems from a sensible idea that the final 20% of the work will add marginal value (not to be confused with the 80/20 rule). I get that.Continue reading “Not Good Enough”

Do One Thing Well

I’m an Android user. I’m also a Windows user. I tried the iPhone, and I’ve used a MacBook for a few years. The latter two didn’t grow on me. Different operating systems offer different experiences. Which works best for you is an individual preference. Once you get used to one, though, it’s hard to switch.Continue reading “Do One Thing Well”

A Beautiful Piece of Rubbish

Every time I moved home (of which I lost count), I spent days looking at properties. Figuring out if one fit my requirements was fairly straightforward. Location? Check. Size? Check. The real challenge was to imagine how each property would look once reorganised to suit my style and needs. When I was developing apps orContinue reading “A Beautiful Piece of Rubbish”

A Sharp Corner

I am often tempted to take shortcuts. What could possibly go wrong if I don’t wear my seat belt, it’s a short ride anyway. What could possibly happen if I delay scanning this document – I’ll get to it later. The answer is everything. Everything can go wrong. And often, it will. When it does,Continue reading “A Sharp Corner”

Nice and Tidy

Appearance matters. I noticed that when I let myself go and don’t bother with tidying up, it has a snowball effect. What starts as a cup left on the coffee table soon becomes a messy home. The same is true for code. If I don’t keep a high bar, soon enough the whole thing isContinue reading “Nice and Tidy”

Legacy Code

What is legacy code? I was asked this question in an interview for a contract once. I answered that all code, once written, is immediately legacy code. I got that contract. I still believe this to be the case. Any developer worth their salt never stops learning. This means yesterday’s code is inevitably not asContinue reading “Legacy Code”

A Lazy Singleton

Every profession has its own jargon. It helps convey ideas to fellow professionals quicker. Some terms are more important than others, because they encapsulate a whole solution with a single expression. The software world is no different. We have plenty of terms we use on a daily basis to convey software (or hardware) ideas. TermsContinue reading “A Lazy Singleton”

Don’t Be a Slave to Jira

If you’re a developer, you’ve probably come across Jira. If you’re working with Jira right now, you probably know the pain. You pick up a task. You move its ticket into “In Progress”. You raise a pull request (PR). You move the ticket to “Code Review”. Your PR is merged. You move the ticket toContinue reading “Don’t Be a Slave to Jira”

Size Matters

Size matters. Especially when we’re talking about software. Quite simply, smaller is better. In some cases, size comes at a cost. We call this a lossy compression. JPEG is such an example. The smaller your JPEG, the lower its quality. There is no way to recover the original data. It is lost. The loss mayContinue reading “Size Matters”