---
title: "Alexandre Alcuvilla (@screwdriver) | Hashnode"
description: "#SwiftUI #Swift #DesignPattern #CleanArchi #iOS. Read the latest articles by Alexandre Alcuvilla on Hashnode."
url: "https://hashnode.com/@screwdriver"
---

@screwdriver

# Alexandre Alcuvilla

@screwdriver · Joined January 2022

#SwiftUI #Swift #DesignPattern #CleanArchi #iOS

[Website](https://swiftuicentral.com/)

### [The Composition Root Pattern in SwiftUI Apps](https://swiftuicentral.com/the-composition-root-pattern-in-swiftui-apps?utm_source=hashnode&utm_medium=feed)

Every article in this series has ended with the same instruction: wire everything at the Composition Root. We've used it as the place where RemoteFeedRepository meets CachingFeedRepository, where User

8 min read · [swiftuicentral.com](https://swiftuicentral.com/the-composition-root-pattern-in-swiftui-apps?utm_source=hashnode&utm_medium=feed)

[Jun 29](https://hashnode.com/posts/the-composition-root-pattern-in-swiftui-apps/6a42d9b091a310f5b24f5ce2)

### [Snapshot Testing in SwiftUI: Catching Visual Regressions Automatically](https://swiftuicentral.com/snapshot-testing-in-swiftui-catching-visual-regressions-automatically?utm_source=hashnode&utm_medium=feed)

Unit tests verify logic. UI tests verify user flows. But neither catches the moment a refactor silently shifts a layout, changes a font, or breaks a dark mode style. Snapshot testing fills that gap. O

7 min read · [swiftuicentral.com](https://swiftuicentral.com/snapshot-testing-in-swiftui-catching-visual-regressions-automatically?utm_source=hashnode&utm_medium=feed)

[Jun 29](https://hashnode.com/posts/snapshot-testing-in-swiftui-catching-visual-regressions-automatically/6a42d99dddd0bb0760f91f69)

### [Dependency Inversion in SwiftUI: Programming to Protocols](https://swiftuicentral.com/dependency-inversion-in-swiftui-programming-to-protocols?utm_source=hashnode&utm_medium=feed)

Of all the SOLID principles, the Dependency Inversion Principle (DIP) is the one that most directly enables testability and long-term flexibility. Yet it's also the most commonly misunderstood. DIP st

7 min read · [swiftuicentral.com](https://swiftuicentral.com/dependency-inversion-in-swiftui-programming-to-protocols?utm_source=hashnode&utm_medium=feed)

[Jun 29](https://hashnode.com/posts/dependency-inversion-in-swiftui-programming-to-protocols/6a42d85b5b0e7bf5298aad59)

### [Test-Driving a Cache Layer in SwiftUI](https://swiftuicentral.com/test-driving-a-cache-layer-in-swiftui?utm_source=hashnode&utm_medium=feed)

In previous articles, we built a CachingFeedRepository by writing the implementation first and tests after. That works — but it leaves a subtle gap: the tests are shaped by the implementation you alre

8 min read · [swiftuicentral.com](https://swiftuicentral.com/test-driving-a-cache-layer-in-swiftui?utm_source=hashnode&utm_medium=feed)

[Jun 22](https://hashnode.com/posts/test-driving-a-cache-layer-in-swiftui/6a39a8d95f5f99ff08712679)

### [Single Responsibility: Breaking Up Fat ViewModels in SwiftUI](https://swiftuicentral.com/single-responsibility-breaking-up-fat-viewmodels-in-swiftui?utm_source=hashnode&utm_medium=feed)

The Single Responsibility Principle (SRP) states that a class should have one reason to change. It's the first letter of SOLID, and arguably the one most frequently violated in SwiftUI projects. The c

8 min read · [swiftuicentral.com](https://swiftuicentral.com/single-responsibility-breaking-up-fat-viewmodels-in-swiftui?utm_source=hashnode&utm_medium=feed)

[May 8](https://hashnode.com/posts/single-responsibility-breaking-up-fat-viewmodels-in-swiftui/69fda2666fb09594bd21d80b)
