How to build a modular architecture in iOS

Over time, any code base grows along with the project evolves and matures. It creates two main constraints for developers: how to have a code well organized while keeping a...

Caching in Swift

Making an app feel fast and responsive isn’t only about tweaking the way its UI is rendered, or improving the sheer execution speed of its operations and algorithms — it’s...

Unit Testing: Best Practices

Testing is about getting feedback on software. This is what gives us confidence in the program that we write. This article is an introduction to Swift unit testing. Let’s learn...

3 Approaches to Applying Blur Effects in iOS

It’s a fairly common requirement to apply a blur effect to iOS content. This article introduces three different approaches by using three different iOS frameworks: UIKit, CoreImage, and Metal. 1....

Coordinator Pattern in Swift

Why do we need to change? Recently, I realized that my app’s UI Layer instances are too much coupled. After I searched why my code was not clean, I realized...

Data Structure in Swift: Queue

Overview Queue is an abstract data structure that represent queue in real world like the picture above. In computer science terminology, queue is FIFO (First in First out) which mean...

Data Structure in Swift: Stack

Overview Stack is abstract data structure that have a similar representation with physical stack in a real world. You are recommended to use stack if you want to minimise access...

Data Persistence in iOS

Data persistence means storing any type of data to disk so that the same data can be retrieved without being altered when the user opens the app next time. We...

Getting started with Realm Database

Table of Content Overview Installation Import Realm Define Your Object Model Open a Realm Create, Read, Update, and Delete Objects Watch for Changes Migrations Encrypt a Realm Core Data vs...

Getting started with Core Data

Table of Content Overview Data Model Core Data Stack Operations (CRUD) Create (Insert) Read (Fetch) Update Delete Batch Delete Delete Everything (Delete All Objects, Reset Core Data) Delete Rule Transactions...