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.

Learn about designing great app and game experiences

Post

Replies

Boosts

Views

Activity

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
367
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
591
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
264
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
358
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
450
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
467
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
331
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
1
463
Oct ’24
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
412
Oct ’24
Hardware needed for BLE pairing with iOS
Hi there, I'm working on a product which needs to pair with an iOS device (only iPad and iPhone) via Bluetooth. I already have the device pairing and operating fully with android or Windows hosts and have implemented BLE. Obviously, iOS isn't as simple as those for pairing. The product type is not listed under the MFi accessories. The question I have is what hardware and or firmware needs does the product needs to fulfil in order to pair/bond fully. I've seen some devices have a MFi security chip, some need to be manufactured in a MFi approved facility, I've no idea on the firmware requirements. We're starting the process of joining the MFi program too. So: Do I need the security chip? Where is the pairing process documented? Can I use BLE or do I need to use classic Bluetooth or core Bluetooth? Any help would be greatly appreciated because I'm kind of lost. Thanks, Louis
4
0
534
Oct ’24
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
0
0
190
Oct ’24
[iOS 18] Is there an SF Symbol of the new icon in Safari's address bar?
The following icon has been introduced in Safari's address bar for iOS 18: I’d like to use it in my app to guide users on how to enable my Safari extension, but I couldn’t find it in SF Symbols beta 6.0 (99). Is this because it’s still in beta and will be available for third-party use later, or is it a private icon that only Apple can use? I hope I just overlooked something.
1
0
595
Sep ’24
Should my app use Apple's in-app purchase (b2b app)?
Hi, Our application is a B2B app, supporting users from companies that own our equipment (print industry). We want to allow company stakeholders to have a "Premium Plan" that will provide their company with numerous advantages in different aspects (service, training, data visibility) Some features in our app will be locked/hidden if the company is not part of the Premium Plan. We want to allow authorized users to activate the Premium plan for their entire company. We already have our website, where we already have a marketplace that allows web users to do this (using their company service agreement). In term of complying with Apple's in-app purchase Policy, is it ok to tell users in the app to go to this marketplace if they want these features (and more)? Thank you
1
0
384
Sep ’24
Apple Watch logo requirements for app's notifications
I have an iPhone/iPad application for which there is no watchOS target and as such no separate Watch app. I do not have separate watchOS app icons included as well in Assets. However, an Apple Watch is supposed to receive push notifications for the application. Do we as app developers need to provide watchOS app icons, with different resolutions as suggested by Apple in HIG, in app's Assets for the app logo to appear properly in the notification coming in watch, for both short look and long look? As of now, my app's icon appear pixelated in short look and I am not sure whether it is an app icon issue or because I did not include watchOS app icons in Assets.
2
0
656
Oct ’24