Latest blog posts

Thoughts on SwiftUI dev experience

I have just completed a new iOS app and it was my first time using SwiftUI. I have to say the developer experience felt almost... phenomenal... although recently the bar has been pretty low after wrestling with react native!

Specifically the amount of time I spent trying to solve issues that should not be issues, or wrestling with style and layout were essentially zero. The amount of time I spent managing third party code was in the minutes, and the new package manager is simple and forgettable which is exactly how it should be.

I really don’t know what I would say if someone asked me to build a cross-platform app now, I really would be now tempted to build two separate apps. It feels like this app took less than half the time to build than the equivalent in react native, despite spending much of the time learning the new SwiftUI way of doing things. Furthermore, it is stable and looks decent without much extra effort expended - it also feels like the code will last, and not that I will have to spend half a day patching it up if I ever need to add to it.

Drop everything and work on this one thing!

In a timely coincidence this tweet came up on my timeline just when it basically happened three times to me in one week from different projects I was working on:

As a tech lead or eng manager, you so frequently get request from above or from other teams to drop what you are doing and work on this thing they need, now.

This happens all the time and it is frustrating as I do often identify with the next part of the tweet:

During my 4 years at Uber after asking these questions, 9 out of 10 times it turned out it wasn't really urgent.

Often, there will be one or two things which indeed are urgent, bundled together with many less urgent things (cf. 'gold plating' and 'scope creep' ), which could be updated or fixed later or are simply unnecessary for the projects goals.

After some research about how I could avoid these issues in the future, the two main pieces of advice seem to be:

  • More clearly define goals, keep them visible - document requirements.
  • Introduce a process to change requirements (e.g. change requests)

I also like the idea to:

  • Define constraints and non-goals (including time, and honest admissions of scope for polishing within a given timeframe)

Which seems to be more about managing expectations up front. This will be something I plan on thinking about a lot about more when new projects come around.

Live Photo Cleaner

Came across this great open source app for iOS that automatically removes the annoying, space-hogging 'live' effects from photos taken on iPhone. It is called LivePhotoCleaner. Cynicism alert: This live photo feature surely is about nothing other than filling up more iCloud space - with the side effect of wasted energy and resources. After reading David Graeber's Bullshit Jobs, I can suggest that 'live photos' are surely a prime candidate for a 'bullshit feature'.

Solvitur ambulando

The latin phrase Solvitur Ambulando is translated as "it is solved by walking". It has a funny double meaning: classically it has meant "the problem is best solved by actively trying to solve it" as opposed to thinking or planning up front. But some people seem to use it to mean almost the opposite now, which is - solve the problem by literally going for a walk (and whence thinking about it!)

Canceling my Spotify subscription

As part of a process of taking the advice in Stolen Focus I have cut out nearly all notifications, turning off all sounds, and indications of message waiting on email, slack, whatsapp, messenger and everything. The only way someone can interrupt me now is by text or phone - and this for the past 2 months has made a huge difference in the amount of time I have spent on my phone or distracted from what I am working on.

My next move has been to cancel all subscription services. I remember the good ol' days before you had to subscribe to things, where you would pay money and have that thing 'forever'! Subscription services obviously make more money than that, as basically, they trick you into thinking something is cheap, because you can't keep track of how much you are using it or need it.

The issue is that for me my interests in various stuff is very boom and bust, so I can be very interested on one thing for a few months, and then not do anything with it. Having the subscription causes me a feeling that I should be using it, which means at least with Netflix I ended up watching rubbish...

Spotify was the last hurdle as I do like to listen to a lot of music. But it's always been a slight source of guilt in the back of my head that of my £120 a year only a pittance goes to the artists - and in fact lots of my money presumably goes to popular artists who I think are, at worst, actively harmful to their listeners (😆). So instead, I am now looking forward to actually buying a new album to keep, each month.