The Adapter Pattern is one of the foundational patterns introduced in the legendary “Gang of Four” (GoF) book — Design Patterns: Elements of Reusable Object-Oriented Software It’s a timeless design approach that allows software components with incompatible interfaces to work together seamlessly. Whether you’re coming from iOS, Android, backend, or frontend, understanding design patterns like … Continue reading 🧩 Leveraging the Adapter Pattern in Flutter — A Transferrable Skill for Every Software Engineer
SOLID : Single Responsibility Principle (SRP)
What is SRP? The Single Responsibility Principle (SRP) is one of the SOLID principles in software design. It states that a component should have only one reason to change. In other words, a class, struct, or any components, should have a single purpose and should not be modified for multiple reasons. Consider the following Swift struct: struct … Continue reading SOLID : Single Responsibility Principle (SRP)
WordPress Scheduled Post: “#4 Part 4.1- iOS – TDD – Random Character App – Swift – Enable the Power of TDD to Refactor MVVM to State based MVVM”
In this video, we will learn how to safely refactor our ViewModel using TDD using State based ViewModel variation. Let's dive in into the second part of 4th video, State base MVVM with TDD!
4 Part 4 – iOS – TDD – Random Character App – MVVM ViewModel
In this new series, we will be learning how we can use Test Driven Development on a networking based iOS project app, and in this case, we will fetch random character from `rickandmortyapi` and display it to the screen! In this video, we will learn how we can build our ViewModel component using Test Driven … Continue reading 4 Part 4 – iOS – TDD – Random Character App – MVVM ViewModel
#3 Part 3 – iOS – TDD – Random Character App – The Power of Tests on During Refactoring
In this new series, we will be learning how we can use Test Driven Development on a networking based iOS project app, and in this case, we will fetch random character from `rickandmortyapi` and display it to the screen! Refactoring is actually changing the implementation without changing the behavior. In this video, we can achieve … Continue reading #3 Part 3 – iOS – TDD – Random Character App – The Power of Tests on During Refactoring
#5 Swift – TDD + Nearest Palindromic
Hi everyone, this is my very first video in 2023 and this video is about how we can use Test Driven Development to solve Nearest Palindromic algorithm Problem! We can use TDD to solve very small unit of logic, then we can keep refactor our code so that it can works in integration. #testdrivendevelopment #nearestpalindromic … Continue reading #5 Swift – TDD + Nearest Palindromic
Test Double : Spy
In the previous article, we've already talk about Test Double in general. In this article, we will talk about one of test double, called Spy. Testing a component can be helped with another collaborator component with predefined behavior and collecting information. This is called spying. 💡 Spies are stubs that also record some information based on how they were … Continue reading Test Double : Spy
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
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 }