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.

All subtopics
Posts under Design topic

Post

Replies

Boosts

Views

Activity

Helvetica issues
Helvetica (17.0d1e1) has bugs, hopefully the developers and designers will fix it. Link to the presentation: https://drive.google.com/file/d/16qfpo9Y7Psghv5c_Xl3JBiTPkP4QNaaS/view?usp=sharing
Topic: Design SubTopic: General Tags:
0
0
364
Jan ’25
How do I use the Figma macOS Sequoia UI Kit?
Question: Guide for Using Apple's macOS Sequoia UI Kit in Figma? I recently discovered that Apple has published a "macOS Sequoia UI Kit" on their Figma profile: https://www.figma.com/@apple As someone new to both UI kits in Figma and Mac app development, I'm looking for guidance on how to use this UI kit when designing a Mac app. Does anyone know if such a resource exists? I haven't been able to find one so far. Background I started developing a new macOS app about a month ago and have a basic working version with early functionality. I've realized I need to take a step back and create visual prototypes to inform where to invest future development time. The Sequoia UI Kit seems like it could be helpful, but I'm unsure how to use it. iOS but not macOS There are several tools available for designing iOS apps: https://createwithplay.com/ https://www.judo.app/ https://detailspro.app/ However, I'm not aware of similar tools specifically for macOS application design. Direction Apple publishes design UI kits for both Figma and Sketch. I want to avoid paying for Sketch (this is a hobby project), so I'm focusing on the Figma option. Ideally, I'd love to see the iOS-focused tools mentioned above support macOS design fully. Until then (if ever), I'm hoping to make the most of the Sequoia UI Kit in Figma. Any guidance or resources would be greatly appreciated!
Topic: Design SubTopic: General Tags:
0
0
876
Oct ’24
Design Challenges with persistent toast message
I have an ongoing activity in progress. Think of: a delivery in progress house internet reboot in progress some water / electricity / internet / tv outage. (food) order processing I want to show a persistent toast message above the tab bar, across all tabs and screens across the app. It could take 15 minutes until the activity is finished. Obviously there's a challenge of: accessibility content overlaying with each other extra engineering effort. What we've thought of doing is: Option1: show a toast message, but when a modal is presented then it presents on top of the toast message. The toast message no longer updates itself. Once the modal is finished, then the toast message re-appears and continues to update. Option2: keep the toast message across all tabs and modals and work through the challenges mentioned Question: What are some other design approaches that could be taken to persist an ongoing activity (much like 'Live Activity', but just across the app when it's in foreground) or what are some design reasons that the two options considered are bad?
0
0
169
May ’25
Animating items between a VStack and a ZStack?
Hey there! I'd love to know if theres a way where you can animate items between ZStack and VStacks? Just like the native iOS notifications on the Lockscreen stack at the bottom and if tapped, they convert from a Stack to a List - I have a list with items, displayed in a VStack, and I make the list collapsable when swiping down, where the items stack behind eachother with a progresisve reduction in opacity & scale, but I havent figured out a way to animate the items between the list and the stack - where you can visually see items starting to overlap and stack ontop of eachother when collapsing the list.
0
0
119
May ’25
NSStatusItem Visibility Issue in AU Audio Plugin - Logic Pro vs Other Hosts
Target: MacOS 11.1 and above C++, Juce 8, XCode 16.2 Testing: Sonoma 14.5 Logic Pro (latest version), Reaper 7.34, Pro Tools 2023.12 and 2025.6 I'm developing an audio plugin that creates an NSStatusItem ("menu bar status icon" or MBSI for short) to provide visual feedback for one of the components. I've encountered a Logic Pro-specific behavior that I'd like to fix. I'm building for Mac-only, Intel and Silicon, and for AU/VST3/AAX. Summary: The NSStatusItem for the MBSI is created successfully and functions properly in some hosts (Reaper (AU and VST3), Pro Tools (AAX)) but isn't visible in Logic Pro, despite identical API behavior. Details: NSStatusItem Creation: implementation using [[NSStatusBar systemStatusBar] statusItemWithLength:NSSquareStatusItemLength] All API calls report success in both working (Reaper) and non-working (Logic Pro) hosts. Logging shows Logic Pro and Reaper create the NSStatusItem with the same properties: Window frame: {{0, -36}, {38, 36}} (both hosts) statusItem.visible: YES (both hosts) Button exists and responds to state changes (both hosts) Y coordinate is -36 pixels (above visible screen, both hosts) In Reaper, I can see the MBSI but in Logic Pro I can't. Note: the MBSI has no functionality beyond visual feedback. It's not clickable nor does it create a corresponding menu. Questions: Are there known differences in how Logic Pro's AU hosting service handles system UI elements compared to other hosts? And if so, is there guidance on AU plugins accessing system UI elements like the menu bar? Link to NSStatusItemTest.component: https://app.box.com/s/i3rq0hii3qf43iojrayc17fsfq7fnssd Link to video showing issue: https://app.box.com/s/icefqk898timqov77t468lqtio0rjqul Link to Console output for testing in Reaper vs Logic Pro: https://app.box.com/s/ph6nv1lmozo3phtjx3md6abdms5atgg6
Topic: Design SubTopic: General Tags:
0
0
265
Jul ’25
Question:evaluatedPolicyDomainState
Hello, Apple developer, I found in the documentation that the evaluatedPolicyDomainState API has been deprecated in iOS 18. In my project, many users rely on this value for comparison. I would like to ask, what does it mean that this API is deprecated? Will the value returned by this API be empty in the future? How should I adapt for existing users?" Let me know if you'd like any adjustments! Thank you. Good luck. [[context evaluatedPolicyDomainState] bytes]
0
0
525
Dec ’24
(tvOS) Categories or Selection Menus Don't Fit the Design
Hi everyone, I'm currently working on my own Apple TV app. So far, things are going pretty well, but right now, I'm stuck on the design of the categories or selection menus. Here's a screenshot of how it looks right now: The green color and the border are intentionally added for now so I can see what is where. My actual goal is to remove the gray bar (or is this the "main bar"?). The pink bar and its border are just design elements that can be removed if needed. I want it to look more "original," like this: Here is the code: let title: String let isSelected: Bool var body: some View { HStack { Text(title) .foregroundColor(isSelected ? .black : .white) .font(.system(size: 22, weight: .regular)) .padding(.leading, 20) Spacer() Image(systemName: "chevron.right") .foregroundColor(isSelected ? .black : .gray) .padding(.trailing, 20) } .frame(height: 50) // Einheitliche Höhe für die Kategorien .background(Color.pink) // Innerer Hintergrund auf pink gesetzt .cornerRadius(10) // Abrundung direkt auf den Hintergrund anwenden .overlay( RoundedRectangle(cornerRadius: 10) .stroke(Color.green, lineWidth: 3) // Äußerer Rahmen auf grün gesetzt ) .padding(.horizontal, 0) // Entferne äußere Ränder .background(Color.clear) // Entferne alle anderen Hintergründe } } struct SettingsView_Previews: PreviewProvider { static var previews: some View { SettingsView() } } I’ve adjusted the code, but it’s still not quite right. When a category is not selected, it appears black instead of gray, like in the original design Here is the code: struct SettingsView: View { @State private var selectedCategory: String? var body: some View { NavigationStack { ZStack { Color.black .edgesIgnoringSafeArea(.all) VStack(spacing: 0) { // Überschrift oben in der Mitte Text("Einstellungen") .font(.system(size: 40, weight: .semibold)) .foregroundColor(.white) .padding(.top, 30) HStack { // Linke Seite mit Logo VStack { Spacer() Image(systemName: "applelogo") .resizable() .scaledToFit() .frame(width: 120, height: 120) .foregroundColor(.white) Spacer() } .frame(width: UIScreen.main.bounds.width * 0.4) // Rechte Seite mit Kategorien VStack(spacing: 15) { ForEach(categories, id: \.self) { category in NavigationLink( value: category, label: { SettingsCategoryView( title: category, isSelected: selectedCategory == category ) } ) .buttonStyle(PlainButtonStyle()) } } .frame(width: UIScreen.main.bounds.width * 0.5) } } } .navigationDestination(for: String.self) { value in Text("\(value)-Ansicht") .font(.title) .foregroundColor(.white) .navigationTitle(value) } } } private var categories: [String] { ["Allgemein", "Benutzer:innen und Accounts", "Video und Audio", "Bildschirmschoner", "AirPlay und HomeKit", "Fernbedienungen und Geräte", "Apps", "Netzwerk", "System", "Entwickler"] } } struct SettingsCategoryView: View { let title: String let isSelected: Bool var body: some View { HStack { Text(title) .foregroundColor(.white) .font(.system(size: 22, weight: .medium)) .padding(.leading, 20) Spacer() Image(systemName: "chevron.right") .foregroundColor(.gray) .padding(.trailing, 20) } .frame(height: 50) // Einheitliche Höhe für die Kategorien .background(isSelected ? Color.gray.opacity(0.3) : Color.clear) // Hervorhebung des ausgewählten Elements .cornerRadius(8) // Abgerundete Ecken .scaleEffect(isSelected ? 1.05 : 1.0) // Fokus-Animation .animation(.easeInOut, value: isSelected) } } struct SettingsView_Previews: PreviewProvider { static var previews: some View { SettingsView() } }
0
0
534
Jan ’25
Multi layer delegate table missing
I recently detected a special crash on 18.0, 18.1, 18.1.1, 18.2,18.3 which cannot be repeated, and the page logs are related to the keyboard, is there any idea to deal with this problem? Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x00000000 at 0x0000000000000000 Crashed Thread: 0 CrashDoctor Diagnosis: Application threw exception NSInternalInconsistencyException: Multi layer delegate table missing. Thread 0 Crashed: 0 CoreFoundation 0x000000018fa487cc __exceptionPreprocess + [ : 164] 1 libobjc.A.dylib 0x000000018cd1b2e4 objc_exception_throw + [ : 88] 2 Foundation 0x000000018ee188d8 _userInfoForFileAndLine 3 UIKitCore 0x0000000192ee8074 -[UIView _multiLayerDelegatesTableCreateIfNecessary:] + [ : 208] 4 UIKitCore 0x0000000192ee80c4 -[UIView _registerMultiLayerDelegate:] + [ : 36] 5 UIKitCore 0x00000001924f74c0 -[_UIPortalView setSourceView:] + [ : 132] 6 UIKitCore 0x000000019325b6bc -[_UIPortalView initWithSourceView:] + [ : 68] 7 UIKitCore 0x0000000193283ea4 -[_UITextMagnifiedLoupeView initWithSourceView:] + [ : 444] 8 UIKitCore 0x000000019373461c +[UITextLoupeSession _makeLoupeViewForSourceView:selectionWidget:orientation:] + [ : 84] 9 UIKitCore 0x00000001937347bc +[UITextLoupeSession _beginLoupeSessionAtPoint:fromSelectionWidgetView:inView:orientation:] + [ : 304] 10 UIKitCore 0x0000000192dc0ce0 -[UITextRefinementTouchBehavior textLoupeInteraction:gestureChangedWithState:location:translation:velocity:modifierFlags:shouldCancel:] + [ : 1756] 11 UIKit 0x0000000249cc89e0 -[UITextRefinementTouchBehaviorAccessibility textLoupeInteraction:gestureChangedWithState:location:translation:velocity:modifierFlags:shouldCancel:] + [ : 216] 12 UIKitCore 0x00000001935445b4 -[UITextRefinementInteraction loupeGestureWithState:location:translation:velocity:modifierFlags:shouldCancel:] + [ : 124] 13 UIKitCore 0x0000000193543f74 -[UITextRefinementInteraction loupeGesture:] + [ : 548] 14 UIKitCore 0x000000019259eac4 -[UIGestureRecognizerTarget _sendActionWithGestureRecognizer:] + [ : 128] 15 UIKitCore 0x000000019259e934 _UIGestureRecognizerSendTargetActions + [ : 92] 16 UIKitCore 0x000000019259e6f4 _UIGestureRecognizerSendActions + [ : 284] 17 UIKitCore 0x0000000192251b28 -[UIGestureRecognizer _updateGestureForActiveEvents] + [ : 572] 18 UIKitCore 0x0000000192223724 _UIGestureEnvironmentUpdate + [ : 2488] 19 CoreFoundation 0x000000018f9ea1f4 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + [ : 36] 20 CoreFoundation 0x000000018f9e9f98 __CFRunLoopDoObservers + [ : 552] 21 CoreFoundation 0x000000018fa19028 __CFRunLoopRun + [ : 948] 22 CoreFoundation 0x000000018fa18830 CFRunLoopRunSpecific + [ : 588] 23 GraphicsServices 0x00000001db9f81c4 GSEventRunModal + [ : 164] 24 UIKitCore 0x000000019257eeb0 -[UIApplication _run] + [ : 816] 25 UIKitCore 0x000000019262d5b4 UIApplicationMain + [ : 340] 26 顺丰小哥 0x00000001042c7cc0 main + [main.m : 13] 27 (null) 0x00000001b5406ec8 0x0 + 7335866056
Topic: Design SubTopic: General
0
0
374
Dec ’24
iOS 26 UIBarButtonItem badge
I'm using the new badge feature for UIBarButtonItem, but it's not working properly for me when transitioning between view controllers. I have two view controller with various right bar button items. In the first view controller the first button (the one with the bell) has a badge with a numeric count. The second view controller has the same button but in the third position. When I push the second view controller, it seems that the badge maintains also the old position, so I see two buttons with badges instead of one. What can I do to fix this?
Topic: Design SubTopic: General Tags:
0
1
703
3w
Suggestion: Add App Notification Filter Slider to Notification Center
Add slim horizontal bar at the top of the Notification Center that displays the apps with current notifications, along with a badge showing the number of notifications for each app. Each app icon is clickable, allowing users to filter the Notification Center and view only the notifications from the selected app. The first button in the slider should be “All” to show all notifications, followed by app icons (Excluding notifications summary) This bar Appears only when notifications are from more than one app. Hidden if there’s only one app in Notification Center (no need to filter). Benefits: Better organization: Helps users quickly identify which apps have unread notifications. Reduced distraction: Allows focusing on notifications from one app at a time. Easier navigation: Especially helpful when notifications from multiple apps are mixed together by time. Faster interaction: Saves time by letting users jump directly to the relevant group of grouped or multiple notifications.
Topic: Design SubTopic: General
0
1
47
Jun ’25
3d Color Profile Crash (Cinema 4d + Redshift)
Hello friends, We are about to launch new app where we want to implement 3d animations that we designed in Cinema 4d and rendered it in Redshift render engine. We worked with sRGB color profile and ACEScg colors profile which both works fine and display correct on Windows machines, but we got to the point where nothing is correct on Apple devices – simply we lost our colors, apple devices displays our 3d animation in a wrong way, since windows works fine. Does anyone know the best workflow from Cinema 4d + Redshift + After Effects to match same colors on both systems and everywhere? We already tried youtube, adobe support, exporting it in EXR, PNG, JPG, LINEAR, TIFF, MP4 etc. – Importing it to After effects with sRGB workflow and ACEScg – it doesnt't work on Macbook, ipad, iphone etc. Please help CHRIS
Topic: Design SubTopic: General Tags:
0
0
465
Nov ’24
Icon Composer for visionOS and tvOS
As of right now Icon Composer does not support creating app icons for visionOS and tvOS. It appears that only system apps can provide glass icons for those platforms. How should developers handle this? In extreme cases, the flat icon on those platforms will look wildly different from their glass counterparts. From what I have seen visionOS and tvOS also do not apply any automatic treatment like on iOS where legacy icons get a glass effect. So, third party app icons are just going to look out of place for (hopefully just) a year on those platforms? What is the recommended approach here? You could obviously fake the effect, but I feel like that would be worse.
0
0
166
Aug ’25
Clarification on ATT Dialog and Displaying Ads in iOS App
Hello everyone, I have recently published my app on the App Store and am planning to implement ads. I have a couple of questions regarding Apple's App Tracking Transparency (ATT) framework and best practices for integrating ads. ATT Dialog and Showing Ads: If a user selects "Ask App Not to Track" on the ATT dialog, am I still allowed to show ads in my app? I understand that ATT restricts tracking for personalized ads, but does this mean I cannot show any ads at all, or is it just the personalized (targeted) ads that are restricted? Best Practices for Implementing Native Ads: I want to integrate native ads into my app. Could you share any best practices or guidelines for integrating native ads in a way that provides a good user experience and complies with Apple's policies? I’m especially interested in how to implement them in a non-intrusive way and what ad networks are best for this type of integration. Thanks for your help!
0
0
604
Nov ’24
Question about the platform parameter in device registration
https://developer.apple.com/documentation/appstoreconnectapi/devicecreaterequest/data-data.dictionary/attributes-data.dictionary According to the API documentation above, the parameter values for platform can be three: IOS, MAC-OS, and UNIVERSAL. After debugging, it was found that IOS and MAC-OS can be used normally, but UNIVERSAL encountered an error UNIVERSAL' is not a valid value for the attribute 'platform'. Expected one of: 'IOS', 'MAC_OS', I would like to know if this value has been deprecated or if the API interface requires new version support, and how to use this value! Please help me solve it! thank you!
Topic: Design SubTopic: General
0
1
297
Aug ’25
Maintain app icon contrast when switching to grayscale mode
Context & Issue I am developing an iOS application. My app icon uses colors that are relatively close to each other. When the user enables Accessibility → Display & Text Size → Color Filters → Grayscale (or similar modes), the icon becomes harder to distinguish because it loses color and contrast is reduced. Goal When iOS switches to grayscale mode, I want the app icon to maintain good contrast between its elements so it remains clearly recognizable. What I’ve tried Redesigned the icon with more contrasting colors. Added strokes/outlines, but it still doesn’t look much better in grayscale. Researched how iOS renders app icons when grayscale is enabled, but couldn’t find a way to override or provide an alternative icon. Specific questions Is there any API or mechanism in iOS that allows providing a different version of the app icon when the user has grayscale mode enabled? If there’s no direct API, are there any best practices for designing iOS app icons to ensure good contrast when converted to grayscale? Do we have to design grayscale version for app icon? Thank you!
0
0
218
Aug ’25
Section Header Overlaps with Cell Text in Plain List Style on iOS 26
Hi everyone, I've noticed that on iOS 26 beta 1 through beta 4, when using a List with the .plain style, the section header overlaps with the cell content below it, as there is no background for the header. This creates a poor visual experience. Additionally, when using NavigationSplitView on iPad, the second column's list always shows this issue. Is this an intentional design change, or just a temporary issue? I haven't found a good workaround so far. Thanks! FB19066489
0
1
559
Jul ’25
Is it mandatory for gambling apps to provide guest login functionality?
Hello everyone, I am currently developing a gambling app and would like to ask if anyone has relevant experience or knowledge regarding whether it is necessary to require users to log in immediately when launching the app? Or is it permissible to offer a "guest mode" for users to try out the app before requiring them to log in? Does this comply with the policies of Apple or Google Play? Thank you all for your guidance!
Topic: Design SubTopic: General Tags:
0
0
340
Oct ’24
Presented viewController size shink in iPad after iOS 18
We present a viewController by embedding it into a UINavigationController and then presenting that navigation controller. let navigationController = UINavigationController(rootViewController: invCreateIssueViewController) self.present(navigationController, animated: true) The size of the presented view controller has reduced a lot in ipad in iOS 18. How do I get the same full screen presentation as iOS 17 in iOS 18?
Topic: Design SubTopic: General
0
0
335
Oct ’24
Apple Music fullscreen artist not showing
In Apple Music I opened fullscreen for a song and I accidentally clicked some keys and the name and artist name of the song I was playing disappeared, and I can't figure out how to get it back, it temporarily comes back when I hover over the top bar but I can not get it to stay there permanently.
Topic: Design SubTopic: General Tags:
0
0
50
Jun ’25