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
Posts under Design topic

Post

Replies

Boosts

Views

Activity

New emoji size is too big!
Hello Apple… used to love my phone and your company… not so much with this God awful new emoji update… Just why? They are giant, we can see them from Alaska, the whole Keyboard is not user friendly at all. It takes me (and reading the feedback from other people - Im not the only one with this problem) ages to find the one I want to use, even with the group icons on the bottom… no, they don’t help. I always ether miss type or just don’t use at all. It takes extra time to use emoji now so I completely stopped using it which sucks. It’s 2025 where time is precious and no one wants to spend extra seconds looking for emojis on this awful new layout you created. Apple developers used to be good about listing to users feedback, I hope you do it in this case, because this is just absolutely terrible and no, you can’t get used to it. I never write reviews anywhere and thought it would take a bit to get used to it… no no and no. This update is awful, please bring it back to normal size so we don’t waste our time and nerves. Thanks.
Topic: Design SubTopic: General
2
0
2.2k
Mar ’25
NavigationStack wrong behaviour in iOS 18.3
Hi, Anybody knows will this occurs when using navigationStack at iOS 18.3? The navigationStack not stay at safeareas the code as simple as that: NavigationStack(path: $navManager.path) { VStack { Text("Hello") } .navigationDestination(for: Route.self) { route in switch route { .... } } } .environmentObject(navManager) .environment(logic)
0
0
95
Jun ’25
Future iPhone Innovations – Portless & Foldable iPhones
Dear Apple Innovation Team, I have a game-changing iPhone concept and want Apple to explore it first. 📱 iPhone 18 – The First True Portless iPhone No ports – MagSafe 2.0 with high-speed data transfer. Under-display Face ID & Camera – No security compromise. Seamless OLED Display – No interruptions, just pure screen. 📂 iPhone 20 – The Perfect Foldable Crease-free foldable design – Apple perfects what others failed to. Optimized iOS for foldables – Smooth UI & app integration. Apple leads the foldable market. 🚀 Why This Matters: Apple can set a new standard & dominate both innovations. Looking forward to your response. Best, Saksham Sethi
1
0
376
Mar ’25
New IOS APP Help
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.
0
0
633
2w
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!
Topic: Design SubTopic: General Tags:
0
0
876
Oct ’24
NWListener, NWConnection, not accepting connections
I'm using NWListener with NWConnection. This code work great and I am able to start the listener and successfully receive connections in Xcode preview. However, when I build/run on my phone, the listener does not seem to accept connections from the network. If the app sends a message to itself on the phone, it is received, but if I send a message to that ip/port from another network device, it is not accepted/received. Any help or suggestions appreciated. import Foundation import Network import Combine @Observable class UDPListener3 { var listener: NWListener? var queue = DispatchQueue.global(qos: .userInitiated) var messageReceived: Data? private(set) var isReady: Bool private(set) var listening: Bool = false private(set) var receiving: Bool = false private(set) var port: UInt16 = 0 init () { isReady = false listening = false receiving = false messageReceived = nil listener = nil } func GetPort() { var portText = "\(String(describing: listener!.port))" portText = portText.replacingOccurrences(of: "Optional(", with: "") portText = portText.replacingOccurrences(of: ")", with: "") portText = portText.replacingOccurrences(of: ",", with: "") port = UInt16(portText)! if let testPort = listener?.port?.rawValue { self.port = testPort } } func config(port: Int) { if port > 0 { configinit(port: NWEndpoint.Port(integerLiteral: NWEndpoint.Port.IntegerLiteralType(port))) } else { configinit(port: nil) } } func configinit(port: NWEndpoint.Port?) { // conifigure and create listener let params = NWParameters.tcp params.allowFastOpen = true if port == nil { self.listener = try? NWListener(using: params, on: .any)//port) } else { self.listener = try? NWListener(using: params, on: port!) } if listener != nil { GetPort() self.listening = true self.listener?.stateUpdateHandler = { [self] update in switch update { case .ready: self.isReady = true print("*Listener.ready on port \(String(describing: self.listener?.port))") GetPort() case .failed: // Announce we are no longer able to listen self.listening = false self.isReady = false print("*Listener.failed on port \(port)") case .cancelled: // Announce we are no longer able to listen self.listening = false self.isReady = false print("*Listener.canceled on port \(port)") default: print("*Listener default connecting to port \(port)... \(self.listener!.state)") } print() } self.listener?.newConnectionHandler = { connection in print("@called listener.newConnectionHandler") self.createConnection(connection: connection) } // start listening self.listener?.start(queue: self.queue) GetPort() } else { print("unable to start listener") } } func createConnection(connection: NWConnection) { connection.stateUpdateHandler = { (newState) in switch (newState) { case .ready: print(" ...Connection.ready")// - \(connection)") self.receive(connection) case .cancelled: print(" ...Connection.cancelled")// - \(connection)") case .failed: print(" ...Connection.failed")// - \(connection)") default: print(" ...Connection.default: \(connection.state)")// - \(connection)") } } print(" ...connection starting") connection.start(queue: .global()) } func receive(_ connection: NWConnection) { print() print(" ...connection receiving") // respond 200 received self.respond(on: connection) //connection.receiveMessage() { [self] data, context, isComplete, error in //<-- this would not return until timeout expired?? connection.receive(minimumIncompleteLength: 20000, maximumLength: 200000) { [self] data, context, isComplete, error in receiving = true /* Check what we have */ var message = "" if data != nil { message = String(decoding: data!, as: UTF8.self) } else { message = "" } // ERROR if let unwrappedError = error { print(" >>ERROR: received in \(#function) - \(unwrappedError)") receiving = false return } // NO DATA guard let data = data else { print(" >>NO DATA with context - \(String(describing: context))") receiving = false return } // NOT COMPLETE if !isComplete { print(" >>NOT COMPLETE with context - \(String(describing: context))") //return } // RECEIVED A MESSAGE if message != "" { self.messageReceived = data print(" ...received data - \(String(describing: context)) \(String(describing: data))") receiving = false connection.cancel() return } // keep receiving, self.receive(connection) } } } func respond(on connection: NWConnection) { let response = """ HTTP/1.1 200 OK Content-Length: 2 OK """ connection.send( content: response.data(using: .utf8), completion: .idempotent ) } func cancel() { self.listener?.cancel() self.listener = nil self.listening = false self.isReady = false print("listener disabled") } }
Topic: Design SubTopic: General
0
0
421
Nov ’24
Progress Ring Artifact
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
Topic: Design SubTopic: General
0
0
308
Jan ’25
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? Apple developer design web page:https://developer.apple.com/design/human-interface-guidelines/materials design resource(sketch)
Topic: Design SubTopic: General
0
0
43
Apr ’25
How to make web shortcut icons mode-adaptive like native app icons?
Hello everyone, I'm very impressed with the Liquid Glass design introduced in iOS 26, especially how native app icons automatically adapt to the system's display mode (dark or light). This brings me to a question: Is it possible to make a website shortcut icon created via Safari's "Add to Home Screen" feature adapt to Dark Mode in the same way? For native apps, we can use tools like Icon Composer and asset catalogs (Assets.xcassets) to provide different icons for each mode. It would be a huge improvement for web clips if we could achieve the same with existing web technologies like apple-touch-icon or the Web App Manifest. If anyone has figured out a way to do this, I would greatly appreciate it if you could share your knowledge. Thanks in advance! 日本語の原文: iOS 26から導入されたLiquid Glassデザインについて。 ネイティブアプリのアイコンがシステムの表示モード(ダークモード/ライトモード)に合わせて自動で最適化されるようになりました。 そこで疑問に思ったのですが、Safariから「ホーム画面に追加」機能を使って作成するWebサイトのショートカットアイコンは、ネイティブアプリと同じようにダークモードに対応できないのでしょうか? ネイティブアプリの場合は、Icon Composerなどのツールでアセットカタログ(Assets.xcassets)を使い、モードごとのアイコンを用意できますよね。 Web側でも、apple-touch-iconやWeb App Manifestといった既存の仕組みを使って、アイコンを動的に切り替えられるようになると、Webクリップの使い勝手がさらに向上すると思うのですが もし、すでに何らかの方法で対応されている方がいらっしゃれば、ぜひその知見を共有していただけると嬉しいです。
0
0
556
1w
Recollecting Source Code and Binary
Hello All, I used to own an app named LOLIIPOP, and am in the process of transferring it to my new apple account. I am having two problems.... How do I transfer the source code and binary to my new apple account? My developers have an old code, so I need to send them the LAST code they uploaded to the App Store. How do I do that as well??? Please any help!!! Thanks, Mr. LM
Topic: Design SubTopic: General
1
0
109
Aug ’25
Problem with iAchieved on iPhone 15 Pro and Above
Hello - I have an older app on the store, iAchieved, that suddenly stopped working properly on iOS 18. You can see it on the store, here: https://apps.apple.com/us/app/iachieved/id1069338478 It still opens runs, and I can try to enter a new item, but something is wrong with the date, so that the "Done" button does not appear. And since it does not, I cannot tap it and create the item. I'm not a developer, I don't code, I only designed the app and had someone build it for me. But, if you can put it in layman's terms, any idea what's causing this? Thanks so much for any insight you can provide, -- David
Topic: Design SubTopic: General
1
0
393
Jan ’25
Search Function
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.
Topic: Design SubTopic: General
0
0
67
Apr ’25
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) } } } }
Topic: Design SubTopic: General Tags:
0
0
459
Oct ’24