Refactoring Massive App Delegate

App delegate connects your app and the system and is usually considered to be the core of every iOS project. The common tendency is that it keeps growing as the...

Visit Monitoring

As Covid-19 started to spread, we tried to find a way to help as developers, with the tools at our disposal. One idea was to use out of the box...

iOS images in memory

Why memory and CPU matter? It is obvious that too much usage of CPU has negative impact on battery life and responsiveness. But, if you application consumes too much memory,...

Security holes I see in too many iOS applications

My work consists of many things. While working on a project from scratch is great, most of the time I am finishing/fixing work for someone else, consulting on possible next...

Using intents to leave the app

In an iOS application, we often have to redirect the user outside of the application for a variety of reasons: calling a number, sharing content, writing an email, etc. UIKit...

Application life cycle in iOS

The application life cycle constitutes the sequence of events that occurs between the launch and termination of application. It is very important to understand for all the iOS Developers, who...

How an iOS App Launches

Have you ever wondered about what happens under the hood between tapping an app icon and application:didFinishLaunchingWithOptions:? I really like to take a deep dive into topics like this that...

Testing private methods and variables in Swift

Testing private methods and variables is often something we run into when writing tests for our applications. You could think that it’s needed to fully verify that your code is...

Unit Testing: The Right Way

What is Mock: Mock is used to describe dependencies that are not real in unit tests in order to isolate component and make sure it behaves as expected in all...

Dependency injection and Generics to create a modular app in Swift

When we talk about modular app, we rarely mention how complex it can be over time and get out of hand. In most cases, importing frameworks into one another is...