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

A Summary of the WWDC25 Group Lab - Design
At WWDC25 we launched a new type of Lab event for the developer community - Group Labs. A Group Lab is a panel Q&A designed for a large audience of developers. Group Labs are a unique opportunity for the community to submit questions directly to a panel of Apple engineers and designers. Here are the highlights from the WWDC25 Group Lab for Design. Can you expand on how Liquid Glass helps with navigation and focus in the UI? Liquid Glass clarifies the navigation layer by introducing a single, floating pane that acts as the primary navigation area. Buttons within this pane seamlessly morph as you move between sections, and controls can temporarily lift into the glass surface. While avoiding excessive use of glass (like layering glass on glass), this approach simplifies navigation and strengthens the connection between menus, alerts, and the elements that trigger them. What should I do with customized bars that I might have in my app? Reconsider the content and behavior of customized bars. Evaluate whether you need all the buttons and whether a menu might be a better solution. Instead of relying on background colors or styling, express hierarchy through layout and grouping. This is a good opportunity to adopt the new design language and simplify your interface. What are scroll edge effects, and what options do we have for them? Scroll edge effects enhance legibility in controls by lifting interactive elements and separating them from the background. There are two types: a soft edge effect (a subtle blur) and a hard edge effect (a more defined boundary for high-legibility areas like column sorting). Scroll edge effects are designed to work seamlessly with Liquid Glass, allowing content to feel expansive while ensuring controls and titles remain legible. How can we ensure or improve accessibility using Liquid Glass? Legibility is a priority, and refinements are ongoing throughout the betas. Liquid Glass adapts well to accessibility settings like Reduce Transparency, Increase Contrast, and Reduce Motion. There are two variants of glass: regular glass, designed to be legible by default, and clear glass, used in places like AVKit, which requires more care to ensure legibility. Use color contrast tools to ensure contrast ratios are met. The Human Interface Guidelines (HIG) are a living document offering best practices. The colors and materials pages are key resources. Do you have any recommendations for convincing designers concerned with consistency across Android and Web to use Liquid Glass? Start small and focus on high-utility controls that don't significantly impact brand experience. Native controls offer familiarity and predictability to users. Using the native controls makes sure your app feels at home on the device. Using native frameworks provides built-in accessibility support (dynamic type, reduce transparency, increase contrast). Native controls come with built-in behaviors and interactions. Can ScrollViews include Liquid Glass within them? You can technically put a glass layer inside a scroll view, but it can feel heavy and doesn't align with the system's intention for Liquid Glass to serve as a fixed layer. Think of the content layer as the scrolling layer, and the navigational layer as the one using Liquid Glass. If there is glass on the content layer it will collide into the navigational layer. What core design philosophy guided the direction of iOS 26, beyond the goal of unification? The core design philosophy involved blurring the line between hardware and software, separating UI and navigation elements from content, making apps adaptable across window sizes, and combining playfulness with sophistication. It was about making the UI feel at home on rounded screens. Can we layer Liquid Glass elements on top of each other? Avoid layering Liquid Glass elements directly on top of each other, as it creates unnecessary visual complexity. The system will automatically convert nested glass elements to a vibrant fill style. Use vibrant fills and labels to show control shapes and ensure legibility. Opaque grays should be avoided in favor of vibrant colors, which will multiply with the backgrounds correctly. What will happen to apps that use custom components? Should they be adapted to the new design within the next year? The more native components you use, the more things happen for free. Standard components will be upgraded automatically. Look out for any customizations that might clash. Think about what is the minimum viable change, where your app still feels and looks very similar to what it did. Prioritize changes in core workflows and navigational areas. There are a number of benefits to using native components including user familiarity, built-in accessibility support, and built-in behaviors and interactions. Will Apple be releasing Figma design templates? Sketch kits were published on Monday and can be referenced. The goal is to ensure the resources are well-organized, well-named, and easy to use. It's a high priority.
Topic: Design SubTopic: General
0
0
1.3k
Jun ’25
.Net MAUI (Windows & Mac)
What is the step-by-step process to run an iOS application paired with the Mac in my MAUI project? I am using Windows with Visual Studio 2022 V17.13.5. Application: Multiplatform; Language: C#; Framework: MAUI 8; Xcode: 16.2; Objective: Identify and fix the issue to allow the application to run correctly.
Topic: Design SubTopic: General
0
0
107
May ’25
HotKey support for sandboxed apps
App design: macos, Xcode 16.4, Sequioa 15.5, it is sandboxed Uses: Pods->HotKey for a global hotkey which xcode says "binary compatibility can't be guaranteed" This app is on the Apple Store and supposedly apps on the Apple Store can't use global hotkeys. Someone internally, installed it from the store and the global hotkey works just fine. I'm concerned for two potential problems; I need to find a hotkey library or code that is known to work with a sandbox'd Apple Store app. Why is it working now when everything I have read says it shouldn't.
0
0
115
Jun ’25
Calendar Display App
Hello, I want to make an app that displays the current event(s) (The ones that are ongoing at any given moment) on my Google calendar and shows how far through the event(s) I am with a progress bar, and updates live. I want it to be as simple as possible and don't want it to take up too much space. I have a little window with some text elements and a progress bar that works if you manually put in values. But I still think the window is too big and clunky and I wonder if it's possible to change it's style? I'm a bit inexperienced with coding and am completely new to xcode and swift. What approach would you recommend I take with this project? Or what resources would you refer me to?
Topic: Design SubTopic: General
0
1
403
Jan ’25
Progressive Blur With List
I'm trying to setup my view so that there's (in order from top of display to bottom) a VStack with some content, followed by a List, followed by another VStack with a couple buttons where progressive blurs separate the list and the two VStack's content. Now, in the current version of my app when the user scrolls up or down, the list just cuts off. I'm having a very difficult time maintaining the entire view's vertical positioning while adding these blurs with ZStack. The code below is the current implementation with an attempted progressive blur. Right now, it's close, but the list is acting exactly how I don't want it - anchoring to the top of the display (its natural position) and causes the toolbar to blur when scrolled under (I can't disable toolbar without losing my toolbarItems either). Any help is appreciated. NavigationStack { VStack { ZStack { List(filteredItems) { item in NavigationLink(destination: ItemDetailView(item: item)) { HStack(spacing: 15) { Image(systemName: item.icon) VStack(alignment: .leading) { Text(item.name) Text("") } .multilineTextAlignment(.leading) } .padding(.vertical, 5) } } .scrollIndicators(.hidden) .scrollContentBackground(.hidden) VStack(spacing: 5) { if #available(iOS 18.0, *) { Image(systemName: "plus.square.on.square.fill") .resizable() .scaledToFit() .frame(maxHeight: 50) .symbolEffect(.bounce.up, options: .nonRepeating) } else { Image(systemName: "plus.square.on.square.fill") .resizable() .scaledToFit() .frame(maxHeight: 50) } Text("Items") .font(.largeTitle.bold()) Text("Create, View, and Manage Your Items") .font(.system(size: 12).weight(.bold)) .multilineTextAlignment(.center) ScrollView(.horizontal) { HStack(spacing: 20) { filterButton(icon: "car.fill", color: .red, label: "Auto") filterButton(icon: "cart.fill", color: .purple, label: "Shopping") filterButton(icon: "laptopcomputer", color: .blue, label: "Tech") filterButton(icon: "airplane", color: .orange, label: "Travel") filterButton(icon: "gamecontroller.fill", color: .green, label: "Entertainment") } .padding(.leading, 25) } .scrollBounceBehavior(.basedOnSize) .scrollIndicators(.hidden) Spacer() } .padding(.top) VStack { Rectangle() .fill(.thinMaterial) .frame(height: 300) .mask { VStack(spacing: 0) { LinearGradient(colors: [Color.black.opacity(0), Color.black.opacity(0.383), Color.black.opacity(0.707), Color.black.opacity(0.924), Color.black], startPoint: .bottom, endPoint: .top) .frame(height: 400) Rectangle() } } Spacer() } .ignoresSafeArea() VStack { Spacer() Rectangle() .fill(.thinMaterial) .frame(height: 200) .mask { VStack(spacing: 0) { LinearGradient(colors: [Color.black.opacity(0), Color.black.opacity(0.383), Color.black.opacity(0.707), Color.black.opacity(0.924), Color.black], startPoint: .top, endPoint: .bottom) .frame(height: 100) Rectangle() } } } .ignoresSafeArea() VStack(spacing: 12) { Spacer() Button { showingAddItemView.toggle() } label: { HStack { Image(systemName: "plus.circle") Spacer() .frame(width: 7) Text("New Item") .padding(.trailing, 3) } #if os(visionOS) .padding(.vertical) #endif } .padding(10) #if os(iOS) .background { Capsule() } #endif NavigationLink("Continue") { } } .padding()
0
0
631
Oct ’24
Guideline 4.3(a) - Design - Spam
Hello, I recently submitted my app to the Apple Store and received a rejection under Guideline 4.3(a) - Design - Spam, stating that my app is similar to others on the store. However, my app has a unique feature set, offers more functionality and content than competitors, and is completely free with ad monetization, unlike most similar apps that require subscriptions. I have spent five months developing this app from scratch, ensuring it provides an original and valuable experience for users. I did not use an app template or repackaged code, and my app is not a reskinned version of any existing app. I genuinely believe it brings meaningful differentiation to the market. I would appreciate any guidance on how I can better communicate my app’s uniqueness to the review team or what specific aspects I should adjust to comply with Apple's guidelines. Thank you for your time and support.
Topic: Design SubTopic: General Tags:
0
0
654
Feb ’25
IOS18 update
Finally updated my phone lastnight and I honestly wish I had NEVER bothered! Apple, what on earth is going on with your design team?! It’s a nightmare!!!!!! incsnt find anything, my photos are a nightmare when I knew wheee everything was. Now I have to try and work out how to find things more when it wasn’t ideal during a consultation with clients as I looked incompetent. The settings for passwords, battery etc have all been changed aswell and the pull down part for locking/bluetooth/aeroplane modes are all stupid aswell. Overall, extremely unsatisided with the overall update. I stayed with Apple because of the convenience of knowing the layout. I switched once to android and hated it because it had a different layout and I didnt like it having to start again when I’m already so busy. i lasted 24 hours with that phone before taking it back and upgrading back to Apple. Since the new layout and since I’m due an upgrade, there’s now nothing stopping me as your customer from leaving and now getting an android phone because I now find the upgrade difficult to navigate. If I could change it back I would. Overall dissatisfied and now willing to upgrade to another Apple next month.
Topic: Design SubTopic: General
0
0
334
Nov ’24
White border appears during app transition despite full-opacity 1024x1024 icon (SVG and PNG tested)
Hi everyone 👋 I’m a new iOS developer working on my first app and I’ve run into a frustrating visual bug involving my app icon during the launch/close transition. Issue: When I use Icon Composer (the new tool introduced for iOS 26) to generate my app icon, I consistently see a thin white border or “fringe” around the icon only during the transition animation (when the app opens or closes). It disappears once the animation ends. What I tested and confirmed: • I exported the exact same design directly from Adobe Illustrator as a 1024×1024 PNG, fully opaque, RGB color mode, background color filling the entire canvas (no transparency, no borders, no rounded corners). • When I place that exported PNG directly into the AppIcon asset catalog in Xcode, the icon renders perfectly — no white fringe appears, just a slightly darker shade of blue during transitions (expected and acceptable). • But when I generate the icon using Icon Composer, the white edge always appears, even if I disable effects, use full coverage layers, or only keep a flat color layer. Notes: • Tested on iOS 26 (latest beta) using Xcode 16. • The issue seems specific to Icon Composer’s export format or metadata — maybe it’s not stripping alpha correctly or something related to the squircle mask? • I followed all recommended specs: 1024×1024 px, PNG, sRGB, no transparency, exported from Illustrator at 72ppi with solid background. Even tested without the logo, just the icon made with icon composer Is anyone else experiencing this issue with Icon Composer exports? Is there an official recommendation to avoid this during transitions or should I simply avoid Icon Composer for production icons for now and stick with Illustrator / Figma exports? Thanks so much Here’s a visual example:
0
0
207
Aug ’25
Greyed out app icon on iOS 26 beta
On iOS 26 beta 3, my app and some other apps got greyed out app icon. It only happens in Default (Light) appearance. Apple automatically converts third-party app icons to support Liquid Glass, but is there any specific requirement with third-party icons to avoid above greyed out app icon issue?
0
1
191
Jul ’25
NavigationStack wrong behaviour in iOS 18.3
Hi, Anybody knows will this occurs when using navigationStack at iOS 18.3? The navigationStack not stay at safeareas the code as simple as that: NavigationStack(path: $navManager.path) { VStack { Text("Hello") } .navigationDestination(for: Route.self) { route in switch route { .... } } } .environmentObject(navManager) .environment(logic)
0
0
95
Jun ’25
Liquid Glass App Icons without Icon Composer
We have found that on iOS 26 beta some of our app icons built from an Xcode 16 asset catalog containing a single 1024x1024 .png file have a Liquid Glass effect applied to them while others have not. The documentation states that If you choose not to use Icon Composer, you can still use an AppIcon asset catalog in your project containing individual app icon images and let the system apply the Liquid Glass material. and If you prefer, you can take advantage of the system’s automatically generated treatment that is applied to all app icons. Is there any insight into how the system treats app icons that have not yet been updated with Icon Composer?
0
1
1.7k
Aug ’25
Copycats?But ODIKING belongs to us!
Hi,After I tried to submit my APP for review several times, it was still rejected for the following reasons: Guideline 4.1-Design-Copycats: The app or its metadata appears to contain potentially misleading content. Specifically, the app includes content that resembles ODIKING without the necessary authorization. But odiking belongs to our company's product, I don't know the problem, I don't understand how to prove that this product does not belong to a third party content Tanks1
Topic: Design SubTopic: General
0
0
258
Oct ’24
Is [NSKeyedUnarchiver unarchiveObjectWithFile:] reentrant?
I am experiencing strange crashes in my (ObjC) code, that insinuate some memory corruption (mostly running SHA256 decryption for file data in my code there's a // return object that was stored in encrypted file - (id) objectFromEncryptedFile:(NSString *)filePath { // read MYCrypto object that includes encrypted object of any class MYCrypto *encData = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath]; // decrypt, unarchive and return return [encData objectFromEncryptedData:encData.data]; } That seems to be called from different queues that are not synchronized. It came to me that maybe NSKeyedUnarchiver is not "thread safe" and maybe unarchiveObjectWithFile is not reentrant? Couldn't find anything in the normal documentation, but most of the old docs are no longer searchable. Can someone shed light on this?
Topic: Design SubTopic: General
0
0
355
Nov ’24
My experience With IOS 26 Beta
Hello Apple Developers i am here write down my experience with the IOS 26 Beta first off i would like to say that i kind of do/don't like the new iquid glass UI/UIX Designs in some parrts of the ios like in m ust 3rd Party Apps like Uber Lyrith MJ Access Link Moblie app DoorDash VLC And Apple Music App just to name of few since i have installed the beta i have ran into a few bugs i have alread sent to the feeback app via iphone but i'm going to write them here as will i'm not looking for troubleshoots or tech support i'm just shareing my experience with the apple community and the Apple Development/Enginer Team to fine tone for release Time please note that i am a user with Vision impairment so please by respect to me due to my writteing issues and grammer and spelling so here i go my first bug that i ran into on the first day was when i was listening to some music trakcs in the apple muisc app when scrolling down or up fast the app will froze for mill secend then contiune as noraml my second bug that i ran into dureing music play was with my Crossfade settings not working on some tracks im not sure if this is due to BMP alignment or AI algorithm integration with in the software itseif but for me this takes me out of the listening experince that i have when i enjoy listening to music My suggestion Move the AutoMix and Crossfade Settings in to the Apple Music its seif and give the user more controll over how long or how short they want the crossfade or autmix to happen dureing the ending of each tracked play also for the cross fade option is set at 12 increase this to 30 secs or more if possiable or add an BPM options for the Automix to mix in the next track via BMP for simple of my rock track is at 148 BMP the next track should be pop or kpop or rap synceing up with that same BMP speed or similar at 148 BMP my next suggestion for the Apple Music App Shameless track mode (this mode to can be Incorporated) in to the Automix Featrue this redue some music tracks that ends abruptly some MP3 tracks added outside of the Apple Music App seems to broke dureing playback My 3rd bug that i ran in to with the Glass UI for controll Center like i stated before i am Vision impaired with the clear Glass over lapping the current UI for me this hard for me to tell what icons i am looking atside from the Voolum and Brightness Bars i am asking please make this more dark theme and make the icons brigher or add name undernearth the icons or Flip the Dark them or dan the current UI over lapping the Controlor center or add White colors with Black Arrows/icons for all Apple App that has this Glass UI in side of cause this is driving me nuts My 4th Bug that i ran into was with the lock screen/restart/reboot ohh girl where do i began with this one let's with the notifications i don't know who through it was a good idea to have a Clear Bright UI over lapping the Notifications this is very annoying via imessage Texting cause my custom wallpaper Blends in with a white background and this is Worst My suggestion for this is very simple darkering the background on the lock screen abit more so the text is more reader or increase the Notification bars (this is for users like myseif that use Dark mode) My 5th Bug involves my Back ups/Restore/Corrupated < is seif explanatory when i tryed to downgrand back to Version 18.5/18.6 nothing happened so please fix this or make it a bit more easyer for users to be able to back up/Retore their Devices now i has to wait until (Tomttow morning Friday) to factory reset my phone my conclusion since Beta Users and Developers and Engiers are Still testing please take look at my suggestion and try to bring not all but some of them in to public Release Thank You! Update i would like to Downgrad from IOS 26 Developer Beta back to IOS 18.5
0
0
132
Jun ’25
Need Help Moving INRx App to New Developer Account – Design Issue Blocking Submission
Hello Apple Developer Support, We initially uploaded our INRx App on a different Apple Developer account for internal testing purposes. Now, we would like to publish the same app under a new Apple Developer account for production, but we're currently facing a design-related rejection during the review process. We believe the app meets all guidelines, and there were no design issues flagged previously when submitted from the testing account. Could you please help us understand: Why the same app is now being rejected for design issues? Is there a way to resolve this while moving the app to the new account? Any advice or clarification would be greatly appreciated so we can successfully proceed with publishing. Thank you!
Topic: Design SubTopic: General
0
0
117
Aug ’25
iOS 26 not showing new screenshot animation
Hi everyone, I’m currently testing iOS 26 on my iPhone as part of the developer program. According to Apple’s documentation and demo materials, a new screenshot animation was introduced in this version. However, when I take a screenshot on my device, the animation remains the same as in previous iOS versions. I’ve double-checked that I’m running the correct build of iOS 26, and I haven’t found any settings that might enable or disable this feature. Is anyone else experiencing the same issue? Could this new animation be device-specific, region-limited, or require additional configuration? Any insight would be appreciated! Thanks in advance, Alonso Rivera
0
0
162
Jun ’25