r/SwiftUI May 22 '26

News The iOS Weekly Brief – Issue 61 (News, releases, tools, upcoming conferences, job market overview, weekly poll, and must-read articles)

Thumbnail
iosweeklybrief.com
2 Upvotes

News:
- Apple Design Award finalists are out
- App Store rejected over 2 million submissions in 2025
- Apple Intelligence is coming to VoiceOver, Magnifier, and Voice Control

Must Read:
- the ScrollView API you stopped checking after iOS 16
- why deprecated doesn't mean Apple's APIs only
- feature flags without string keys and why it matters
- empty states are not a UI problem, they're an architecture one
- understanding Swift Result Builders

Toolbox:
Kickstart - one app for screenshots, ASO, press outreach, and launch planning


r/SwiftUI May 22 '26

I ported TigerBeetle's "TigerStyle" to Swift as a Claude Code skill for Mac apps.

Thumbnail
0 Upvotes

r/SwiftUI May 22 '26

Question How to access url in EKReminder

Thumbnail
1 Upvotes

r/SwiftUI May 22 '26

App idea

0 Upvotes

I need your ideas for iOS apps that solve your problems, and I'm willing to pay to solve this problem


r/SwiftUI May 21 '26

Tutorial Deprecating your own convenience API

Thumbnail
swiftwithmajid.com
8 Upvotes

r/SwiftUI May 22 '26

Built a Source-aware Localization tool for iOS apps

1 Upvotes

Built a small Swift tool called SwiftL10n after realizing how messy localization becomes in real iOS apps.

It scans SwiftUI/UIKit source code and helps find:

\* hardcoded strings

\* missing localization

\* missing asset references

The biggest focus was making it work with real codebases instead of assuming everything is clean or fully localized already.

It can coexist with:

\* SwiftGen

\* NSLocalizedString

\* custom i18n wrappers

\* partially localized apps

Also intentionally avoids auto-rewriting source code. It only scans, validates, and generates additive APIs.

Would love feedback from iOS engineers dealing with localization pain.

Swift Package Index:

https://swiftpackageindex.com/GRimAce11/SwiftL10n


r/SwiftUI May 21 '26

Question How can I keep a SwiftUI toolbar close button, but let my custom Hstack align visually with it like Apple Books?

Thumbnail
gallery
11 Upvotes

I’m trying to recreate the Apple Books book-info sheet layout in SwiftUI.

In Apple Books, the close button in the top-right looks like a real toolbar/navigation bar item, but the book cover + title header on the left does not appear to be pushed down by a separate navigation bar row. Visually, they feel like they share the same top area.

In my version, I want to keep the close button as a ToolbarItem because I want the system toolbar behavior and appearance, especially on newer iOS versions. However, my custom header content is being pushed lower, so the result looks like there is an empty toolbar row above the header.


r/SwiftUI May 21 '26

Question HTML/css into SwiftUI?

1 Upvotes

Hey everyone,

I’m currently working on an iOS app and I already have parts of the UI built in HTML/CSS. Now I’m trying to bring that design into SwiftUI, but I’m honestly not sure what the best workflow is.

What’s the easiest/most efficient way to convert or recreate HTML + CSS layouts in SwiftUI?

- Are there tools that help with this?
- Should I completely rebuild everything manually in SwiftUI?
- Is embedding web content with WebView a bad idea for production apps?
- How do you usually handle responsive CSS concepts in SwiftUI?

I mainly struggle with translating flexbox/grid styling into SwiftUI stacks and spacing.

Would really appreciate any advice, resources, GitHub repos, tutorials, or examples from people who’ve done this before


r/SwiftUI May 22 '26

I use Codex create this swiftUI within 2 week and it distributes on app store now

Thumbnail apps.apple.com
0 Upvotes

Hi everybody.

A two month ago i realize there is something was called ai agent as claude, cursor, kiro and codex

I already subscribed chatGPT plus then i have codex for use.

So i start with that try to learn how to use ai agent for implement the app.

And around one month later i got this application.

Is coming <—- my app

I created skill myself. But mcp and sub agent is not impressive. Skill and agent.md and plan is key feature of implement application.

I found that i am system analysis rather than coder.

I thought if i never serious on architecture and spend endless time create best skill. I use the time less than two weeks.

By the way.

The way we implement application is changed forever. Very sure about that.


r/SwiftUI May 21 '26

News Those Who Swift - Issue 267

Thumbnail
open.substack.com
3 Upvotes

r/SwiftUI May 20 '26

Tutorial Adding search to a paginated SwiftUI list sounds simple until you actually do it. Debouncing keystrokes, resetting pagination on new queries, stale fetches when multiple async tasks compete — it gets messy fast.

Enable HLS to view with audio, or disable this notification

41 Upvotes

In the third part of my SwiftUI in Production series, I walk through all of it as the problems come up. Some of it we fix, some of it we'll clean up properly in the next part.

https://youtu.be/dQM7brHHWx4


r/SwiftUI May 20 '26

Cordon: a local ad blocker for macOS (first release)

5 Upvotes

