Explore the art and science of app design. Discuss user interface (UI) design principles, user experience (UX) best practices, and share design resources and inspiration.

Learn about designing great app and game experiences

Posts under General subtopic

Post

Replies

Boosts

Views

Activity

Complex Swift Data Relationships...
I am struggling with exactly how to set up SwiftData relationships, beyond the single relationship model... Let's say I have a school. Each school offers a set of classes. Each class is taught by one teacher and attended by several students. Teachers may teach more than one class, but only at one school. Similarly students may attend more than one class, but only at one school. Classes themselves may be offered at more than one school. Can someone create a class for School, SchoolClass, Teacher, and Student with id, name, and relationships... I have tried it unsuccessfully about 10 different ways at this point. My most recent is below... I am struggling getting beyond a school listing in the app, and I'll cross that bridge next. I am just wondering if all the trouble I am having is because I am not smart with the class definitions. And wondering if this is to complex for SwiftData and CoreData is the requirement. This is not a real app, just my way of really trying to get a handle on Swift Data models and Navigation. I am very new to Swift, and will take any and all suggestions with enthusiasm! Thanks for taking the time. import Foundation import SwiftData @Model class School: Identifiable { var id: UUID = UUID() var name: String var mascot: String var teachers: [Teacher] var schoolClasses: [SchoolClass] init (name: String, mascot: String = "", teachers: [Teacher] = [], schoolClasses: [SchoolClass] = []) { self.name = name self.mascot = mascot self.teachers = teachers } class SchoolClass: Identifiable { var id: UUID = UUID() var name: String var teacher: Teacher? var students: [Student] = [] init (name: String, teacher: Teacher? = nil, students: [Student] = []) { self.name = name self.teacher = teacher self.students = students } } class Teacher: Identifiable { var id: UUID = UUID() var name: String var tenured: Bool var school: School? var students: [Student] = [] init (name: String, tenured: Bool = false, students: [Student] = []) { self.name = name self.tenured = tenured self.students = students } } class Student: Identifiable { var id: UUID = UUID() var name: String var grade: Int? var teacher: Teacher? init (name: String, grade: Int? = nil, teacher: Teacher? = nil) { self.name = name self.grade = grade self.teacher = teacher } } }
Topic: Design SubTopic: General Tags:
6
0
809
Jul ’25
IS THE SWiPE LEFT CAMERA MODE REALLY IMPORTANT?
I have really examined the swipe left Camera function mode and sincerely believe it is no more important especially when there no option in the settings to turn it on or off. I will highly recommend a total scrap in the iOS 26 or if possible a function to activate and deactivate it.
Topic: Design SubTopic: General
3
0
359
Aug ’25
How can I set up a B2B subscription with ABM + MDM + Paywall
I am looking for guidance on how people have solved this problem/use case. What is the best way to structure a seat based subscription app that an organization can pay for seats for all their users, can be distributed via mdm or via app store and is easy (low friction) to get paid for and started for small companies? I market to a business to buy my app, they want it installed on all 25 devices they have. They use ABM to acquire 25 licenses with and MDM to distribute. The app is currently free to download so ABM charges $0 but has a paywall to use. The paywall is a RevenueCat one and no user account is needed. All entitlements and free trial work great. When it is deployed to the 25 devices, they can either sign up with their own AppleId and own/company credit card, or use a company appleid and company card for all 25 devices to solve the issue but neither are great. Doubtful they would want to pay their money for a company required app on a company phone (don’t blame them). If they share an appleid, my MRR drops to 1/25th since they will just share the purchase. Any suggestions would be greatly appreciated.
0
0
203
Feb ’26
glassEffect() in SwiftUI always renders as white
Hi everyone, I’m having trouble getting the new glassEffect() modifier to render correctly in SwiftUI. No matter what I try, it just appears as a solid white background (instead of translucent glass). This happens both in Beta 1 and Beta 2. My setup: • Mac mini (M4 chip) • macOS 26 Beta 2 (Tahoe) • Xcode 26 Beta 2 • Samsung Odyssey G9 57” monitor (super ultrawide) • Using Preview in SwiftUI, I use IOS 26 Beta 2 (not the Simulator) Even when I use Apple’s default demo code like: Text("Hello World") .padding() .glassEffect()
Topic: Design SubTopic: General
1
0
135
Jul ’25
macOS 26 Beta Dark Mode Icons Fallback Removed
Post: In macOS 26 Betas 1–3, the system applied an automatic dark-mode fallback for app icons. This ensured consistency across the Dock and Finder even when developers hadn’t provided dark assets. Since Beta 4, this fallback was removed. As of Beta 7, icons now rely entirely on developer-updated assets. The result is mixed light and dark icons in the Dock, breaking visual consistency and making app recognition slower in dark mode. Observed behavior: • Icons without dark assets are displayed in their original light version. • Some apps (e.g. Final Cut Pro) show a gray border treatment that feels inconsistent with the rest of the UI. • The fallback applied in Betas 1–3 is completely absent. Expected behavior: System should provide a fallback rendering until developers supply proper dark assets, or offer a toggle in System Settings → Appearance (e.g. “Force Dark Icons”). This is still present in Beta 7. Is there any plan to restore the fallback mechanism or provide a user option?
Topic: Design SubTopic: General
0
0
330
Aug ’25
Rendering Multi-Page PDF with SwiftUI View
I have the following code that renders a one-page PDF: func render() -> URL { let renderer = ImageRenderer(content: pdfView()) let url = URL.documentsDirectory.appending(path: "filename.pdf") renderer.render { size, context in var document = CGRect(x: 0, y: 0, width: 2550, height: 3300) guard let pdf = CGContext(url as CFURL, mediaBox: &document, nil) else { return } pdf.beginPDFPage(nil) context(pdf) pdf.endPDFPage() pdf.closePDF() } return url } func pdfView() -> some View { Text("View") } How can this be modified so that it renders a PDF with more than one page?
2
0
745
Feb ’26
SF Symbols Variable Draw without the background.
Is it possible to use the new variable draw feature for a custom SF Symbol without it leaving the background behind it when it is not drawn? I am trying to make a tally icon that is drawn with the variable draw, but it doesn't look good if the tally is visible in the background before it is drawn.
Topic: Design SubTopic: General Tags:
0
0
126
Jun ’25
Nearby Accessory
Can the vehicle‑side UWB module, acting as a Nearby Accessory, perform ranging with multiple iOS phones simultaneously while iOS cell uses background ranging with the vehicle‑side UWB (which involves BLE GATT services)? I mean, when the IOS cell works in the background, it will read the nearby gatt characteristic automatically. If there were multiple phones perform ranging with the accessory, the read characteristic from the accessory side, what shall its content be? Or does the accessory only perform ranging with one phone at a time?
Topic: Design SubTopic: General
0
0
545
Feb ’26
NavigationTitle in LiquidGlass style
Hello everyone. I want to do navigationTitle (located on the top side on MacOS system) in LiquidGlass style. now my solution look like: just black rectangle. But i want like this: opacity and LiquidGlass. Like in Photo app in MacOS. Please help me, thank you in advance. My code: struct RootView: View { @Environment(\.horizontalSizeClass) var hSize var body: some View { if hSize == .regular { DesktopLayout() .navigationTitle("title") .toolbarBackground(.ultraThinMaterial, for: .automatic) } else { MobileLayout() } } }
1
0
736
Mar ’26
First attempt at a PKPass
This is my first attempt at creating a Wallet pass, actually a generic store card. When I see it with Pass Viewer on macOS, I get 1 look, when I see it with the iPhone simulator or iPhone proper, I get a different view. Neither is what I was hoping for, a simple vertical layout of an address. Could someone steer me in the correct direction? My json: "formatVersion": 1, "passTypeIdentifier": "pass.org.danleys.4KSBarcode", "serialNumber": "__SERIAL__", "teamIdentifier": "----", "organizationName": "4 K.I.D.S. Sake", "description": "4KSBarcode", "logoText": "4 K.I.D.S. Sake", "foregroundColor": "rgb(255, 255, 255)", "backgroundColor": "rgb(255,0,0)", "storeCard" : { "primaryFields" : [ { "key" : "ClientID", "label" : "", "value" : "" } ], "auxiliaryFields": [ { "key": "street", "label": "Address", "value": "339 Remington Blvd" }, { "key": "city", "label": "", "value": "Bolingbrook, IL 60440" } ] }, "barcode": { "format": "PKBarcodeFormatCode128", "message": "__SERIAL__", "altText": "__SERIAL__", "messageEncoding": "iso-8859-1" } } On macOS: On iOS: Thank you. Ed
Topic: Design SubTopic: General Tags:
2
0
1.4k
Mar ’26
iOS 27 feature suggestion
I am requesting a dedicated toggle in Settings > Display & Brightness (or Accessibility) to enable/disable the Liquid Glass UI effects so that I am able to get frosted glass thingy effect that was in iOS 18 back.
Topic: Design SubTopic: General Tags:
1
0
1.1k
Mar ’26
Stacked-sheets vs. nav-stack-in-a-sheet for navigation hierarchies on top of a map
I couldn't help noticing that the Maps and Find My apps make extensive use of "sheets stacked on top of each other" to represent its navigation hierarchy, with a "new content comes in from the bottom" orientation instead of a navigation stack with "new content comes in from the right side" oriented transitions. I'm interested in this topic because I have a similar navigation-hierarchy-over-a-map case in my app (with a custom map view though) and I'm torn back and forth between the approach of replicating the "stacked sheets" vs. putting a navigation stack in a sheet, esp. with the navstack approach being way more attainable with the iOS 26 glass design. I couldn't find any guidance for this kind of UI in the Human Interface Guidelines; I'm leaning towards the navstack-approach for my app; but in terms of the behavior of the SwiftUI container views in this scenario it seems a little bit of an uphill path. Any thoughts on what pattern should be preferred for presenting a deep navigational hierarchy on top of a map-like view?
Topic: Design SubTopic: General
1
0
321
Jul ’25
App multiple times rejected - 4.3.0 Design: Spam
Hello everyone, I’m looking for some advice or shared experiences regarding an app rejection under App Store Review Guideline 4.3(b) – Design – Spam. Our app was rejected and, after an appeal to the App Review Board, Apple maintained that the app “duplicates the content and functionality of similar apps in a saturated category.” We strongly disagree with this classification and are struggling to understand how Guideline 4.3(b) has been applied in our case. The app was developed as an original product: Custom-designed content (including original cards and interactions) A unique visual style and UI A distinct interaction flow focused on encouraging social interaction between users This was not a template-based or reskinned app, nor is it part of a series of similar submissions. We fully respect the App Store Review Guidelines and are open to making adjustments to better align with them. However, what we find difficult is the lack of specific, actionable feedback. We have not received clear guidance on which exact elements are considered duplicative or what changes would meaningfully address the concern. Some of the questions we are hoping the community can help with: In your experience, what typically triggers a 4.3(b) rejection in cases like this? Are there specific mechanics, terminology, or presentation choices that reviewers often interpret as problematic? Have others successfully resolved a 4.3(b) rejection without completely abandoning their app concept? We have already invested significant time and resources into this project, and being advised to create an entirely new app is not financially feasible for us. We are genuinely trying to understand how to proceed in a way that is constructive and compliant. Any insights, experiences, or advice would be greatly appreciated. Thank you in advance. — Lars
Topic: Design SubTopic: General Tags:
3
0
1.7k
Mar ’26
MacOS app icon not seen in Stagemanger
Hello, I used icon composer to create an icon for my Mac OS app and it seemed to have worked. I see the app icon everywhere except for window expose or stage manager. Any help or guidance would be greatly appreciated!
Replies
0
Boosts
0
Views
347
Activity
Jul ’25
Complex Swift Data Relationships...
I am struggling with exactly how to set up SwiftData relationships, beyond the single relationship model... Let's say I have a school. Each school offers a set of classes. Each class is taught by one teacher and attended by several students. Teachers may teach more than one class, but only at one school. Similarly students may attend more than one class, but only at one school. Classes themselves may be offered at more than one school. Can someone create a class for School, SchoolClass, Teacher, and Student with id, name, and relationships... I have tried it unsuccessfully about 10 different ways at this point. My most recent is below... I am struggling getting beyond a school listing in the app, and I'll cross that bridge next. I am just wondering if all the trouble I am having is because I am not smart with the class definitions. And wondering if this is to complex for SwiftData and CoreData is the requirement. This is not a real app, just my way of really trying to get a handle on Swift Data models and Navigation. I am very new to Swift, and will take any and all suggestions with enthusiasm! Thanks for taking the time. import Foundation import SwiftData @Model class School: Identifiable { var id: UUID = UUID() var name: String var mascot: String var teachers: [Teacher] var schoolClasses: [SchoolClass] init (name: String, mascot: String = "", teachers: [Teacher] = [], schoolClasses: [SchoolClass] = []) { self.name = name self.mascot = mascot self.teachers = teachers } class SchoolClass: Identifiable { var id: UUID = UUID() var name: String var teacher: Teacher? var students: [Student] = [] init (name: String, teacher: Teacher? = nil, students: [Student] = []) { self.name = name self.teacher = teacher self.students = students } } class Teacher: Identifiable { var id: UUID = UUID() var name: String var tenured: Bool var school: School? var students: [Student] = [] init (name: String, tenured: Bool = false, students: [Student] = []) { self.name = name self.tenured = tenured self.students = students } } class Student: Identifiable { var id: UUID = UUID() var name: String var grade: Int? var teacher: Teacher? init (name: String, grade: Int? = nil, teacher: Teacher? = nil) { self.name = name self.grade = grade self.teacher = teacher } } }
Topic: Design SubTopic: General Tags:
Replies
6
Boosts
0
Views
809
Activity
Jul ’25
IS THE SWiPE LEFT CAMERA MODE REALLY IMPORTANT?
I have really examined the swipe left Camera function mode and sincerely believe it is no more important especially when there no option in the settings to turn it on or off. I will highly recommend a total scrap in the iOS 26 or if possible a function to activate and deactivate it.
Topic: Design SubTopic: General
Replies
3
Boosts
0
Views
359
Activity
Aug ’25
How can I set up a B2B subscription with ABM + MDM + Paywall
I am looking for guidance on how people have solved this problem/use case. What is the best way to structure a seat based subscription app that an organization can pay for seats for all their users, can be distributed via mdm or via app store and is easy (low friction) to get paid for and started for small companies? I market to a business to buy my app, they want it installed on all 25 devices they have. They use ABM to acquire 25 licenses with and MDM to distribute. The app is currently free to download so ABM charges $0 but has a paywall to use. The paywall is a RevenueCat one and no user account is needed. All entitlements and free trial work great. When it is deployed to the 25 devices, they can either sign up with their own AppleId and own/company credit card, or use a company appleid and company card for all 25 devices to solve the issue but neither are great. Doubtful they would want to pay their money for a company required app on a company phone (don’t blame them). If they share an appleid, my MRR drops to 1/25th since they will just share the purchase. Any suggestions would be greatly appreciated.
Replies
0
Boosts
0
Views
203
Activity
Feb ’26
Where can I find a 2022 Style Guide?
I have the June 2025 version, but I'd like to find the 2022. There was something removed from the 2022 that I would like to check out.
Topic: Design SubTopic: General
Replies
0
Boosts
0
Views
779
Activity
Oct ’25
iOS and iPadOS watchOS macOS 26 Control Center liquid glass
Hi Apple developer community. I have a question a lot of users don’t like the new control center and notification center. Are you guys gonna blur the background or are you guys gonna keep it the same?
Replies
1
Boosts
0
Views
257
Activity
Jun ’25
glassEffect() in SwiftUI always renders as white
Hi everyone, I’m having trouble getting the new glassEffect() modifier to render correctly in SwiftUI. No matter what I try, it just appears as a solid white background (instead of translucent glass). This happens both in Beta 1 and Beta 2. My setup: • Mac mini (M4 chip) • macOS 26 Beta 2 (Tahoe) • Xcode 26 Beta 2 • Samsung Odyssey G9 57” monitor (super ultrawide) • Using Preview in SwiftUI, I use IOS 26 Beta 2 (not the Simulator) Even when I use Apple’s default demo code like: Text("Hello World") .padding() .glassEffect()
Topic: Design SubTopic: General
Replies
1
Boosts
0
Views
135
Activity
Jul ’25
macOS 26 Beta Dark Mode Icons Fallback Removed
Post: In macOS 26 Betas 1–3, the system applied an automatic dark-mode fallback for app icons. This ensured consistency across the Dock and Finder even when developers hadn’t provided dark assets. Since Beta 4, this fallback was removed. As of Beta 7, icons now rely entirely on developer-updated assets. The result is mixed light and dark icons in the Dock, breaking visual consistency and making app recognition slower in dark mode. Observed behavior: • Icons without dark assets are displayed in their original light version. • Some apps (e.g. Final Cut Pro) show a gray border treatment that feels inconsistent with the rest of the UI. • The fallback applied in Betas 1–3 is completely absent. Expected behavior: System should provide a fallback rendering until developers supply proper dark assets, or offer a toggle in System Settings → Appearance (e.g. “Force Dark Icons”). This is still present in Beta 7. Is there any plan to restore the fallback mechanism or provide a user option?
Topic: Design SubTopic: General
Replies
0
Boosts
0
Views
330
Activity
Aug ’25
Rendering Multi-Page PDF with SwiftUI View
I have the following code that renders a one-page PDF: func render() -> URL { let renderer = ImageRenderer(content: pdfView()) let url = URL.documentsDirectory.appending(path: "filename.pdf") renderer.render { size, context in var document = CGRect(x: 0, y: 0, width: 2550, height: 3300) guard let pdf = CGContext(url as CFURL, mediaBox: &document, nil) else { return } pdf.beginPDFPage(nil) context(pdf) pdf.endPDFPage() pdf.closePDF() } return url } func pdfView() -> some View { Text("View") } How can this be modified so that it renders a PDF with more than one page?
Replies
2
Boosts
0
Views
745
Activity
Feb ’26
During Apple subscription renewals in the sandbox environment, why isn't Apple's server sending the server-to-server notifications to our backend?
We're using StoreKit for in-app purchases on iOS, and our backend has the server notification URL configured. However, during subscription renewals, Apple's server doesn't send any requests to our endpoint. What could be causing this?
Topic: Design SubTopic: General
Replies
1
Boosts
0
Views
468
Activity
Jul ’25
SF Symbols Variable Draw without the background.
Is it possible to use the new variable draw feature for a custom SF Symbol without it leaving the background behind it when it is not drawn? I am trying to make a tally icon that is drawn with the variable draw, but it doesn't look good if the tally is visible in the background before it is drawn.
Topic: Design SubTopic: General Tags:
Replies
0
Boosts
0
Views
126
Activity
Jun ’25
Nearby Accessory
Can the vehicle‑side UWB module, acting as a Nearby Accessory, perform ranging with multiple iOS phones simultaneously while iOS cell uses background ranging with the vehicle‑side UWB (which involves BLE GATT services)? I mean, when the IOS cell works in the background, it will read the nearby gatt characteristic automatically. If there were multiple phones perform ranging with the accessory, the read characteristic from the accessory side, what shall its content be? Or does the accessory only perform ranging with one phone at a time?
Topic: Design SubTopic: General
Replies
0
Boosts
0
Views
545
Activity
Feb ’26
NavigationTitle in LiquidGlass style
Hello everyone. I want to do navigationTitle (located on the top side on MacOS system) in LiquidGlass style. now my solution look like: just black rectangle. But i want like this: opacity and LiquidGlass. Like in Photo app in MacOS. Please help me, thank you in advance. My code: struct RootView: View { @Environment(\.horizontalSizeClass) var hSize var body: some View { if hSize == .regular { DesktopLayout() .navigationTitle("title") .toolbarBackground(.ultraThinMaterial, for: .automatic) } else { MobileLayout() } } }
Replies
1
Boosts
0
Views
736
Activity
Mar ’26
First attempt at a PKPass
This is my first attempt at creating a Wallet pass, actually a generic store card. When I see it with Pass Viewer on macOS, I get 1 look, when I see it with the iPhone simulator or iPhone proper, I get a different view. Neither is what I was hoping for, a simple vertical layout of an address. Could someone steer me in the correct direction? My json: "formatVersion": 1, "passTypeIdentifier": "pass.org.danleys.4KSBarcode", "serialNumber": "__SERIAL__", "teamIdentifier": "----", "organizationName": "4 K.I.D.S. Sake", "description": "4KSBarcode", "logoText": "4 K.I.D.S. Sake", "foregroundColor": "rgb(255, 255, 255)", "backgroundColor": "rgb(255,0,0)", "storeCard" : { "primaryFields" : [ { "key" : "ClientID", "label" : "", "value" : "" } ], "auxiliaryFields": [ { "key": "street", "label": "Address", "value": "339 Remington Blvd" }, { "key": "city", "label": "", "value": "Bolingbrook, IL 60440" } ] }, "barcode": { "format": "PKBarcodeFormatCode128", "message": "__SERIAL__", "altText": "__SERIAL__", "messageEncoding": "iso-8859-1" } } On macOS: On iOS: Thank you. Ed
Topic: Design SubTopic: General Tags:
Replies
2
Boosts
0
Views
1.4k
Activity
Mar ’26
Newish developer scoping error question.
I'm coding an iPhone app using Swift and I'm getting this scoping error. Attached.
Topic: Design SubTopic: General Tags:
Replies
1
Boosts
0
Views
247
Activity
Jul ’25
I need a coding design team.
Hi friends, I need a design and coding team to publish a fintech app. Can anyone help me with this?
Topic: Design SubTopic: General
Replies
1
Boosts
0
Views
1.1k
Activity
Mar ’26
iOS 27 feature suggestion
I am requesting a dedicated toggle in Settings > Display & Brightness (or Accessibility) to enable/disable the Liquid Glass UI effects so that I am able to get frosted glass thingy effect that was in iOS 18 back.
Topic: Design SubTopic: General Tags:
Replies
1
Boosts
0
Views
1.1k
Activity
Mar ’26
Stacked-sheets vs. nav-stack-in-a-sheet for navigation hierarchies on top of a map
I couldn't help noticing that the Maps and Find My apps make extensive use of "sheets stacked on top of each other" to represent its navigation hierarchy, with a "new content comes in from the bottom" orientation instead of a navigation stack with "new content comes in from the right side" oriented transitions. I'm interested in this topic because I have a similar navigation-hierarchy-over-a-map case in my app (with a custom map view though) and I'm torn back and forth between the approach of replicating the "stacked sheets" vs. putting a navigation stack in a sheet, esp. with the navstack approach being way more attainable with the iOS 26 glass design. I couldn't find any guidance for this kind of UI in the Human Interface Guidelines; I'm leaning towards the navstack-approach for my app; but in terms of the behavior of the SwiftUI container views in this scenario it seems a little bit of an uphill path. Any thoughts on what pattern should be preferred for presenting a deep navigational hierarchy on top of a map-like view?
Topic: Design SubTopic: General
Replies
1
Boosts
0
Views
321
Activity
Jul ’25
About VisionOS HUD
In Apple Vision Pro, I want to implement a HUD page similar to the one in Medivis' SuricalAR product (i.e. the UI is fixed on the screen field of view rather than in space). How should I do it?
Replies
1
Boosts
0
Views
153
Activity
Jun ’25
App multiple times rejected - 4.3.0 Design: Spam
Hello everyone, I’m looking for some advice or shared experiences regarding an app rejection under App Store Review Guideline 4.3(b) – Design – Spam. Our app was rejected and, after an appeal to the App Review Board, Apple maintained that the app “duplicates the content and functionality of similar apps in a saturated category.” We strongly disagree with this classification and are struggling to understand how Guideline 4.3(b) has been applied in our case. The app was developed as an original product: Custom-designed content (including original cards and interactions) A unique visual style and UI A distinct interaction flow focused on encouraging social interaction between users This was not a template-based or reskinned app, nor is it part of a series of similar submissions. We fully respect the App Store Review Guidelines and are open to making adjustments to better align with them. However, what we find difficult is the lack of specific, actionable feedback. We have not received clear guidance on which exact elements are considered duplicative or what changes would meaningfully address the concern. Some of the questions we are hoping the community can help with: In your experience, what typically triggers a 4.3(b) rejection in cases like this? Are there specific mechanics, terminology, or presentation choices that reviewers often interpret as problematic? Have others successfully resolved a 4.3(b) rejection without completely abandoning their app concept? We have already invested significant time and resources into this project, and being advised to create an entirely new app is not financially feasible for us. We are genuinely trying to understand how to proceed in a way that is constructive and compliant. Any insights, experiences, or advice would be greatly appreciated. Thank you in advance. — Lars
Topic: Design SubTopic: General Tags:
Replies
3
Boosts
0
Views
1.7k
Activity
Mar ’26