Skip to content

SwiftUI

19 post(s)

Blog

  • HandySwiftUI Styles: Enhancing SwiftUI's Standard Views

    HandySwiftUI Styles: Enhancing SwiftUI's Standard Views

    From attention-grabbing pulsating buttons and versatile label layouts to cross-platform checkboxes and vertical form styles - discover the SwiftUI styles that bring polish and consistency to your apps. These battle-tested styles power the UI of 10 production apps and counting.

  • HandySwiftUI Extensions: Making SwiftUI Development More Convenient

    HandySwiftUI Extensions: Making SwiftUI Development More Convenient

    Discover powerful SwiftUI extensions for clean optional bindings, intuitive color management, XML-style text formatting, and more. These battle-tested utilities will help you write more elegant SwiftUI code while reducing boilerplate in your apps.

  • HandySwiftUI View Modifiers: Streamlining Your SwiftUI Code

    HandySwiftUI View Modifiers: Streamlining Your SwiftUI Code

    From smart color contrast and streamlined error handling to simplified deletion flows and platform-specific styling - discover the SwiftUI modifiers that eliminate common boilerplate code and help create more maintainable apps.

  • HandySwiftUI New Types: Essential Views and Types for SwiftUI Development

    HandySwiftUI New Types: Essential Views and Types for SwiftUI Development

    From platform-specific values without #if checks to sophisticated selection controls and async state management - discover the essential SwiftUI types that helped ship apps faster. These battle-tested views and types fill common gaps in SwiftUI development.

  • Guest Post: Why I Chose FreemiumKit Over RevenueCat for My App

    Guest Post: Why I Chose FreemiumKit Over RevenueCat for My App

    Struggling with in-app subscription integration? Discover how FreemiumKit transformed my development process, helping me overcome challenges with RevenueCat and fast-tracking my app's launch.

  • My Top 10 Wishes for WWDC24

    My Top 10 Wishes for WWDC24

    From a SportsKit API and .zoom modifier in SwiftUI, over improved SwiftData and source control in Xcode, to my biggest pain points in tvOS and visionOS, and much more! Blending long-standing requests with fresh ideas.

  • Migrating my SwiftUI App to VisionOS in 2 Hours

    Migrating my SwiftUI App to VisionOS in 2 Hours

    How I migrated my SwiftUI app CrossCraft to support visionOS for the Day 1 Release of the Apple Vision Pro. It took effectively about 2 hours in total, this article summarizes my key learnings along the way.

  • Window Management with SwiftUI 4

    Window Management with SwiftUI 4

    Learnings from modernizing the window handling of my Mac app after upgrading to SwiftUI 4. Explaining `\.openWindow`, `.windowResizability` & more.

  • Binding: Equatable vs EquatableBinding

    Binding: Equatable vs EquatableBinding

    How I fixed a subtle bug in SwiftUI Pickers in my app by using a Property Wrapper instead of conforming Binding to Equatable.

  • Migrating to The Composable Architecture (TCA) 1.0

    Migrating to The Composable Architecture (TCA) 1.0

    Sharing my learnings and my code structure after migrating my app to the vastly modernized APIs of TCA 1.0.

  • SwiftPM + CoreData: Failing SwiftUI Previews? Here Are 5 Tips to Fix

    SwiftPM + CoreData: Failing SwiftUI Previews? Here Are 5 Tips to Fix

    Fixing Xcode bugs that make SwiftUI previews fail in apps modularized with SwiftPM and that are using CoreData.

  • Multi Selector in SwiftUI

    Multi Selector in SwiftUI

    Adding a missing SwiftUI component for prototyping purposes.

Snippets

  • Use .labelStyle(.iconOnly) Instead of Nesting Image in Button

    The proper SwiftUI pattern for icon-only buttons that preserves accessibility without sacrificing readability.

  • Building an AsyncButton in SwiftUI

    A reusable button component that handles async actions with automatic loading state, disabling, and success/failure indication.

  • ImageRenderer Cannot Export UIKit-Backed Views

    SwiftUI's ImageRenderer silently fails on views that use UIKit or AppKit under the hood, like List and ScrollView.

  • SwiftUI Navigation: Present Data, Not Views

    Understanding the mental model shift from imperative navigation in UIKit to data-driven navigation in SwiftUI.

  • AsyncImage Does Not Support .resizable()

    SwiftUI's AsyncImage does not allow the .resizable() modifier, requiring a phase-based workaround.

  • Previewing Loading States in SwiftUI Without Changing Production Code

    A preview-only helper that simulates network delays so you can see loading states in SwiftUI previews.

  • Pulsating Button Animation in SwiftUI

    How to create a pulsating button effect in SwiftUI to guide users during onboarding.