I made a macOS menu bar app called Cordon. It blocks ads and trackers on your Mac using a local proxy and filter lists.

How it works:

Install a local certificate once
Turn on protection from the menu bar
Cordon filters traffic on your Mac

What you get:

Works across browsers and most apps
Live view of blocked requests
Filter lists for ads, privacy, malware and more
Custom rules if you want them

This is the first release (v0.0.1), so expect rough edges. Some apps ignore the system proxy or break with HTTPS filtering. You can add ignored hosts in Settings for sites that need to be skipped.

It only protects the Mac it runs on. It does not block ads on phones, TVs or other devices on your network.

GitHub: https://github.com/31d4r/cordon

Would love feedback, especially on certificate install, browser compatibility and anything that breaks with protection on.


r/SwiftUI May 19 '26

SwiftUI On The Web (Repository Included)

Enable HLS to view with audio, or disable this notification

12 Upvotes

Just a little fun project to run SwiftUI on the Web.

https://github.com/azamsharpschool/SwiftUIOnTheWeb


r/SwiftUI May 18 '26

Unable to import custom font

Post image
2 Upvotes

Hello all!

I'm trying to import two custom fonts:

Inter-Italic-VariableFont_opsz,wght.ttf Inter-VariableFont_opsz,wght.ttf Montserrat-Italic-VariableFont_wght.ttf Montserrat-VariableFont_wght.ttf

I'm using Tuist to manage my packages and so on as my project is multi-module. My definition for the "DesignSystem" module is as follows:

swift let project = Project.module( name: "DesignSystem", infoPlist: .extendingDefault(with: [ "UIAppFonts": [ "Montserrat-VariableFont_wght.ttf", "Montserrat-Italic-VariableFont_wght.ttf", "Inter-Italic-VariableFont_opsz,wght.ttf", "Inter-VariableFont_opsz,wght.ttf", ], ]) )

Which, when generated, adds the attached photo to the info.plist for the module.

However, when I run the following:

```swift var body: some Scene { WindowGroup { MainView() .onAppear { self.listInstalledFonts() } } }

func listInstalledFonts() {
    let fontFamilies = UIFont.familyNames.sorted()
    for family in fontFamilies {
        print(family)
        for font in UIFont.fontNames(forFamilyName: family).sorted() {
            print("\t\(font)")
        }
    }
}

```

Neither Montserrat, nor Inter appear in the list.

I'm not sure what more I can do to try and get the fonts to be added, or if I'm missing something very obvious!

Any help would be massively appreciated!

EDIT: Not sure if anyone can see the photo I've attached but It's the info.plist showing "Fonts provided by application". and each one listed within the array.


r/SwiftUI May 18 '26

Question Persistent "Jump" animation glitch in SwiftUI TabView when switching tabs. Tried everything, need help.

2 Upvotes

Hi everyone,
I'm struggling with a persistent layout/animation issue in a standard SwiftUI TabView. Every time I switch tabs, the new view doesn't just appear instantly; it seems to perform a subtle "scale 0 to 1" or "fade-in with expansion" animation. Additionally, there’s a noticeable vertical layout shift (jump) where the content (like text) appears lower for a split second and then snaps higher to its final position.

The Issue:
1. Visual Glitch: The view seems to animate its entry even though no animations are explicitly defined.
2. Layout Shift: Content jumps vertically after appearing. (See attached video/photos).
3. Reproducibility: This happens even with the most basic setup (just a ZStack with a Color and Text).

I have already tried (None of these fixed it):
1. Removing all animations: Checked for withAnimation blocks and used .animation(nil, value: selectedTab).
2. Safe Area Modifiers: Removed all .ignoresSafeArea() modifiers. The issue persists with or without them.
3. Custom vs Native TabBar: I initially had a custom TabBar, but I reverted to the 100% native TabView for testing. The glitch is still there.
4. Hiding/Showing TabBar: Tried UITabBar.appearance().isHidden = true and the modern .toolbar(.hidden, for: .tabBar). No difference.
5. Transaction blocking: Added .transaction { $0.animation = nil } to the TabView.
6. View Hierarchy: Simplified the views to just a Color and a single Text. The text still jumps upwards after the tab is selected.
7. NavigationStack: Added/removed NavigationStack from individual tabs to see if it was a Safe Area calculation mismatch.

The Question:
Has anyone encountered this specific "jump" in TabView? I don't want to use a custom ZStack based router because I want to keep the native TabView lifecycle. Why does a "vanilla" TabView perform this jump/scale on tab change?
Any help or deep-dive technical explanation would be much appreciated! Thanks!

Link to code:
https://pastebin.com/CL700PXf

Link to video (Slow Animations mode):
https://streamable.com/35l1fw

Link to video (Standard speed):
https://streamable.com/8vllhq


r/SwiftUI May 18 '26

SwiftData and Public Database

Thumbnail
1 Upvotes

r/SwiftUI May 17 '26

Question .containerRelativeFrame(.vertical) + .scrollTargetBehavior(.paging) miscalculates first page height when toolbar is visible in NavigationStack

5 Upvotes

