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

All subtopics
Posts under Design topic

Post

Replies

Boosts

Views

Activity

Why is SwiftUI so broken and not improving layered UI functionality
Again and and again, I reach the point in a new application where I need to make structural changes in components and my data model, and the SwiftUI compiler fails to compile and just reports "I'm lost in the weeds", with no indication of what it was last working on, aside from a particular level in a multi-layered nested UI. This typically happens when a sub-views construction is not coded correctly because I changed that view and am looking for what broke, by just letting the compiler tell me what is not compatible. This is how refactoring has been done for ages and it's just amazingly frustrating that Apple engineers don't seem to understand nor care about this issue enough to fix it. Why does this problem persist through version after version of SwiftUI? Is no-one actually using it for anything?
1
0
90
Jul ’25
Liquid glass: UIPageViewController inside UITabbarController adding blur effect always in iOS26
When using UIPageViewController inside a UITabBarController on iOS 26 with Liquid Glass adoption, visiting the PageViewController tab applies a blur effect to the navigation bar and tab bar even though the current child view controller of the pageView is not scrollable and does not reach behind these bars. Questions: Is this the expected behavior that the pageview's internal scroll view causes the bars to blur regardless of the page view's child content’s scrollability? If so, is there an official way to make the blur effect appear only when the pageview's current child view controller actually scrolls behind the navigation bar or tab bar, and not in static cases? Tried the same in SwiftUI using TabView and TabView with page style. Facing the same issue there as well. Sample screenshots for reference, Sample SwiftUI code, struct TabContentView: View { var body: some View { TabView { // First Tab: Paging View PagingView() .tabItem { Label("Pages", systemImage: "square.fill.on.square.fill") } // Second Tab: Normal View NavigationStack { ListView() } .tabItem { Label("Second", systemImage: "star.fill") } // Third Tab: Normal View PageView(color: .blue, text: "Page 3") .tabItem { Label("Third", systemImage: "gearshape.fill") } } .ignoresSafeArea() } } struct PagingView: View { var body: some View { TabView { PageView(color: .red, text: "Page 1") PageView(color: .green, text: "Page 2") PageView(color: .blue, text: "Page 3") } .tabViewStyle(.page) // Enables swipe paging .indexViewStyle(.page(backgroundDisplayMode: .always)) .ignoresSafeArea()// Dots indicator } }
1
0
178
Jul ’25
Is there a tutorial or good resource about publishing a Python based app on Apple Store?
Hi guys, Is there any good up-to-date tutorial about publishing a Python based app on Apple Store? Now, I have developed a standalone Python app from PyCharm, and it's using Pyside6 for UI and some major Python libraries. It's a productivity app with a little A.I. features. I used PyInstaller to prepare the app. Currently, I am stuck at the stage of codesign and Apple Review process, because I am manually doing codesign and building the package from command-line. Without using Xcode, things can get messy or miss easily. It would be nice to follow a up-to-date tutorial about how to complete the codesign and Apple Review process for a Python based app. For example, what to do, how to do, what to be careful during the Apple Review process, etc. Thanks!
1
0
106
Aug ’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, index < tabItems.count { let tabItem = tabItems[index] tabItem.isEnabled = isEnable } } iOS 18 iOS 26
1
0
72
2w
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
MusicKit design guidelines
Hi community, I have a question regarding MusicKit, is it necessary to follow a design guideline to integrate this framework into my App? Also, when no music is reproducing in MusicKit which placeholder we should show, do you provide the resource? Or can we create our own placeholder? Thanks for all, David.
1
0
594
Feb ’25
Huge UI difference between Simulator and Real Device
Hi everyone, I’m testing our SwiftUI app on both Xcode simulator and a real iPhone. On the simulator, everything looks clean and aligned. But when I run it on an actual iPhone (same build, iOS 18), the layout looks broken—fonts overlap, spacing is off, and elements are misaligned. Both screenshots are from the exact same screen and time. First is simulator, second is iPhone. Any idea why this difference happens? Is there something I should check in terms of rendering or layout settings? Thanks in advance!
1
0
247
Jul ’25
App moderation process problem
Hello, My app was rejected because of App Review Guideline 4.3 – Design Spam. The response I received states: “We noticed your app shares similar features, interface design, and functionality with other apps available on the App Store. Apps that duplicate content or functionality from other apps without adding significant value or unique user experiences are considered spam and will not be approved for distribution.” I developed Plinking Platform Rise, a reaction and accuracy game where players control a platform to balance a ball while avoiding obstacles. The game becomes more challenging with each level, and a dark mode adds an exciting element by reducing visibility and requiring greater precision. I’ve tried multiple times to understand the exact reasons for this rejection and made several updates to address potential issues, but all my efforts have been ignored by App Review. None of the changes I implemented led to a resolution. This is the first app I’ve submitted to the App Store, and I developed it independently. I haven’t copied any design, functionality, or gameplay from existing apps. While my app uses Unity, which might result in some similarities, I’ve worked hard to create a unique experience with original gameplay, visuals, and mechanics. I can’t identify any apps that closely resemble mine, but the rejection suggests otherwise. I would appreciate any advice on how to resolve this issue and demonstrate the originality of my app. Kind regards, Ihor Koval
1
0
276
Jan ’25
Tinting/Coloring tabs when using SidebarAdaptableTabViewStyle like List
SwiftUI.List allows for customization using .listItemTint, .tint, or .foregroundStyle. This can be used to color individual items in the list, other than the app's specified accent color. Is there an equivalent feature to customize individual Tab's icon or label, when using TabView's SidebarAdaptableTabViewStyle, and its in the sidebar style. From what I understand, there needs to be a modifier applied directly to Tab unlike List, and not just the label. Since there isn't any color/tint modifiers, is it not possible?
1
0
57
Jul ’25
Your app included hard to read type or typography
I recently submitted a new app for review, but it has been rejected multiple times for vague reasons. The most recent rejection reason I received was unclear, leaving me unsure of what improvements are needed to get the app approved for the App Store. Does anyone have any advice on how to address this? Additionally, to Apple reviewers: Could you please provide more detailed feedback to help developers improve their apps? The repeated review process takes a significant amount of time, and guessing what needs to be fixed without clear guidance makes it even more challenging. ################################# The latest rejection reason I got is: Guideline 4.0 - Design We noticed an issue in your app that contributes to a lower-quality user experience than App Store users expect: Your app included hard to read type or typography. Since App Store users expect apps to be simple, refined, and easy to use, we want to call your attention to this design issue so you can make the appropriate changes. Next Steps Please revise your app to address all instances of the issue identified above.
Topic: Design SubTopic: General Tags:
1
0
455
Jan ’25
ios 18.0 bug UITabBarController "More" Tab First Item Not Displaying Properly on iOS 18
Hello everyone, I'm working on an iOS application using Objective-C and UITabBarController. My app has more than 5 tabs, so the additional tabs are placed under the "More" tab. However, I've encountered an issue specific to iOS 18 where the first item in the "More" tab does not show up properly. This issue does not occur in iOS 17 or earlier versions. Here's my setup method: (void)mainTabbarSetUp { NSMutableArray *tabItemArray = [NSMutableArray array]; UIViewController *viewController1, *viewController2, *viewController3, *viewController4, *viewController5, *viewController6, *viewController7; UINavigationController *navviewController1, *navviewController2, *navviewController3, *navviewController4, *navviewController5, *navviewController6, *navviewController7; viewController1 = [[UIViewController alloc] init]; navviewController1 = [[UINavigationController alloc] initWithRootViewController:viewController1]; navviewController1.tabBarItem.title = @"Watch List"; navviewController1.tabBarItem.image = [UIImage imageNamed:@"tab_icn_watchlist"]; [tabItemArray addObject:navviewController1]; // Similarly adding other view controllers... viewController6 = [[UIViewController alloc] init]; navviewController6 = [[UINavigationController alloc] initWithRootViewController:viewController6]; navviewController6.tabBarItem.title = @"Cancelled"; navviewController6.tabBarItem.image = [UIImage imageNamed:@"tab_icn_cancelled"]; [tabItemArray addObject:navviewController6]; self.mainTabBarController.viewControllers = tabItemArray; } What I've Tried: Verified that each view controller is correctly initialized and assigned to a UINavigationController before being added to the tab array. Logged the contents of the moreNavigationController to confirm that it contains the correct view controllers. Tested by reducing the number of view controllers to less than 5, and the issue does not occur. Ensured that all UINavigationControllers are configured consistently (e.g., translucency, bar style, etc.).
1
0
2.5k
Oct ’24
SanDisk External Drive Not Recognized Properly on iPhone 16 Pro with iOS 18.1, Works Fine on iPad
I am using iOS 18.1 on an iPhone 16 Pro. Although I am using a SanDisk external hard drive, the iPhone’s Files app is not recognizing the drive properly, and video files are not playing well. However, everything works fine on my iPad. Could this be an issue with the iPhone's OS?I am using iOS 18.1 on an iPhone 16 Pro. Although I am using a SanDisk external hard drive, the iPhone’s Files app is not recognizing the drive properly, and video files are not playing well. However, everything works fine on my iPad. Could this be an issue with the iPhone's OS?
1
1
595
Oct ’24
iOS 26 | UIBarButtonItem UI issues with isEnabled and hidesSharedBackground
UIBarButtonItem setting isEnabled = false, but the item is still tappable and animating. Is this a new UI behavior or an issue? Do the following steps: On tapping on a UIBarButtonItem, disable by setting isEnabled = false and setting hidesSharedBackground = true Enable the button by setting isEnabled = true and setting hidesSharedBackground = false => The button appears with bigger shared background is this an issue? please find the attachments for more details. ViewController.swift.txt
1
1
272
4w
Bring Back Launchpad
So, I started with the developer beta on Tahoe a couple months ago. I gave the new Apps.app a fair shot.... I HATE it. Finally used a terminal work around to get Launchpad back up and running. Now with the release of the Public Beta and Developer Beta 5, Apple has nerfed the Launchpad.app altogether. Apple, listen to your customers. Yes some people really love spotlight but not everyone wants to scroll through a list of apps as long as my leg because, my PTSD brain won't let me remember the name of the app to type into spotlight. The Launchpad app had a great visual reference for those of us with poor memory function. Bring it back, and let your customers choose which one they want to use.
1
1
48
Aug ’25
not work paragraphStyle in AttributedString
I tried to create a Text View using attributedString. I want to set the line height using paragraphStyle and return the Text, but paragraphStyle is not being applied. Why is that? extension Text { init?(_ content: String, font: StyleType, color: Color = .ppBlack) { var attributedString = AttributedString(content) attributedString.font = Font.custom(font.fontWeight, fixedSize: font.fontSize) attributedString.foregroundColor = color let paragraphStyle = NSMutableParagraphStyle() paragraphStyle.minimumLineHeight = 16 paragraphStyle.maximumLineHeight = 16 paragraphStyle.lineSpacing = 0 attributedString.mergeAttributes(.init([.paragraphStyle: paragraphStyle])) self = Text(attributedString) } }
1
0
311
Feb ’25
Set the ui resources for the face id page
I am developing an app that requires calling the iPhone's Face ID module to scan users' facial data. Where can I find Apple's design resources and guidelines for Face ID? The Face ID resources available in Figma are incomplete, and I need more support. For example, in the iPhone settings, the scenario: the UI interface for scanning the user's face to collect data, specifically the circular design in the "How to Set Up Face ID" screen.
1
0
547
Mar ’25
Help with Guideline 2.5.10 - Performance - Software Requirements
I created an app for fine art for iOS and for the screenshots, I originally had art by actual artist so it was denied by Apple: under the guideline 2.5.10 – performance – software requirements. "To resolve this issue, please revise your app to complete remove or fully configure any partially implemented features. Please ensure your screenshots do not include any images of demo, test, or any incomplete content. To resolve this issue, please revise your app to complete, remove, or fully configure any partially implemented features. Please ensure your screenshots do not include any images of demo, test, or other incomplete content." This is what Apple reviewer said, so I removed the screenshots of the actual artwork and replace them with the app's logo and I am still getting denied. I don’t know what to do, complete removal of any images would hinder showing off the app features. I asked them to clarify and they repeated the statement above.
1
0
418
Nov ’24