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

Post

Replies

Boosts

Views

Activity

Meetings color in calendar
Hi, starting from iOS18, it is impossible to differentiate between completed meetings and future meetings in calendar - almost the same color (unless I switch to dark mode). Is there a way to fix it or is it a human engineering bug?
2
0
294
Oct ’24
The usage license of Apple fonts
Hello, I am an app developer from China. We are developing a mobile game that will be released on iOS and Android platforms (as well as some PC and Mac platforms). The game is a commercial app. My question is: we would like to use the "PingFang" Chinese font in our game software. Do we need to obtain a license, and how should we go about obtaining it? (For example, through which channels should we apply for the license, and what are the associated fees?)
0
0
190
Oct ’24
Map captured rooms from before merge, to new merged captured rooms
Hello everyone, I'm developing an app using RoomPlan where users can capture several rooms individually and assign custom names to each room. When I merge these captured rooms into a single CapturedStructure using the StructureBuilder, I want the merged structure to retain the original sections with their custom labels. However, I'm encountering an issue: Problem: After merging, the CapturedStructure's sections have different identifiers (UUIDs) compared to the original sections in the individual CapturedRooms. This means there's no straightforward way to map the custom labels from the original rooms to the sections in the merged structure. What I've Tried: Mapping by Identifiers: Attempted to map custom labels using the sections' identifiers, but the identifiers change during the merge, making this ineffective. Mapping by Positions: Tried matching sections based on their center positions (simd_float3), but these change. Modifying Section Labels: Considered changing the label property of the sections before merging, but the label is read-only and cannot be modified directly, and the CoreModel is used for merging rather than the data that can be modified via json. Question: Is there a recommended way to preserve or map custom section labels when merging multiple CapturedRooms into a single CapturedStructure using RoomPlan? How can I ensure that the custom labels assigned to rooms before the merge are correctly associated with the corresponding sections after the merge? Any guidance or suggestions would be greatly appreciated! Thank you!
0
0
299
Oct ’24
Tranforming a chart's origin
Hi, I'm trying to create a visualization using charts for vision pro. I want to create a line chart that connects pair of points on a donut chart. So i'm trying to draw the lines radially but it seems that the line chart always has only the bottom left corner of the view as origin. How can I tranform the origin to center of the view?
1
0
283
Oct ’24
iOS 18 Recommended Tweak
Prior to iOS 18 I could interact with my touchscreen when my phone was in standby mode. This was perfect because I could check weather, time, date, pause and play music, change songs, all at my desk, all without picking up my phone from the wireless charger. This feature is now gone in iOS 18 and I would REALLY like it back. It was super useful all day at work and now I’m constantly fumbling with my phone for every little thing.
1
0
264
Oct ’24
App will build and run once; then crashes on phantom AVPlayerView reference every time
My application suddenly started crashing on launch when I target "My Mac - designed for iPad." But only after the first build from scratch, which runs once. All subsequent runs crash with: dyld[90869]: Symbol not found: _OBJC_CLASS_$_AVPlayerView Referenced from: <D566512D-CAB4-3EA6-9B87-DBD15C6E71B3> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Debugger/libViewDebuggerSupport.dylib Expected in: <4C34313C-03AD-32EB-8722-8A77C64AB959> /System/iOSSupport/System/Library/Frameworks/AVKit.framework/Versions/A/AVKit I don't use AVPlayerView anywhere in my application. A file-contents search of the entire source tree doesn't turn it up either. The application doesn't even get to the point of instantiating the app object, so none of my code is involved. If I switch the target to my iPhone, it will build and run repeatedly. If I then switch back to "My Mac," it will build and run once... and then crash every time. Further research shows that this only happens in Debug builds. This is a major issue right now because iOS 18 broke authentication certificates (thus HTTPS), so anyone writing or debugging an app that needs network functionality must use HTTP on localhost. In my case, I'm dead in the water because I can't debug on my local machine. Has anyone seen something like this before? I can find no reference to anything like it.
3
0
245
Oct ’24
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
244
Oct ’24
Is it mandatory for gambling apps to provide guest login functionality?
Hello everyone, I am currently developing a gambling app and would like to ask if anyone has relevant experience or knowledge regarding whether it is necessary to require users to log in immediately when launching the app? Or is it permissible to offer a "guest mode" for users to try out the app before requiring them to log in? Does this comply with the policies of Apple or Google Play? Thank you all for your guidance!
0
0
165
Oct ’24
How do I use the Figma macOS Sequoia UI Kit?
Question: Guide for Using Apple's macOS Sequoia UI Kit in Figma? I recently discovered that Apple has published a "macOS Sequoia UI Kit" on their Figma profile: https://www.figma.com/@apple As someone new to both UI kits in Figma and Mac app development, I'm looking for guidance on how to use this UI kit when designing a Mac app. Does anyone know if such a resource exists? I haven't been able to find one so far. Background I started developing a new macOS app about a month ago and have a basic working version with early functionality. I've realized I need to take a step back and create visual prototypes to inform where to invest future development time. The Sequoia UI Kit seems like it could be helpful, but I'm unsure how to use it. iOS but not macOS There are several tools available for designing iOS apps: https://createwithplay.com/ https://www.judo.app/ https://detailspro.app/ However, I'm not aware of similar tools specifically for macOS application design. Direction Apple publishes design UI kits for both Figma and Sketch. I want to avoid paying for Sketch (this is a hobby project), so I'm focusing on the Figma option. Ideally, I'd love to see the iOS-focused tools mentioned above support macOS design fully. Until then (if ever), I'm hoping to make the most of the Sequoia UI Kit in Figma. Any guidance or resources would be greatly appreciated!
0
0
321
Oct ’24
Center alignment in row of LazyVGrid
I am creating a LazyVGrid with 2 columns. I want it so that if there is only one item in a row, then it goes to the center of the row. I tried using an HStack with a Spacer, but it doesn't push it to the center. How do I do it? ForEach(pets) { pet in VStack { Image(pet.species.rawValue) .resizable() .frame(width: 80, height: 80) Text(pet.name) .poppinsBold(size: 16) } } HStack { if pets.hasEvenNumber { Spacer(minLength: 0) } Button { addPetSheet = true } label: { VStack { ZStack { Circle() .frame(width: 70, height: 70) .foregroundStyle(.gray) Image(systemName: "plus") .foregroundStyle(.white) .font(.title) } Text("Add") .poppinsBold(size: 16) } } } }
0
0
230
Oct ’24
A phone keyboard layout for easy typing!
Last November 13 I came up with a phone keyboard layout (strategy) that can make key size bigger hence less mistyping. The typical phone keyboard looks like this: My proposed keyboard looks like this: Essentially, it's a split keyboard with the left-hand part stacked above/below the right-hand part. Key size/width/height and the vertical distance between the left-hand part and right-hand part may be adjustable to suit different phone widths and user hand sizes. You guys can show the proposed keyboard's image on your phone and fit this keyboard to your phone width so you can actually simulate typing on it to see how it feels. On my phone, the letter keys in it are a little too big for my thumbs to reach the farthest keys, but as I said, key size should be adjustable to suit different phone widths and user hand sizes.
0
0
312
Oct ’24
Presented viewController size shink in iPad after iOS 18
We present a viewController by embedding it into a UINavigationController and then presenting that navigation controller. let navigationController = UINavigationController(rootViewController: invCreateIssueViewController) self.present(navigationController, animated: true) The size of the presented view controller has reduced a lot in ipad in iOS 18. How do I get the same full screen presentation as iOS 17 in iOS 18?
0
0
185
Oct ’24
IOS18 “updates”
This update seems to have taken away customization features. So now I just have to have the same lock screen and home screen background? There’s no way to have 2 separate images anymore? Also I have my phone in darkmode so now I just have to deal with the ugly black thumbnails for the app? I can’t revert them to normal colors while keeping dark mode?
1
0
226
Oct ’24
IOS 18 App Icon Photoshop Template Won’t Work
I can’t figure out how to make the iOS 18 photoshop template for app icons work. In the past, each variant of the icon size was an editable layer you could open up, change and save. In this one, only the large App Store icons are editable. So I thought maybe if I put my icon in the App Store layer, the smaller icons would automatically scale and fill in. But they don’t. When I checkmark the generate assets option, it generates all the icon files, but all of them are blank, except for the App Store one. I don’t really want the smaller icons to just automatically scale down anyway; I would rather have them be fine-tuned by hand so that they look good at all sizes. I used the sketch template in a free trial of sketch and it automatically scaled and generated all of the icon sizes, as expected. But I don’t own sketch; I use Photoshop and Illustrator for all of my work. I’ve always been able to use the template in the past; it’s only this year‘s iOS 18 version that isn’t working for me.
1
0
260
Oct ’24