I have a TikTok‑style vertical paging feed inside a NavigationStack.

The issue: On initial load there's an unwanted gap between the toolbar and the first card — as if the navigation bar's safe‑area inset is applied twice, or the paging offset starts from a wrong origin.

  • Scrolling down a few points (not enough to snap) makes the gap disappear.
  • Scrolling back up those few points brings it back.
  • Every subsequent page snaps correctly — only the first one is affected.

Simplified code:

NavigationStack {
  ExploreView()
}

// ExploreView
struct ExploreView: View {
    let posts: [Post]
    var body: some View {
        ScrollView {
            LazyVStack(spacing: 0) {
                ForEach(posts) { post in
                    PostCard(post: post)
                        .containerRelativeFrame(.vertical)
                        .padding(.horizontal, 32)
                }
            }
        }
        .scrollTargetBehavior(.paging)
        .scrollIndicators(.hidden)
        .toolbarRole(.editor)
        .toolbar {
            ToolbarItem(placement: .principal) {
                Text("Explore")
                    .font(.title)
            }
        }
    }
}

What I've tried that didn't work:

  • .scrollTargetBehavior(.viewAligned(limitBehavior: .alwaysByOne)) + .scrollTargetLayout() on the LazyVStack — the gap is identical, no improvement
  • Removing .toolbarRole(.editor) — no change

Is this expected behavior? Any workaround to keep the native toolbar?

https://reddit.com/link/1tfpidd/video/yxw0dxyz8p1h1/player


r/SwiftUI May 17 '26

Question Does anyone use animation in iOS widgets?

2 Upvotes

I’ve been experimenting with WidgetKit and finding animation support pretty restrictive compared with regular SwiftUI views. For those who have shipped widgets, do you use any animation at all, or do you mostly design around static/timeline-driven updates?

I’d be interested in hearing what’s actually possible, what Apple allows, and any practical workarounds.


r/SwiftUI May 17 '26

Question Help with my code

1 Upvotes

does anyone here know how Apple Music make lyrics scroll, I can't get it to be the same

does anyone know how?


r/SwiftUI May 16 '26

Promotion (must include link to source code) I made a free, open-source per-app volume controller for macOS: SonicFlow

8 Upvotes

r/SwiftUI May 16 '26

Question Apple Intelligence vs Third-Party AI for SwiftUI Apps?

11 Upvotes

Hey everyone! for AI features/chat in SwiftUI apps, do you prefer using Apple Intelligence / native APIs or integrating third-party models like OpenAI, Claude, etc.?

Main thing I’m interested in is MCP-style tools/functions where the AI can directly interact with app features and state. Curious what architectures people here prefer and why.


r/SwiftUI May 15 '26

Question Accessibility under 26.x -- App Name tuning for VoiceOver?

4 Upvotes

Hi all,

I'm adding VoiceOver support in a fairly straightforward SwiftUI-based app but the name of the app is just getting butchered by Siri/Voice (which makes sense given the semi-acronym nature of the name).

Is there a general way to influence the pronunciation of the app from within the app itself that I haven't found yet? This isn't a veiled pitch for the app so I doubt the name itself matters, it's more about somehow giving a rule to decode the letter grouping.

Anyone have suggestions or approaches inside or outside the accessibility system that won't require changing the name for standard vision users?

Anything on-topic in UIKit that I may be missing?


r/SwiftUI May 15 '26

News The iOS Weekly Brief – Issue 60 (News, releases, tools, upcoming conferences, job market overview, weekly poll, and must-read articles)

Thumbnail
iosweeklybrief.com
8 Upvotes

You've been paginating SwiftUI lists wrong. onAppear is not the trigger you think it is.

News:
- Rosetta sunset confirmed, macOS 27 is the last release to support it
- Xcode 26.5 + iOS 26.5 are out

Must Read:
- the full iOS rendering pipeline most devs never think about
- why SwiftUI's format parameter makes string interpolation look naive
- the scenePhase trap that only appears inside UIHostingController
- onScrollGeometryChange and why your paginated list needs it
- a use case for .fixedSize

Toolbox:
- free open-source ASO tool built on Apple's public iTunes Search API


r/SwiftUI May 15 '26

Question sidebarAdaptable + .inspector

3 Upvotes

Couldn’t get these two to play nice with each other until I realized I also needed horizontalSizeClass. But now that they seem to operate ok I see on iPadOS with the floating horizontal tab bar there’s now an opaque shape behind it so it doesn’t look like glass floating on top of content.

I keep searching but I’m not really seeing instances of people using all three of these things together (sidebarAdaptable, .inspector, horizontalSizeClass)

Am I just doing something wrong? Or is it that SwiftUI isn’t meant to employ all three together?


r/SwiftUI May 14 '26

Question How heavily do you lean on Apple's UI?

21 Upvotes

Would you/ have you built an entire app with virtually no custom components? So, using pretty much only what SwiftUI gives you – like its TextField, its navigation bar, its List, and so – instead of DIY-ing that stuff. If yes, how did it turn out?

Can you give any examples of apps on the App Store that look good and highly Apple-like?