Clean iOS Architecture pt.4: Clean Memory Management in Swift with WeakRef

Clean iOS Architecture pt.4: Clean Memory Management in Swift with WeakRef

We must be careful with `weak` properties as they can sometimes damage the design of our systems, especially when crossing module boundaries. In this video, we’d like to share with you a way to avoid retain cycles by using a `WeakRef` type, so there's no need to make your class properties `weak`.

Read More

Composing View Controllers pt.4: Integration Tests vs. Contract Tests vs. UI Tests

Composing View Controllers pt.4: Integration Tests vs. Contract Tests vs. UI Tests

In this video, we're going to improve our `Swift View Controller Lifecycle Observers` by increasing the test confidence with Integration Tests.

Read More

Composing View Controllers pt.3: Lifecycle Observers in Swift

Composing View Controllers pt.3: Lifecycle Observers in Swift

In this video, you'll learn how to create your own `Swift View Controller Lifecycle Observers`. Those observers are very useful when composing and creating reusable view controllers. The solution is based on the `UIViewController Containers API` so there's no need for external frameworks, swizzling or subclassing!

Read More

The Importance Of Discipline for iOS Programmers

The Importance Of Discipline for iOS Programmers

As companies want to build great iOS products, job descriptions for iOS Developers usually demand top quality software skills. To fulfill this demand, developers need to learn and apply best practices. However, there are no agreed or predefined rules, nor a set of steps for performing such practices in everyday operations. Thus, the importance of discipline comes in hand.

Read More

iOS Continuous Integration Setup with Git, GitHub, Travis CI, TDD, Xcode [S01 Extras]

iOS Continuous Integration Setup with Git, GitHub, Travis CI, TDD, Xcode [S01 Extras]

In this episode, we set up a Continuous Integration (CI) pipeline for our Quiz project. The goal for this initial setup and integration with GitHub is to guarantee we only merge changes that don’t break the build and are passing all tests.

Read More

iOS Automation Testing Tools vs. Economics: Is It Worth The Cost?

iOS Automation Testing Tools vs. Economics: Is It Worth The Cost?

iOS Testing Automation Tools can be a polarizing topic amongst developers, but today we’ll be looking at this topic from a different angle – the business side.

Read More

Migrating to Swift 4.1 using a TDD + Git workflow [S01 Extras]

Migrating to Swift 4.1 using a TDD + Git workflow [S01 Extras]

In this episode, we migrate the Quiz project and its dependencies to **Swift 4.1** and modernize our code with the newest additions.

Read More

iOS Entry Level Programmer Salary and Senior Programmer Salary

iOS Entry Level Programmer Salary and Senior Programmer Salary

A common practice amongst professionals interested in building a prosperous career is to analyze the job market trends with not just up to date but also historical data, from the Entry Level Programmer Salary to the highest Senior Programmer Salary.

Read More

Back to Basics pt.1: Objects

Back to Basics pt.1: Objects

Today we'd like to discuss the importance of the "basics" for beginners and advanced programmers. In this first video, we'll stress the concept of "Objects."

While teaching we noticed that many developers like to rush to the "cool stuff" and end up getting too attached to the semantics of acronyms or language features, and they forget the basic concepts behind them. We believe that if we don't get the basics right, we can't use our skills optimally.

Read More

iOS App Architecture Best Practices – What We’ve Learned From Teaching Teams

iOS App Architecture Best Practices – What We’ve Learned From Teaching Teams

At Essential Developer, we help individuals and teams achieve their best potential and iOS App Architecture Best Practices is always a common topic in our work. As part of what we do, we often come to the rescue when teams are failing to deliver what the business expects. Over time we identified common patterns amongst dysfunctional teams where one of the most common problems we identified is the misunderstanding of software architecture and its goals.

Read More