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...