Sam Stone

iOS development in the wild

  • Home
  • About
  • A link to my YouTube channel
  • A link to my Twitter account
  • GitHub
  • Get all available cameras in iOS using AVCaptureDevice.DiscoverySession

    22 September 2023

    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…

    AVFoundation, AVKit, Camera, iOS
    AVFoundation, AVKit, Camera, iOS
  • Examples of Use Cases in Swift

    19 September 2023

    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…

    Architecture, iOS, System Design, Use Cases
    Architecture, iOS, Swift, System Design, UML, Use cases
  • Use Cases in iOS Development

    11 September 2023

    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…

    iOS, System Design, Use Cases
    iOS, Swift, System Design, UML, Use cases
  • UML Diagrams with PlantUML and SwiftPlantUML

    4 September 2023

    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…

    iOS, System Design, UML
    iOS, Modular strategy, Modularization strategy, Module Boundaries, PlantUML, SwiftPlantUML, System Design, UML
  • Camera for iOS – A Swift Package

    1 September 2023

    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…

    Camera, iOS, Swift Packages
    Architecture, AVFoundation, Camera, iOS, Swift Packages
  • Feature Modularization in iOS

    1 September 2023

    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…

    iOS, Modularization
    Advantages, Advantages to modularization, Architecture, Core modules, Feature modules, iOS, Modularisation, Modularization, Navigation modules, UI modules
  • Module Boundaries in iOS

    18 August 2023

    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…

    iOS, Modularization, Module Boundaries
    Architecture, iOS, Modular strategy, Modularisation, Modularization, Modularization strategy, Module Boundaries
  • Advantages to modularization in iOS

    11 August 2023

    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…

    iOS, Modularization
    Advantages, Advantages to modularization, Architecture, iOS, Modularisation, Modularization
  • What is Modularization in iOS?

    7 August 2023

    Setting the scene: you’ve just started a new job at a bigger company. You’re excited and a bit nervous as its your first job working on a larger app. What will it look like? What are the differences between this and some of the other codebase’s you’ve worked on? You get access to the repo…

    iOS, Modularization
    Architecture, iOS, Modularisation, Modularization