Reactive Programming + Combine

The Duality in ProgrammingAs Engineers, most of us are used to a style of programming we call Imperative Programming. This is largely due to the fact that when the web was simpler, about 10 years back, the interaction was too. In most cases it was as simple as submitting a…

Stateful Table Views

Crafting Stateful Table ViewsA UITableView in iOS is the most robust solution to displaying a scrollable list of items without compromising on performance or aesthetics. UIKit provides a rock solid API when it comes to working with tables. But, it’s upto us, the consumers of this API that should…

Hello URLSession, My Old Friend.

Talking to Servers The Client-Server model dictates that the server component is to be designed so as to facilitate communication with one or more clients. This is a widely prevalent architecture that we employ in designing products and services and it’s not alien to iOS clients that we build…

Concurrency and iOS

The Problem Concurrency is the idea of multiple things happening at once. With increasing number of cores in the CPUs of our devices, software developers need to be able to take advantage of this. In the world of iOS software development, its imperative that we make the experience of using…

Long Story Short: Codable Protocols

As developers, I’m sure we all have been in a place where we’ve had to deal with JSON in our lives. In my previous article, I detailed out how to deal with networking in Swift. Although the pattern discussed in the previous article still works excellently, we relied…

Networking with Swift

Introduction We all know why dependencies are bad, and writing software dependant on other software is not necessarily good. It probably reduces complexity for the time being, and helps you write code faster, but I wouldn’t say it’s exactly the way things are to be done, from my…

ARKit: A Noob's Guide - Part IV

Part IV: Lighting with SceneKit 💡 In the last few parts of the series, we’ve discussed how to setup an AR Session, detecting planes, and adding 3D objects to your session. To make your 3D content all better, we’ll work with lighting in this section. Fill — How? The 3D…