Blog

Managing navigation in SwiftUI is easy for simple flows but quickly becomes messy as apps grow. Routing decisions end up in the screen view files, view models leak navigation logic, and flows become hard to follow.

The primary function of a Router is to manage the display of a group of scenes, implemented by ViewControllers, using a pattern such as stacking, direct access or serial access.

VIPER is an application architecture - a set of classes that work together to structure a solution.

I’ve been exploring and using the VIPER architecture now for about 2 years. I think it is a really sensible solution for organizing and reducing the size of a Massive ViewController.

In Solving a Complex UITableView using Swift, we reviewed a solution for solving a complex UITableView. In this article, we will improve the solution by refactoring the code in three ways:

In this article we will discuss a technique for solving a complex UITableView. By complex, I mean a tableView that will display many more row types than exist in the source data set - in this case seven. At the same time, we will discuss a simple technique to reduce the size of the UIViewController that owns the tableView.

Lyle Resnick

📧 Email me

github mark Github