Create elegant and intuitive apps that integrate seamlessly with Apple platforms.

All subtopics
Posts under Design topic

Post

Replies

Boosts

Views

Activity

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
267
Aug ’25
Ignore Home Screen Tint/Accents in Colored Components
I'm having some trouble getting my widget to display how I want when the user has a tint applied to their home screen. The issue I'm having is with a Text() element, as well as a LinearGradient I am displaying on top of my image. The text should always be white, and the gradient is always black with varying levels of opacity. I've managed to fix this issue with images displayed in my widget by leveraging widgetAccentedRenderingMode(.fullColor) however, there does not seem to be an equivalent of this for non-Image components. I'm aware of .widgetAccentable(false) but as I understand it, elements are already considered not accentable by default and you need to explicitly declare widgetAccentable(true) to add them to the accent group. I've tried specifying this to be false up and down my view hierarchy just to see if something will stick but no luck. Are there any other levers I can pull to preserve the declared colors for my text and gradient components? The images I am displaying is album artwork where preserving the original image is integral, but the tinted text color and overlaid gradient often clash or just looks bad in general. Is there a solution for colored primitive elements?
0
0
110
Aug ’25
Menu view flashes white before closing when device is set to dark appearance
Feedback ID: FB19846667 When dismissing a Menu view when the device is set to dark appearance, there is a flash of lightness that is distracting and feels unnatural. This becomes an issue for apps that rely on the user interacting with Menu views often. When using the overflow menu on a toolbar, the effect of dismissing the menu is a lot more natural and there is less flashing. I expect a similar visual effect when creating Menu views outside of a toolbar. Has anyone found a way around this somehow? Comparison between dismissing a menu and a toolbar overflow: https://www.youtube.com/shorts/H2gUQOwos3Y Slowed down version of dismissing a menu with a visible light flash: https://www.youtube.com/shorts/MBCCkK-GfqY
0
0
180
Aug ’25
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
754
Sep ’25
iOS 26: UITabBarItem.isEnabled = false no longer prevents selection (works on iOS 18)
Code that disables a tab bar item via UITabBarItem.isEnabled = false used to both grey out the item and block taps on iOS 18. On iOS 26, the item often remains tappable and selectable, even though isEnabled is set to false. This looks like a behavior change or regression. func disableTabbarItems(tabbar: UITabBarController, isEnable: Bool, index: Int) { if let tabItems = tabbar.tabBar.items { let tabItem = tabItems[index] tabItem.isEnabled = isEnable } ![]("https://developer.apple.com/forums/content/attachment/a3c0bafb-2b10-44c3-8d76-d31bd83f30f7" "title=iOS 18.jpg;width=1179;height=279") } ![]("https://developer.apple.com/forums/content/attachment/4bbaccf3-292b-4790-b272-0d9809ba2949" "title=iOS 26.jpg;width=828;height=196")
0
0
46
Sep ’25
Manage Safari 26 top bar transparency (Mac)
Hello from Leipzig, Germany! I noticed that when vertically scrolling in Safari 26 on my Mac, the content of the website I am currently working on is visible in the tab and URL bar with a liquid glass effect. I then looked at various other websites. Some websites have an opaque top bar. Some websites have a transparent top bar where content is visible when scrolling. On the Apple website, the top bar is opaque in light mode but transparent in dark mode. Unfortunately, I can't find a way to control this behavior. Has anyone found out more about this?
0
0
221
Sep ’25
Windows Apple Music: how to enumerate the local library or export it? Is Library.musicdb documented / API available?
Environment Windows 11 [edition/build]: [e.g., 23H2, 22631.x] Apple Music for Windows version: [e.g., 1.x.x from Microsoft Store] Library folder: C:\Users<user>\Music\Apple Music\Apple Music Library.musiclibrary Summary I need a supported way to programmatically enumerate the local Apple Music library on Windows (track file paths, playlists, etc.) for reconciliation with the on-disk Media folder. On macOS this used to be straightforward via scripting/export; on Windows I can’t find an equivalent. What I’m seeing in the library bundle Library.musicdb → not SQLite. First 4 bytes: 68 66 6D 61 ("hfma"). Library Preferences.musicdb → also starts with "hfma". artwork.sqlite → SQLite but appears to be artwork cache only (no track file paths). Extras.itdb → has SQLite format 3 header but (from a quick scan) not seeing track locations. Genius.itdb → not a SQLite database on this machine. What I’ve tried Attempted to open Library.musicdb with SQLite providers → error: “file is not a database.” Binary/string scans (ASCII, UTF-16LE/BE, null-stripped) of Library.musicdb → did not reveal file paths or obvious plist/XML/JSON blobs. The Windows Apple Music UI doesn’t appear to expose “Export Library / Export Playlist” like legacy iTunes did, and I can’t find a public API for local library enumeration on Windows. What I’m trying to accomplish Read local track entries (absolute or relative paths), detect broken links, and reconcile against the Media folder. A read-only solution is fine; I do not need to modify the library. Questions for Apple Is the Library.musicdb file format documented anywhere, or is there a supported SDK/API to enumerate the local library on Windows? Is there a supported export mechanism (CLI, UI, or API) on Windows Apple Music to dump the local library and/or playlists (XML/CSV/JSON)? Is there a Windows-specific equivalent to the old iTunes COM automation or any MusicKit surface that can return local library items (not streaming catalog) and their file locations? If none of the above exist today, is there a recommended workaround from Apple for library reconciliation on Windows (e.g., documented support for importing M3U/M3U8 to rebuild the local library from disk)? Are there any plans/timeline for adding Windows feature parity with iTunes/Music on macOS for exporting or scripting the local library? Why this matters For large personal libraries, users occasionally end up with orphaned files on disk or broken links in the app. Without an export or API, it’s difficult to audit and fix at scale on Windows. Reference details (in case it helps triage) Library.musicdb header bytes: 68-66-6D-61-A0-00-00-00-10-26-34-00-15-00-01-00 (ASCII shows hfma…). artwork.sqlite is readable but doesn’t contain track file paths (appears limited to artwork). I can supply a minimal repro tool and logs if that’s helpful. Feature request (if no current API) Add an official Export Library/Playlists action on Windows Apple Music, or Provide a read-only Windows API (or schema doc) that surfaces track file locations and playlist membership from the local library. Thanks in advance for any guidance or pointers to docs I might have missed.
0
0
193
Sep ’25
SSC Distinguished Winner here😃! I created the1st game 100 % using Apple Pencil to interact. Interested in joining our DC?
Hey everyone, I'm beyond excited to share that I've been selected as a Distinguished Winner in this year's Swift Student Challenge! 🎉 It all started last summer, in the middle of a Western Culture class. I was zoning out , and my attention drifted to the Apple Pencil in my hand. And then ,it hit me — this thing is literally a next-level game controller. Think about it: pixel-perfect precision, haptic feedback, multiple built-in sensors... Why aren't we using this for gaming? And that got me thinking — why have we spent the last 500 years treating the "pencil" as just a tool for creation, and not for play? Since graphite pencils were invented in 1564, we've had this incredibly natural way to interact with 2D and 3D space... and nobody's fully tapped into it for games. So, I did something about it. I built a game that's 100% controlled by the Apple Pencil yep, just the Pencil. I know what you're thinking: "How does that even work??" And honestly, I'd love to tell you... but I'm in the final stages of getting it onto the App Store, and it should be live within the next couple of weeks. So for now... 🤐😄 In the meantime, I've set up a Discord server for anyone who's curious about the gameplay, the design, or just wants to brainstorm ideas with me. If you're into creative controls, game design, or just want to hang — come join the conversation! [Join the Discord here!] https://discord.gg/5Rm8WKbekf Can't wait to share more soon!
0
0
239
Sep ’25
Extra unwanted space in main window
Hi there! I'm having this issue with my main windows. I'm having a big space on top of that without any logic explanation (at least for my poor knowledge). Using the code below I'm getting this Windows layout: Does anybody have any guidance on how to get out that extra space at the beginning? Thanks a lot! import SwiftUI import SwiftData #if os(macOS) import AppKit #endif // Helper to access and control NSWindow for size/position persistence #if os(macOS) struct WindowAccessor: NSViewRepresentable { let onWindow: (NSWindow) -> Void func makeNSView(context: Context) -> NSView { let view = NSView() DispatchQueue.main.async { if let window = view.window { onWindow(window) } } return view } func updateNSView(_ nsView: NSView, context: Context) { DispatchQueue.main.async { if let window = nsView.window { onWindow(window) } } } } #endif @main struct KaraoPartyApp: App { @StateObject private var songsModel = SongsModel() @Environment(\.openWindow) private var openWindow var body: some Scene { Group { WindowGroup { #if os(macOS) WindowAccessor { window in window.minSize = NSSize(width: 900, height: 700) // Configure window to eliminate title bar space window.titleVisibility = .hidden window.titlebarAppearsTransparent = true window.styleMask.insert(.fullSizeContentView) } #endif ContentView() .environmentObject(songsModel) } .windowToolbarStyle(.unifiedCompact) .windowResizability(.contentSize) .defaultSize(width: 1200, height: 900) .windowStyle(.titleBar) #if os(macOS) .windowToolbarStyle(.unified) #endif WindowGroup("CDG Viewer", id: "cdg-viewer", for: CDGWindowParams.self) { $params in if let params = params { ZStack { #if os(macOS) WindowAccessor { window in window.minSize = NSSize(width: 600, height: 400) // Restore window frame if available let key = "cdgWindowFrame" let defaults = UserDefaults.standard if let frameString = defaults.string(forKey: key) { let frame = NSRectFromString(frameString) if window.frame != frame { window.setFrame(frame, display: true) } } else { // Open CDG window offset from main window if let mainWindow = NSApp.windows.first { let mainFrame = mainWindow.frame let offsetFrame = NSRect(x: mainFrame.origin.x + 60, y: mainFrame.origin.y - 60, width: 800, height: 600) window.setFrame(offsetFrame, display: true) } } // Observe frame changes and save NotificationCenter.default.addObserver(forName: NSWindow.didMoveNotification, object: window, queue: .main) { _ in let frameStr = NSStringFromRect(window.frame) defaults.set(frameStr, forKey: key) } NotificationCenter.default.addObserver(forName: NSWindow.didEndLiveResizeNotification, object: window, queue: .main) { _ in let frameStr = NSStringFromRect(window.frame) defaults.set(frameStr, forKey: key) } } #endif CDGView( cancion: Cancion( title: params.title ?? "", artist: params.artist ?? "", album: "", genre: "", year: "", bpm: "", playCount: 0, folderPath: params.cdgURL.deletingLastPathComponent().path, trackName: params.cdgURL.deletingPathExtension().lastPathComponent + ".mp3" ), backgroundType: params.backgroundType, videoURL: params.videoURL, cdfContent: params.cdfContent.flatMap { String(data: $0, encoding: .utf8) }, artist: params.artist, title: params.title ) } } else { Text("No se pudo abrir el archivo CDG.") } } .windowResizability(.contentSize) .defaultSize(width: 800, height: 600) WindowGroup("Metadata Editor", id: "metadata-editor") { MetadataEditorView() .environmentObject(songsModel) } .windowResizability(.contentSize) .defaultSize(width: 400, height: 400) WindowGroup("Canciones DB", id: "canciones-db") { CancionesDBView() } .windowResizability(.contentSize) .defaultSize(width: 800, height: 500) WindowGroup("Importar canciones desde carpeta", id: "folder-song-importer") { FolderSongImporterView() } .windowResizability(.contentSize) .defaultSize(width: 500, height: 350) } .modelContainer(for: Cancion.self) // Add menu command under Edit .commands { CommandGroup(replacing: .pasteboard) { } CommandMenu("Edit") { Button("Actualizar Metadatos") { openWindow(id: "metadata-editor") } .keyboardShortcut(",", modifiers: [.command, .shift]) } CommandMenu("Base de Datos") { Button("Ver Base de Datos de Canciones") { openWindow(id: "canciones-db") } .keyboardShortcut("D", modifiers: [.command, .shift]) } } } init() { print("\n==============================") print("[KaraoParty] Nueva ejecución iniciada: \(Date())") print("==============================\n") } }
0
0
59
Nov ’25
TabView Background Color
Hello I'm trying to use a TabView inside of the Sidebar in a NavigationSplitView. I'm wanting to use .listStyle(.sidebar) in order to get the Liquid Glass effect. However I can not find a way to remove the background of the TabView without changing the behavior of the TabView itself to paging with .tabViewStyle(.page) NavigationSplitView { TabView( selection: .constant("List") ) { Tab(value: "List") { List { Text("List") } } } } detail: { } Note: I wanting change the background of the TabView container itself. Not the TabBar.
0
0
84
Nov ’25
SwiftUI: Menu icon will missing if increase preferred text size
iOS simulator version 18.0+ I have a demo like this: Menu { Button { } label: { Text("Option 1") Image(systemName: "star") } Button { } label: { Text("Option 2") Image(systemName: "star") } } label: { Text("Menu") } And I used the tool Accessibility Inspector to modify the text size. Case 1: We could see the option title and the star icon. Case 2: But we could not see the icon, only the option title here Is this by design from Apple? Or does this need to be fixed? Does anyone know about my question?
0
0
72
Nov ’25
Inquiry Regarding Siri–AI Integration Capabilities
: Hello, I’m seeking clarification on whether Apple provides any framework or API that enables deep integration between Siri and advanced AI assistants (such as ChatGPT), including system-level functions like voice interaction, navigation, cross-platform syncing, and operational access similar to Siri’s own capabilities. If no such option exists today, I would appreciate guidance on the recommended path or approved third-party solutions for building a unified, voice-first experience across Apple’s ecosystem. Thank you for your time and insight.
0
0
64
Nov ’25
《维1847933278》腾龙公司游戏怎么下载怎么注册账号
腾龙:----TL 9655. C0M-----创办于1998年,总部位于缅甸掸邦老街,是果敢四大家族之一企业的产业。该集团旗下子公司超过多家,员工达上万余人。明面上主要经营文旅、酒店、房地产等产业,如2019年正式运营的腾龙大酒店,曾是当地最豪华的酒店,同年还启动运营了新天地房地产项目。此外,2023年在佤邦建设的新盛大酒店于2023年正式运营,2023年在新盛大酒店也正式运营。
0
0
163
Nov ’25
App icon not displaying correctly in AppStore
I'm having a strange issue with my iOS app icon rendering in the App Store - it seems to be low-res and clipping part of the image. I updated the icon in Icon Composer to apply the liquid glass overlay for the new build. It looks fine on the device and the asset itself isn't corrupted. I think it might be a resolution issue since the small icon thumbnails in App Store Connect have the same problem, but they look fine when I click through to the larger preview. Has anyone else run into this and figured out a fix?
0
0
81
1w