Blog

Cleaning AppDelegate or SceneDelegate Using ViewControllerFactory

Factory Design Pattern Illustration Overview AppDelegate or SceneDelegate is the main file that we as iOS developers know to configure, inject, or instantiate a global instance or frameworks. This place become essential, especially because it is actually the starting point of our app. Because it knows so many things, like configuring the frameworks, handling push … Continue reading Cleaning AppDelegate or SceneDelegate Using ViewControllerFactory

Implementing Builder Pattern to create Navigation Stack for UIViewController on iOS

Photo by helloimnik on Unsplash Introduction A Builder pattern is one of Design Pattern that belongs to the creational Design Pattern. The pattern exist to solve issue on creating a complex object. This pattern can helps developer to create an object in a simple and elegant way. To use the pattern, we need to create … Continue reading Implementing Builder Pattern to create Navigation Stack for UIViewController on iOS

Compose Your UseCases to Create New Functionality using Composite Reuse Principle

On the previous article, we already learn about how to create a UseCase. In this article, we are going to learn how we can composes use case and create new one that has different functionality, using Composite Reuse Principle. Let's visit the previous article example. The previous example, we have a LoadTransactionsUseCase protocol to get a general picture … Continue reading Compose Your UseCases to Create New Functionality using Composite Reuse Principle

Get Rid of `nil` Values using Dictionary.compactMapValues { $0 }

What is compactMapValues { $0 } ? compactMapValues {} can be really helps when we are dealing with optional values inside a dictionary. Readability is also important, especially amongs the developers. compactMapValues is one of the great language feature of Swift. "Returns a new dictionary containing only the key-value pairs that have non-nil values as the … Continue reading Get Rid of `nil` Values using Dictionary.compactMapValues { $0 }