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

All subtopics
Posts under Design topic

Post

Replies

Boosts

Views

Activity

Clearing an app’s memory, data etc.
My app works perfectly the first time it is used but when returning to the start after playing the game and playing another it does some random things. I figure it is because the app still retains the previous game in it’s memory allocation? My question is, what is the best way programmatically to have an app start fresh and not have to quit it and open it again?
6
0
133
May ’25
SwiftUI: How to create different background colors for List sections?
I'm trying to achieve a specific UI design in SwiftUI where the bottom section of my List has a different background color than the top section. For example in the Medications portion of the Health app, the "Your Medications" Section has a different background than the top "Log" Section. How do I achieve this?: Here some example code. I wonder if I am supposed to use two Lists instead. If I use two Lists though and nest it in a ScrollView, the height of the lists needs to be specified. I am working with dynamic content, though so I don't think that is ideal. class ProtocolMedication {} // Example model struct HomeView: View { @Query private var protocolMedications: [ProtocolMedication] var body: some View { NavigationStack { List { // Upper sections with default background Section { Text("Content 1") } header: { Text("Log") } // Bottom section that needs different background Section { ForEach(protocolMedications) { medication in Text(medication.name) } } header: { Text("Your Medications") } } .listStyle(.insetGrouped) } } }
1
0
619
Dec ’24
About tvOS Material (design resource)
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? https://developer.apple.com/design/human-interface-guidelines/materials
1
0
77
Apr ’25
Inconsistent ornament scale
I am developing an application which make use of 2 ornaments anchored to a volumetric window, one used a toolbar and one to display different views. The problem I am facing consistently is that the ornaments seems to scale up or down after moving the volume using the OS handle or starting a GroupActivity session. This first image shows the ornaments as soon as I started the app, no dragging nor group activities: This second images shows them as soon as I join a group activity session: The map, which might seem smaller, has not been touched and has always the same scale. In this last image I had just dragged the entire volume using the OS toolbar, resulting in the ornaments scaling down: This is how the volume and the ornaments are declared: WindowGroup(id: "CityVolume") { let cityVM = CityViewModel(volumeSize: CityView.initialVolumeSize) CityView(cityVM: cityVM) .ornament(attachmentAnchor: .scene(.bottomFront)) { HStack { TourismChartsButton() LandmarksListButton() CenterMapButton() ToggleImmersiveSpaceButton() TrafficDataButton() BusLinesButton() } .padding() .offset(z: 10) .rotation3DEffect(Angle(degrees: 15), axis: (x: 1.0, y: 0.0, z: 0.0)) } .ornament(attachmentAnchor: .scene(.back)) { ZStack { if AppModel.Instance.tourismVM.isChartViewVisible { TourismChartsView() } if AppModel.Instance.busLinesVM.isDataViewEnabled { BusLineView() } } } .task(observeGroupActivity) .onAppear { appModel.cityVM = cityVM } } .windowStyle(.volumetric) .windowResizability(.contentSize) .volumeWorldAlignment(.gravityAligned) .defaultSize(CityView.initialVolumeSize, in: .meters) It happens also without starting a SharePlay session, but not as frequently as during SharePlay. Experienced the same behaviour with toolbars. Am I doing something wrong with how I created the ornaments? Am I missing something?
0
0
68
Apr ’25
Apple Air Pods Upgrade!
Good evening. I have come up with this amazing and revolutionary idea that is going to change the ent world for the better. I’m a 23 year old Design Engineer from Greece and I would like to come to direct contact with the Apple Design Team, in order to discuss this project and the best case scenario, sell it to you. The foldable iPhone is not a good idea. Its not revolutionary and it’s going to leave a big black mark in Apple history. With my idea, the whole world will see again the greatness of the biggest company in history.
2
0
502
Dec ’24
[Proposal] Sense & Store – Intelligent App Suggestions from Safari (with On-Device AI)
Hello everyone, I’d like to propose Sense & Store — a seamless integration between Safari and the App Store, powered by on-device AI, designed to understand what users are reading, searching, or selecting in Safari, and suggest relevant apps that match their current context or intention. 🔍 Key Idea: “Sense” the user’s need through intelligent analysis of web content, then “Store” — offer the most relevant app, either already installed or available in the App Store. 🌟 Core Features: • AI-powered context detection directly inside Safari • Real-time app suggestions based on user intent • Smart overlays when selecting text or data (e.g., phone numbers, emails, tools) • Privacy-first: All AI runs on-device (Apple Neural Engine) • Instant App Launch or Installation via StoreKit ✅ Examples: • Reading an article on productivity? → Suggests Notion or Things. • Looking up meditation tips? → Recommends Calm or Headspace. • Selecting a phone number? → Offers CRM or spam blocker apps. • Exploring code samples? → Suggests Pythonista or developer tools. 🔒 Privacy & Performance: • 100% on-device intelligence (no data sent to servers) • Follows Apple’s privacy framework • Works with SafariKit + StoreKit + CoreML ⸻ I’m happy to provide a full prototype roadmap and technical architecture. Feedback and collaboration are welcome! Would love to hear your thoughts — especially from developers who build for Safari, App Clips, or work with CoreML. Thanks! Jose Luiz Horta Barbosa Maurity Cruz - Apple lover...
1
0
88
Jun ’25
Automatic App Icon Style Change in iOS 26
After updating from iOS 18 to iOS 26, our app icon appears to have automatically received the new 'Liquid Glass' effect. We confirmed that this change occurred without us releasing a new app update. My questions are: Is this a system behavior where iOS 26 automatically applies the new icon style to existing apps? If so, is it possible for a developer to control or customize this effect? I am also wondering if there are any methods other than using Icon Composer.
1
0
113
Aug ’25
Issue with iPad app review. App crashing.
I'm receiving this error message from Apple saying that my app is crashing when they test, but I've already done the tests on the iPad version they recommended and it worked normally. Message below of the review team: Hello, Thank you for your resubmission. Upon further review, we identified additional issues that need your attention. See below for more information. If you have any questions, we are here to help. Reply to this message in App Store Connect and let us know. Review Environment Submission ID: 4f068d93-c30e-431c-b65c-6ff4c3ab1098 Review date: January 23, 2025 Version reviewed: 1.0 Guideline 2.1 - Performance Issue Description The app still crashed during review. Apps that crash negatively impact users. Steps leading to crash: The app crashed upon login attempt. Review device details: Device type: iPad Air (5th generation) OS version: iPadOS 18.2.1 I left the file below crashlog: {"app_name":"MauiApp2","timestamp":"2025-01-27 11:39:16.00 +0000","app_version":"4.0","slice_uuid":"11117a05-c930-3591-b6d9-7905912af710","adam_id":"6740661076","build_version":"4","bundleID":"com.company.MauiApp2","platform":2,"share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"iPhone OS 18.2.1 (22C161)","roots_installed":0,"incident_id":"987579BB-C332-42CF-B7AB-3F019902703A","name":"MauiApp2"} { "uptime" : 40000, "procRole" : "Foreground", "version" : 2, "userID" : 501, "deployVersion" : 210, "modelCode" : "iPad13,16", "coalitionID" : 1424, "osVersion" : { "isEmbedded" : true, "train" : "iPhone OS 18.2.1", "releaseType" : "User", "build" : "22C161" }, "captureTime" : "2025-01-27 11:39:15.7724 +0000", "codeSigningMonitor" : 1, "incident" : "987579BB-C332-42CF-B7AB-3F019902703A", "pid" : 1883, "translated" : false, "cpuType" : "ARM-64", "roots_installed" : 0, "bug_type" : "309", "procLaunch" : "2025-01-27 11:38:57.0672 +0000", "procStartAbsTime" : 979679570352, "procExitAbsTime" : 980128429544, "procName" : "MauiApp2", "procPath" : "\/private\/var\/containers\/Bundle\/Application\/240115B9-6606-406B-BD49-C24EC7F3D436\/MauiApp2.app\/MauiApp2", "bundleInfo" : {"CFBundleShortVersionString":"4.0","CFBundleVersion":"4","CFBundleIdentifier":"com.company.MauiApp2","DTAppStoreToolsBuild":"16C5031b"}, "storeInfo" : {"itemID":"6740661076","deviceIdentifierForVendor":"27BFDD21-822E-47D6-B639-199303E14913","thirdParty":true,"softwareVersionExternalIdentifier":"871814512"}, "parentProc" : "launchd", "parentPid" : 1, "coalitionName" : "com.company.MauiApp2", "crashReporterKey" : "83a5662fa3ae9a4fa99bf1f03c706f755ff38e3d", "appleIntelligenceStatus" : {"state":"unavailable","reasons":["notOptedIn","assetIsNotReady"]}, "wasUnlockedSinceBoot" : 1, "isLocked" : 0, "codeSigningID" : "com.company.MauiApp2", "codeSigningTeamID" : "ALCV75QR7M", "codeSigningFlags" : 570450689, "codeSigningValidationCategory" : 4, "codeSigningTrustLevel" : 7, "instructionByteStream" : {"beforePC":"fyMD1f17v6n9AwCRPOz\/l78DAJH9e8Go\/w9f1sADX9YQKYDSARAA1A==","atPC":"AwEAVH8jA9X9e7+p\/QMAkTHs\/5e\/AwCR\/XvBqP8PX9bAA1\/WECeA0g=="}, "bootSessionUUID" : "942643AD-6AFE-4696-ACEB-603AC2D48B4F", "exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"}, "termination" : {"flags":0,"code":6,"namespace":"SIGNAL","indicator":"Abort trap: 6","byProc":"MauiApp2","byPid":1883}, "asi" : {"libsystem_c.dylib":["abort() called"]}, "faultingThread" : 0, "threads" : [{"threadState":{"x":[{"value":0},{"value":0},{"value":0},{"value":0},{"value":18446744071913938304},{"value":8},{"value":6135065824},{"value":6135063504},{"value":2354241331284576430},{"value":2354241335696964078},{"value":1023},{"value":6135063616},{"value":0},{"value":4336219676},{"value":7128134088,"symbolLocation":7344,"symbol":"WebKit::WebPage::requestDocumentEditingContext(WebKit::DocumentEditingContextRequest&&, WTF::CompletionHandler<void (WebKit::DocumentEditingContext&&)>&&)"},{"value":7128134340,"symbolLocation":7596,"symbol":"WebKit::WebPage::requestDocumentEditingContext(WebKit::DocumentEditingContextRequest&&, WTF::CompletionHandler<void (WebKit::DocumentEditingContext&&)>&&)"},{"value":328},{"value":8506093888,"symbolLocation":0,"symbol":"_main_thread"},{"value":0},{"value":6},{"value":259},{"value":8506094112,"symbolLocation":224,"symbol":"_main_thread"},{"value":4354417664},{"value":1},{"value":12927714000},{"value":0},{"value":0},{"value":6135069717},{"value":12950787712}],"flavor":"ARM_THREAD_STATE64","lr":{"value":9082160540},"cpsr":{"value":1073745920},"fp":{"value":6135065840},"sp":{"value":6135065808},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":8120668884,"matchesCrashFrame":1},"far":{"value":0}},"id":399494,"triggered":true,"name":"tid_103","queue":"com.apple.main-thread","frames"
1
0
405
Jan ’25
Optimizing for the 500 widgets and updating it faster in iOS
I am creating 500 textfield widgets and then updating them and all their 40 properties at once. I require to update all 500 widgets with their properties at once as it is a usecase in our app, so pooling and showing only those that will be on screen won't really help in this case. I have found that for updating all these 500 textfield widgets with their 40 properties, the time taken is 80 to 100 milliseconds. However, if I update the non-string properties like .text, then it comes down to half which is 40 to 50 milliseconds. Wanted to know if there was a far more quicker or optimized way to do this? The following snippet of code shows what I am doing: @objc private func handleImmediateMode() { let startTime = CFAbsoluteTimeGetCurrent() for (index, textField) in retainedInputFields.enumerated() { updateAllProperties(for: textField, index: index) } let endTime = CFAbsoluteTimeGetCurrent() print("Immediate Mode -- (500 fields, 40 props): \( (endTime - startTime) * 1000) ms") } In the above code, I have already created the 500 textfield widget, and then in updateAllProperties () function I am passing the textfield widget to it and then updating the 40 properties that the widget has. Particularily, the following properties: textField.placeholder = "Input Field (index)" UILabel().text Seem to be adding the extra 40 - 50 milliseconds.
0
0
28
Jul ’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
143
Aug ’25
Help Needed with SwiftUI: Custom Button Animation Issue
I’m trying to create a custom animation for a button in SwiftUI, but the animation doesn’t seem to trigger properly when the button is pressed. I’ve followed the standard approaches using withAnimation, but the button only occasionally animates. Has anyone encountered this issue? Are there specific guidelines or common pitfalls in SwiftUI for button animations that I might be missing? Any insights would be appreciated!
0
0
245
Oct ’24
4.3(a) - Design
Hello, Appeal Ticket: APL149985 Thank you for your patience as we considered your appeal. The App Review Board determined that the original rejection feedback was valid. Your app does not comply with: 4.3(a) - Design During our review, we found that this app duplicates the content and functionality of other apps submitted to the App Store, which is considered a form of spam and not appropriate for the App Store. Apps submitted to the App Store should be unique and should not duplicate other apps. We encourage you to create a unique app to submit to the App Store. For more information about developing apps for the App Store, visit the Develop section of the Apple Developer website. We appreciate your efforts to resolve this issue and look forward to reviewing your revised submission. Best regards, Leo App Review Board BlockQuote a Blockchain based slg game got 4.3 a, I think the reviewer should know some thing about blockchain. 您好,我已经重新提交了一个版本的应用,和之前版本已经不同了,目前游戏的所有代码都是我自己写的,第三方的所有代码都被我移除了,所以代码上重复了其他游戏的是完全不存在的。 至于游戏玩法上,新的自定义技能冲榜系统,玩家可以通过“抽卡-编辑阵容-连续挑战”的方式,在遇到瓶颈时自定义技能突破关卡,这个玩法绝对是开创性的,因为已知的所有slg游戏的技能都是官方设计决定的,但是在我设计的这个玩法上,理论上所有的技能都将由玩家设计出来,这差别之大,正如区块链开创了一种崭新的去中心化的时代,和原有中心化的模式是完全不同的,据我所知,目前市面上不存在任何一款去中心化的slg游戏。但是您,尊贵的审核人员居然认为这样一款开创性的游戏是和其他中心化游戏是一样的,类同的,我相信苹果作为全球最伟大的科技公司,官方工作人员都是很专业的,都是很有见识的,都是主张创新的,主张玩家能获得独特的高质量的体验,但是这个拒绝让我疑惑。
1
0
168
Apr ’25
Seeking Guidance: App Store Rejection Under Guideline 4.3(a) - Detailed Differentiation Already Provided
Seeking developer insights regarding a 4.3(a) review response citing "similar binary, metadata, and/or concept." Our app implements distinct community-focused features that fundamentally differentiate it from existing applications in this category. Feature Implementation: Our app introduces new technological approaches to faith-based applications: Community System: Custom-built group participation with progress visualization Engagement Features: Peer support system with achievement tracking Progress Metrics: Proprietary points system for progress tracking Group Progress Features: Shared accomplishment tracking Achievement Architecture: Progress continuity tracking Performance metrics accumulation Custom recognition system for personal and group milestones Synchronized goal-setting framework Market Analysis: Our research indicates: No existing apps with group-based progress features No solutions combining community features with scheduling No applications with similar group achievement systems No platforms featuring synchronized progress tracking Substantial user base requesting these features Technical Questions: How have developers effectively demonstrated feature differentiation? What technical documentation best demonstrates unique implementations? What strategies work for showing market demand for new features? Best practices for documenting novel community features? Implementation Context: While core scheduling features necessarily overlap with existing solutions, our platform's focus on community engagement and achievement tracking represents a novel approach, validated through user research and community feedback. Seeking insights from developers who have successfully implemented unique social features in established categories.
4
0
674
Dec ’24