
How to make a UIKit app launch without a storyboard. You’ll remove storyboard references from Info.plist and set the root view controller in code, so everything is created programmatically.
Video description:
In this quick demo, we:
Delete Main storyboard file base name and Storyboard Name (Info.plist → Application Scene Manifest).
(Optional) remove Main.storyboard.
Set the root VC in SceneDelegate/AppDelegate.
Fix the common init(coder:) crash.
End result: a clean, fully programmatic UIKit startup.
This is a basic UIKit stock display app and I am going to explain how it works.
In a nutshell, the programmatic approach to creating a view controller is create the view without wiring anything through the storyboard. There is no drag and drop in the creation of view controllers. This module explains more in-depth about the differences.
This lecture explains, using a very basic example, the very fundamentals of using storyboard for UIKit.
There are multiple advantages to creating view controller programmatically. One of which is that programmatic methodologies are less prone to source control errors and conflicts. This course goes more in-depth with this topic.
This lecture explains what a stack view is. This will tie back to a breakdown of the original 'Stock Display App' in the first lecture.
This lecture demonstrates coding the Stackview.
In the 'StockMarketDisplayApp' there is a function called createStockLabel. Instead of explicitly creating a UILabel, we use a function that will create the labels for us. This lecture explains how.
This lecture takes you step be step coding the StockMarketDisplayApp
We are going in depth with the explanation of the UIView and UIViewController so that students are not confused by these 2 terms.
This lecture shows how to build a small UIKit design system and a reusable “Action Card” component. We start by centralizing visual tokens in a Theme (colors, spacing, radii), then create two base bricks: a CardView shell (rounded, padded, shadowed) and a PrimaryButton. Using those, we compose ActionCardView—a card with title, optional subtitle, and a primary action—configured via a lightweight Config struct and exposed through an onButtonTap closure. An example UIViewController demonstrates instantiation and wiring. The pattern keeps views dumb, promotes consistency, supports Dynamic Type/accessibility, and scales to new cards (e.g., stats or two-column info) without VC bloat.
This video demonstration walks you through building a reusable UIKit Action Card from scratch—no storyboards. You’ll set up a tiny Theme, create a polished CardView (rounded corners, shadow), add a PrimaryButton, and compose an ActionCardView with a simple Config and onButtonTap—ready to drop into any view controller.
Learn how to display car data in a fully programmatic UITableView using a clean, scalable pattern. The lecture loads cars from a CarAPI (e.g., MockCarAPI) into a single source of truth, renders with a diffable data source and snapshots for smooth updates, and adds a UISearchController to filter results without duplicate arrays. You’ll see the cell builder setup, filtering logic, and small UX touches (currency formatting, empty/error states), plus tips for accessibility and easy extensions like sorting or multiple sections.
I live-code a small UIKit app end-to-end—no storyboard. We bootstrap via SceneDelegate, build a programmatic UITableView with a diffable data source, wire up a UISearchController for instant filtering, and load data from a MockCarAPI. Along the way I explain snapshots, lightweight DI, and quick UX polish (currency formatting, empty/error states, keyboard dismissal). By the end, you’ll have a clean, reusable pattern you can drop into any project.
“Explaining Programmatic UILayouts for UIKit” is a hands-on, live-coded course that teaches you how to build iOS interfaces entirely in Swift—clean, testable, and production-ready. We start by removing the storyboard and bootstrapping the app via SceneDelegate, then lay out views with anchors, layout guides, and UIStackView so your screens adapt to different devices and Dynamic Type.
You’ll create a small design system (Theme for colors/spacing/radii) and reusable components (CardView, PrimaryButton, ActionCard). From there we build a real feature: a Car Search screen powered by a CarAPI (mocked for the course). You’ll wire a programmatic UITableView, use a Diffable Data Source with snapshots for smooth updates, and integrate a UISearchController to filter results without duplicating arrays. We’ll also cover scroll view best practices (contentLayoutGuide vs. frameLayoutGuide), empty/error states, currency formatting, keyboard behavior, and Dark Mode.
Architecture stays pragmatic: MVVM-style view models and dependency injection so you can swap the mock for a live API later. Along the way, you’ll see common pitfalls and how to debug them—ambiguous constraints, safe-area mistakes, and the classic init(coder:) crash when removing storyboards.
By the end, you will be able to:
Launch apps without storyboards and structure screens programmatically.
Compose responsive layouts with anchors and stack views.
Render lists with diffable data sources and update via snapshots.
Add fast, user-friendly search using UISearchController.
Ship consistent UIs with reusable components and a simple Theme.
If you’re an iOS dev who wants fewer Interface Builder headaches and more control, this course is for you.