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.
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.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
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!
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?
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.
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?
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 15 Beta 2 (Tahoe)
• Xcode 16 Beta 2
• Samsung Odyssey G9 57” monitor (super ultrawide)
• Using Preview in SwiftUI (not the Simulator)
Even when I use Apple’s default demo code like:
Text("Hello World")
.padding()
.glassEffect()
I am trying to resize a Window Form after it loads and have done quite a bit of searching for code to do it.
Here is one code snippet that works to size the form during the design phase.
self.view.window?.contentMinSize = CGSize(width: 1100, height: 310)
I have tried code like below to increase the window size after the Form loads
if let myWindow = self.view.window ?? NSApplication.shared.mainWindow
{
// Increase window size and position after it loads
let newRect = NSRect(x: 100, y: 100, width: 1400, height: 900)
}
It seems that this code not only changes the Form size after loading, but also changes the size of the Form in Main.swift, which is something I don't want.
I read elsewhere that I had to disable constraints to resize the Form, so I tried code below.
let tableView = NSTableView()
tableView.translatesAutoresizingMaskIntoConstraints = false
let newRect = NSRect(x: 100, y: 0, width: 1100, height: 600)
myWindow?.setFrame(newRect, display: true)
That code did not seem to do anything as well.
Also, the Form displays in the lower left of the screen.
Note that main reason I want to resize the Form after loading is to keep it smaller during design development. The same goes for the NSTableView, which I have not gotten to yet.
1/自从更新26.0版本 页面好看但是应用和主界面使用体验非常差很卡
2/苹果键盘功能有待优化 表情和语音文字识别还有键盘设置
3/还有手机发热卡顿 导致非常多的使用不方便 苹果官方请优化以上问题
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]
I'm trying out Icon Composer Version 1.0 (27.4). I imported a simple logo and sized it in the outer circle. The icon appears good in the Icon Composer. But when I export the file and use it for my app icon it seems to be missing a margin or padding that other native application icons have.
Am i supposed to be adding my own padding to these resulting icons or am I building them incorrectly? Any guidance would be appreciated. Thanks!
Showing Recent Errors Only
Prepare build
error: Multiple commands produce '/Users/mayankjain/Library/Developer/Xcode/DerivedData/PCS_EmpApp-chsylqbxjptobeawzzckymqzagvr/Build/Products/Debug-iphonesimulator/PCS_EmpApp.app/Info.plist'
note: Target 'PCS_EmpApp' (project 'PCS_EmpApp') has copy command from '/Users/mayankjain/Documents/05-NOV-2025-SWETA_IOS/PCS_EmpApp/PCS_EmpApp/xcode-out/Platforms/iOS/Info.plist' to '/Users/mayankjain/Library/Developer/Xcode/DerivedData/PCS_EmpApp-chsylqbxjptobeawzzckymqzagvr/Build/Products/Debug-iphonesimulator/PCS_EmpApp.app/Info.plist'
note: Target 'PCS_EmpApp' (project 'PCS_EmpApp') has process command with output '/Users/mayankjain/Library/Developer/Xcode/DerivedData/PCS_EmpApp-chsylqbxjptobeawzzckymqzagvr/Build/Products/Debug-iphonesimulator/PCS_EmpApp.app/Info.plist'
Multiple commands produce '/Users/mayankjain/Library/Developer/Xcode/DerivedData/PCS_EmpApp-chsylqbxjptobeawzzckymqzagvr/Build/Products/Debug-iphonesimulator/PCS_EmpApp.app/Info.plist'
Dear Developer, Is there a way to create a function to search with inside a text without having to be outside all of the messages? In other words, could I go into one of my contact’s texts and then search specifically inside that message as can be done on Android? This would be such an amazing function And make life so much easier. Thank you.
I'm working to emulate the Activity Rings featured in Apple's Fitness app.
Here's a copy of what's in the swift file so far.
//
// ProgressRingPrototype.swift
// Nutrition
//
// Created by Derek Chestnut on 1/13/25.
//
import SwiftUI
struct ProgressRingPrototype: View {
@State var progress = 0.00
let size: CGSize
let thickness: CGFloat
var color: Color?
var gradientColors: [Color]?
var body: some View {
let color = color ?? .primary
ZStack {
RingPrototype(
size: self.size,
thickness: self.thickness,
color: color.opacity(0.2)
)
let gradient = AngularGradient(
colors: gradientColors ?? [.primary, .secondary],
center: .center
)
let style = StrokeStyle(
lineWidth: 32,
lineCap: .round
)
Circle()
.trim(from: 0, to: progress)
.stroke(gradient, style: style)
.rotationEffect(.degrees(-90))
.frame(width: size.width, height: size.height)
}
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
withAnimation(.easeInOut(duration: 1)) {
progress = 0.75
}
}
}
}
}
#Preview {
ZStack {
ProgressRingPrototype(
progress: 0.1,
size: CGSize(width: 256, height: 256),
thickness: CGFloat(32),
color: .primary
)
ProgressRingPrototype(
progress: 0.1,
size: CGSize(width: 190, height: 190),
thickness: CGFloat(32),
color: .primary
)
ProgressRingPrototype(
progress: 0.1,
size: CGSize(width: 124, height: 124),
thickness: CGFloat(32),
color: .primary
)
}
}
Here's a snapshot of the live preview.
I'm experiencing an issue where the trailing line cap generated by the stroke exceeds the start angle of the angular gradient, which creates an ugly artifact at 0 degrees.
Anyone have a solution to this problem?
Derek
I've noticed that the App Store app tends to make the selected tab indicator darker on light mode and lighter on dark mode.
Is there any easy way to ensure better legibility out of the box with Tab View (SwiftUI) when using the tint modifier with custom colors?
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!
I can't find any documentation on design guidelines for "Login with Game Center" button. My app allows users to "Play as Guest" or "Login with Game Center". Since Apple provides somewhat strict guidelines for designing "Sign in with Apple" button, i was wondering how to design the button for Game Center login. Should i use Game Center icon. And will Apple review reject this?
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?
I noticed a discrepancy between the Material specifications for tvOS on the Developer page and the naming in the Design Resources (Sketch files). Which one should we consider authoritative?
Apple developer design web page:https://developer.apple.com/design/human-interface-guidelines/materials
design resource(sketch)
Hello, I am looking to develop a relationship with a developer that has experience running through the IOS build approval process. To elaborate, my team and I have designed and built a software application which is working through the Apple Developer review process to have the app approved and released to the App Store. Unfortunately, there has been some challenges, simple challenges in my eyes with our interface preventing Apple from approving our application. Happy to elaborate further.
A primary problem and solution I have seen is the software build was testing solely on the iPhone but as recently directed it seem the application must be accessible on iPad as well. With this the case, I have experience some software platforms where on the ipad the interface is not displayed on the whole screen. I am looking for direction on how to implement this setup for the 1st IOS build. Another concern from Apples Developer Review team is the App Tracking Transparency kit may need to be implemented.
I have an app that displays a MapView. While I am in light mode everything is fine. I can scroll around the map and my overlays (made by UIVisualEffectView containing an UIGlassEffect) stay light and look well!
As soon as I change my phone to dark mode, depending on what's underneath the buttons (a light residential area or darker wooded areas) some of my buttons change color. But not all, only where it's supposedly lighter or darker underneath. This makes my whole UI look strange. Some buttons bright, some dark.
Is there a way to lock a "color" or interfaceStyle to the effects-view? In light mode everything is fine, but in dark mode it just looks super strange.
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.