There are 3 page(s) in this tag.
Versioning Codable types in Swift apps (without tearing your hair out)
If you work on codebases any larger than a few lines, at some point you will have to deal with data stored in some sort of document. Inevitably, this type will change, and you’ll need to add, remove, and rearrange fields—while still needing to retain compatibility with stored documents in earlier versions of the format. This is a problem I’ve recently encountered on my side project, Unspool. Even though I’m the only person ever to have used the app, I still found myself iterating on the data structure to make more logical sense—leading to decoding errors and un-openable documents, along with lots of boilerplate that wouldn’t have been sustainable in the long run. (Read...)
I am pleased to announce the side project I’ve been working on for the past 3 months, and hope to release to the public some time this year. It’s called Unspool, and it exists because I’ve recently got back into film photography and wanted a metadata tagging app that doesn’t make me want to throw things. I intend to write a developer blog on my experiences building Unspool at least once a month, to give me accountability to: (Read...)
CamelCase cursor movement in Xcode
I mostly write Swift in Xcode these days. I can’t say I miss Java. I do, however, miss IntelliJ IDEA, and specifically, the little CamelHumps option: This changes the behaviour when using the arrow keys to navigate between words (⌥+→, ⌥+← on MacOS) so that it respects CamelCase—i.e. it treats the word CamelCase as two words, rather than one. This certainly made it easier for me when it came to renaming variables with long names: (Read...)