Building a Trello-like iOS App with Drag & Drop API
Drag & Drop is the user interaction that works naturally when we want to build an app where user can move data around the screen. It’s being used heavily by apps like Trello, Jira, and many others to move data between boards....
Debugging Out of Memory Issues: Catching Layout Feedback Loop with the Runtime Magic
Let’s imagine this scenario: you’ve got a successful app with a great number of daily users and 100% crash-free rate. You are happy and your life is amazing. But at some point you start seeing negative reviews coming to the App...
Implementing a Heap Based Priority Queue Using Swift
There is a wealth of problems in computer science where using a priority queue as your underlying data structure can greatly improve the time complexity of your algorithm. One example is Dijkstra’s Shortest Path Algorithm, where...
Avoiding Massive View Controller using Containment & Child View Controller
View Controller is the component that provides basic building block that we use as a foundation to build application in iOS development. In Apple MVC world, it sits as a middle man between the View and Model, acting as an...
Building an Interactive Voice App Using Custom Siri Shortcuts in iOS 12
Siri Shortcut is a new API that Apple introduced in iOS 12 built on top of SiriKit framework. It provides ways for developer to provide custom shortcut to the activities that the user often used within the app. User invokes the...
Function Naming in Swift
In this article, we will face a question that we should always ask ourselves when writing a function: How should I name this function? Although this question looks simple, getting it answered properly determines a crucial aspect...
Advanced Unit Testing in Swift Using Swinject, Quick and Nimble
Do you want to build a car (Testable Architecture) that can run fast (less compile time), save petrol (repeated code) and can be easily learnt (readable) & driven (picked up) by any licensed driver? Then you have come to the...
How to Use Xcode Instrument to Optimize Your Swift Code
I still run across curmudgeons who flat out reject techniques like object-oriented programming (especially inheritance and polymorphism), protocols and protocol-oriented programming (especially composition), generics, and...
An Introduction to Operator Overloading in Swift
Operator overloading is one of the most powerful features of any computer programming language, so Apple decided to make it available for development in Swift. However, with great power comes great responsibility. You can easily...
Building a Fitness App Using HealthKit to Track Walking Distance
According to the news, health and fitness are more important today than at any point in history. It’s funny, though, as I seem to remember the news telling me the same thing a couple of days ago. Maybe it’s just a feeling that...