Avoiding SwiftUI’s AnyView
How SwiftUI’s AnyView type can often be avoided, and why it might be a good idea to do so.
Articles, podcasts and news about Swift development, by John Sundell.
How SwiftUI’s AnyView type can often be avoided, and why it might be a good idea to do so.
How a SwiftUI view’s body can be split up into multiple computed properties, which is a great alternative to using separate types in certain situations.
A look at what it means for SwiftUI to be a value-driven UI framework, and how we might need to break certain assumptions when adopting SwiftUI within our projects.
Chris Eidhof returns to the show to go on a deep dive into the SwiftUI layout system. What are the different phases involved in determining a given view’s layout, how do concepts like layout priorities and flexibility work, and what makes SwiftUI different from UIKit and AppKit in terms of layout?
In this second article about integrating SwiftUI and UIKit, we’ll take a look at how SwiftUI views can be embedded within UIKit-based view controllers, and various ways of sharing state between them.
A closer look at how SwiftUI and UIKit can be combined in various ways, starting with how we can bring increasingly complex UIKit-based views and view controllers into the declarative world of SwiftUI.
James Thomson, creator of PCalc, returns to the show to discuss how developers can bring their apps to multiple Apple platforms using technologies like Catalyst and SwiftUI, and how and when it can be a good idea to share code across platforms.
A few different patterns and approaches that can be used to handle and render asynchronous loading states within SwiftUI-based views.
Simon Støvring, the developer behind several powerful iOS productivity apps, including Scriptable, joins John on an episode all about the new home screen widgets introduced in iOS 14. Topics include how to create and update dynamic widgets, managing and sharing data between an app and its widgets, and much more.
An overview of the tools and techniques that we can use to create a clean separation between our view hierarchy, its styles, and the components that we’re looking to reuse across a given project.
Jordan Singer joins John to discuss various approaches of turning designs into fully implemented UIs, how to manage things like mock data during the development process, and when to turn a given view into a reusable component. Also, the story behind the Airport app and Jordan’s recent SwiftUI experiments.
A roundup of some of the key ways in which Swift 5.3 enhances the overall experience of building views using SwiftUI.
This week, let’s take a look at a few examples of building custom debugging utilities for SwiftUI-based views — from specific methods to general-purpose abstractions.
This week’s article is about Swift’s function builders feature, and how it can give us some really valuable insights into how SwiftUI’s DSL operates under the hood.
Tips on how to texture SwiftUI views using tiling images, and how to ensure that such views are rendered in a smooth and predictable manner.
Let’s take a closer look at opaque return types, how they can be used both with and without SwiftUI, and how they compare to similar generic programming techniques, such as type erasure.
This week, let’s take a closer look at each of SwiftUI’s state handling property wrappers, how they relate to each other, and how they make up different parts of SwiftUI’s overall state management system.
Josh Shaffer and Eliza Block from Apple join John to talk about what’s new in SwiftUI, how Xcode Previews work under the hood, the new home screen widget system, Apple’s internal process of adopting and improving SwiftUI, and much more.
Let’s take a look at one possible venue for learning and exploring SwiftUI without having to necessarily deploy it directly into production — by building internal tools and various prototypes.
Let’s take a look at a number of techniques, patterns, and ways of structuring UI code that can help us get the very most out of Xcode’s SwiftUI-powered preview system.
This week, let’s take a look at a few techniques that can help us make our code easier to read, test and maintain, by reducing the amount of indentation within it.
Let’s take a look at a few techniques that can make it much simpler to propagate runtime errors to our users, and how employing some of those techniques could help us present richer error messages without having to add a ton of complexity within each UI implementation.
Tobias Due Munk joins John to talk about using SwiftUI to build prototypes, how third party developers can extend SwiftUI’s built-in APIs in various ways, and to discuss the challenges of writing highly dynamic systems in Swift.
This week, we’ll wrap up the SwiftUI layout system series by taking a look at how we can customize the layout behaviors of our views, using tools like layout priorities and alignment guides.
A summary of all Swift by Sundell content published during March 2020.
Let’s continue exploring the SwiftUI layout system by taking a look at a couple of more advanced techniques, such as how we can align views with dynamic dimensions and how to read a view’s geometry in order to build custom layouts.
Let’s take a look at the SwiftUI layout system by starting to build a full-screen view from scratch. Along the way, we’ll use many different techniques and APIs, which lets us explore the underlying rules of the SwiftUI layout system.
This week, let’s explore the topic of UI modularization in the context of SwiftUI, by taking a look at a few different techniques that can be useful in order to avoid trading Massive View Controllers for Massive Views.
A summary of all Swift by Sundell content published during February 2020.
Let’s take a look at how SwiftUI’s various stacks and spacers can be used to achieve many kinds of flexible, adaptive layouts with very little code. While SwiftUI does include several more advanced layout APIs, stacks and spacers are a great starting point for most UIs.
This week, let’s take a look at a few different ways of configuring views when using SwiftUI, and the sort of pros and cons that each of those approaches gives us in terms of code structure and flexibility.
Meng To, founder of Design+Code, joins John to go on a deep dive into SwiftUI from a design perspective, and to talk about how developers and designers can build scalable and flexible UIs using it. Also, structuring view code and components, the power of modifiers, and how SwiftUI compares to other UI tools and platforms.
Indie iOS and watchOS developer “Underscore” David Smith joins John to discuss the current state of Apple Watch app development, and how SwiftUI is changing how watchOS apps are built. Also, managing and prioritizing multiple projects, Swift vs Objective-C, and whether SwiftUI is actually production-ready.
Josh Shaffer, engineering director with the UIKit and SwiftUI team at Apple, joins John to go on a deep dive into SwiftUI. What inspired the creation and design of SwiftUI, how does it impact the way apps are developed and architected, how is Apple using and improving SwiftUI internally, and much more.
Adam Bell joins John to talk about audio programming in Swift, and how SwiftUI makes rendering visual representations of audio and other custom shapes easier than ever before. Also, reverse engineering, mixing SwiftUI with UIKit and other view frameworks, and much more.
A recap of the basics of SwiftUI, Apple’s declarative new UI framework for building apps across all of their platforms. How to build custom views and modify existing ones, how to manage local state within a view, and how to compose multiple views to form new ones.
Longtime Apple platforms developer Brent Simmons joins John to discuss how SwiftUI is ushering in a new era for Apple’s developer tools, and how we as third party developers can prepare for it. Also, Mac development, lots of tips for writing efficient code, and dynamic programming in Swift.
Deploying generics in a more gentle fashion — to make a code base simpler, not more complicated.
Kaya Thomas joins John to talk about Apple’s various accessibility technologies and how SwiftUI is taking things to a whole new level. Also, how UI testing and accessibility are closely related, and what makes declarative UI development so powerful.
This week, let’s take a look at a few techniques that we can use to prepare ourselves for undergoing major paradigm shifts when it comes to the APIs and technologies that we use to build apps — using the shift from imperative UI development with UIKit to the declarative nature of SwiftUI as an example.
SwiftUI brings a new, declarative way to build UIs for Apple’s platforms, and also pushes the Swift language itself to new limits — by making heavy use of a set of key new syntax features, that are being introduced as part of Swift 5.1, in order to provide a very DSL-like API. This week, let’s take a first look at those features and how they work.
It’s time for the 2019 Swift by Sundell WWDC special, featuring PCalc creator James Thomson — who, with his over 25 years of experience developing apps for Apple’s platforms, joins John to discuss SwiftUI, Catalyst, and the other exciting tools and frameworks introduced at this year’s WWDC.