• A month or so back I bought “Dark Side of The Moon” on Blu-Ray to finally listen to the Atmos remix and – not to mince words her – it was revelatory. Maybe the most transformative listening experience I’ve had in like…well, a good decade or so. Incredible mix, and that was just through my…

  • I’ve been working on Lapsey – an app to make beautiful timelapse’s with – and whilst I won’t be open-sourcing the entire project, I am trying to open-source various components in the app that feel like it might be worthwhile to others. One of the larger packages in the app is the “engine” that builds…

  • I’m working on an iOS project that required finding all of the users available cameras on their device. This used to be simple enough prior to iOS 10, as you could just call: This would retrieve all available cameras on the users device. Sadly, thats been deprecated. The confusing world of virtual devices With the…

  • In the last post we went over what use cases are in software development and how they can be used in iOS development. We also went over their origin as a requirements gathering technique for teams to document the functionality of the system they’re designing. In this post, I want to go over a few…

  • Use cases have historically been a somewhat confusing topic to venture into for me personally, and I’m now of the believe that is because they typically have a couple of definitions, depending on who you’re talking to. They can be: These two ideas blend into one another throughout the development process, and contain considerable overlap…

  • PlantUML is an open-source tool used to produce an assortment of diagrams using text. With other diagramming tools, the paradigm is typically a GUI and some dragging and dropping of various objects to build up your diagram. PlantUML allows you to forgo the dragging and dropping element and write your diagram in PlantUML’s own markup…

  • Currently preparing a large post going over Clean Architecture in iOS and how that relates to modularization, but whilst that is in the making, I figured I’d post about my newly released Camera framework, and some of the architectural decisions made. Camera aims to provide a singular, well-tested interface for simple camera interactions. Its headless…

  • So you’ve decided a loosely coupled, highly cohesive, modular architecture with well defined boundaries, is the approach you want to take with your project. Now its time to go over how to deal with separating out the code. Today we’re going to go over an approach with feature modularization, using an example of an e-commerce…

  • We’ve talked about what modularization is, and what its advantages are when used in a decoupled, cohesive way. It feels only reasonable that we should dig into the meat of what a modular architecture could look like, starting with your module boundaries. I say “could” on purpose. Whilst I believe there are some anti-patterns to…

  • We’ve already talked about what modularization is, and why a team might want to architect their codebase in such a way. But what are the real life advantages to having multiple units of code to work in? Lets take a look. Portable As touched on previously, modules that are loosely coupled to other modules in…