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

Posts under General subtopic

Post

Replies

Boosts

Views

Activity

Can't make buttons rectangular!
Ever since Xcode Version 26.0.1 I cannot for the life of me make my buttons rectangular. They are all capsule (or oval) shaped. My interface was designed for square buttons but no matter what I do the issue stays the same. This is what I have (it's fairly barebones but would have worked before I believe): @IBOutlet weak var PagesInterface: UIButton! override func viewDidLoad() { super.viewDidLoad() PagesInterface.layer.cornerRadius = 0 PagesInterface.layer.masksToBounds = true }
2
0
556
Oct ’25
How to test iPhone app and CarPlay together?
I have developed a mobile app using SwiftUI. Now I am in the process of building a CarPlay application. I know how to test the CarPlay app using a simulator but here is my confusion, How to test the iPhone app and CarPlay together? I want to test few scenarios like, user login / logout from mobile app. Location enabled /disabled in the mobile app. I know that swiftUI handles the scenes by itself. Kindly help me validate the above scenarios as I am getting black screen on iPhone whenever the CarPlay is launched. Below is the code snippet, func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { if connectingSceneSession.role == .carTemplateApplication { let sceneConfiguration = UISceneConfiguration(name: "CarPlay Scene", sessionRole: connectingSceneSession.role) sceneConfiguration.delegateClass = CarPlaySceneDelegate.self return sceneConfiguration } // Configuration for other types of scenes return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) } struct MyApp: App { @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { ContentView() .preferredColorScheme(.light) } } } Info.plist <key>UIApplicationSceneManifest</key> <dict> <key>UIApplicationSupportsMultipleScenes</key> <true/> <key>UISceneConfigurations</key> <dict> <key>CPTemplateApplicationSceneSessionRoleApplication</key> <array> <dict> <key>UISceneConfigurationName</key> <string>CarPlay Scene</string> <key>UISceneDelegateClassName</key> <string>$(PRODUCT_MODULE_NAME).CarPlaySceneDelegate</string> </dict> </array> </dict> </dict>
2
0
602
Jan ’25
iOS Review
As a very exclusive Apple only I want to share my thoughts on the new iOS 26 update, which I recently installed on my iPhone 16. While I genuinely appreciate Apple’s drive for innovation and personalization, this update introduces visual and stylistic changes that, in my opinion, compromise what has made iOS feel uniquely Apple for so long. Liquid Glass & Home Screen Aesthetics: When I first saw previews of the “Liquid Glass” design, I was excited. I assumed it would add more flexibility to things like the home screen customization — something like an optional effect that builds on the popular app tinting feature introduced in the previous iOS version. But instead, it appears that the Liquid Glass look is now the default and, more concerningly, unavoidable. The result is a visual experience that feels dramatically more bubbly and less refined. App icons appear more rounded and inflated in a way that — and I say this as constructively as I can — reminds me more of Android or Samsung’s One UI than of Apple’s signature design language. For someone who’s chosen Apple specifically because of its clean, crisp, and elegant UI, this shift is disappointing. iOS has always felt visually mature and thoughtfully minimal. With this update, it starts to feel overly stylized and visually heavy, which I don’t associate with Apple’s identity. Camera App – Icon Design: While I don’t have major concerns with the layout of the Camera app itself, the new Camera app icon is something I feel very strongly about. The previous design was balanced, clear, and professional — instantly recognizable. The new icon, is completely different, and it has more the camera that look like the actual iPhone camera, which I can respect the want to identify the app the iPhone. But this is not the effect I felt it has, I feel like it is less professional than before, which again makes me think a little bit about androids. This minor change feels bit because icons are what we see every day, and this one doesn’t feel quite right for Apple. Along with the new camera icon, the other new icons like the notes app, and the slight change in the message app icon, these small shifts aren’t ones I was overly pleased with, kind of felt like something that wasn’t broke and didn’t need fixed Messages App: The Messages app is where I felt the biggest disconnect. The updated keyboard with the “keys” looking more bubbly which again, makes me think android. And with the new monogram icons (initials in thick fonts with purple backgrounds), make the app feel — again — much more like an Android UI. While that might sound superficial, it doesn’t make me feel like it’s an iPhone. As someone who’s always preferred the Apple system, I’ve come to expect a particular standard of visual design — one that’s distinct from other platforms. This new look blurs that line. The once refined look of Messages is not as clean and simple as it used to be. I also preferred the gray background for monogram icons. The new colors and heavy fonts draw attention in ways that don’t feel as clean and simplistic which I have loved Apple for in the past. Control Center: Another area where I noticed a slight change is the Control Center. It’s not a big difference to the previous one, which I liked. The main difference I noticed was the brightness and sounds “bar” seems more elongated. Not a major difference but I would rather see the older design if I were to be honest. What I Did Like: There are some positives: I think the new lock screen notification styling works well, and the Liquid Glass effect looks great in that specific context. I actually really like the looks that it has with the notifications on the lock screen, having it be that transparent gives a clean and simple look. Lots of the new things that can be done in this update are very nice and convent, the more customization is great. Final Thoughts: To be clear, I offer this feedback not because I’m resisting change, but because I value what makes iOS feel like iOS. This update, while visually bold, feels like a departure from Apple’s strengths — the clean and simplistic look. If there’s one big takeaway I hope you’ll consider, some of the new looks that have been put in place give a feeling that’s not Apple, and more Android. it’s that many of these new visual styles would be better received as optional customizations, not system-wide defaults. I would love to see an update to help fix some of this. I don’t believe there is a way to “un-update” my phone but if I could I would, even though some of these new things do look and feel good.
Topic: Design SubTopic: General
2
0
463
Sep ’25
Email icons
The most recent update included coloured icons for grouping of emails anybody previously needing to group emails we’re able to achieve this alphabetically by simply searching for what you were looking for. These icons clutter the page with totally unnecessary screen pollution. if you want to persist with this folly can you please provide a classic display option for those of us who have happily survived using email for 30 years without this fluff.
Topic: Design SubTopic: General Tags:
2
0
608
Feb ’25
How can a student start learning Apple’s approach to design?
Hello everyone, I'm 14 and absolutely enthusiastic about Apple — not only the products themselves, but the design nuance, the sense that everything has been well thought-out, and even stuff like Fitness+ and the Tips app. I love how much attention Apple pays to making every aspect of the experience feel deliberate and cohesive. My dream is to eventually become an Apple employee, specifically in design (maybe even retail for the beginnin). I know that I am young right now, but I would like to start learning as soon as possible. To you all who have experience with design or anything else, what are a few things or habits one my age should focus on learning to strengthen in the right direction? to maybe reach this dream Any assistance or advice would be greatly appreciated. Thanks! chase
Topic: Design SubTopic: General
2
0
474
Sep ’25
App Release
While doing production release of app, I was not able to see phase release option like in my previous releases. Due To whihc when I released. the app , it got released to 100% users. I want to know why phase release option was not showing up in my dashboard
Topic: Design SubTopic: General
2
0
595
Feb ’25
Inconsistencies with activityBackgroundTint when a device switches between light and dark modes
While the activityBackgroundTint modifier is intended to set the background color of a Live Activity, it often fails to dynamically update, leaving the activity with an incorrect background. Replacing it with ZStack { Color(.background) .... } solves the problem, but this is a workaround. The activityBackgroundTint modifier is still needed, at a minimum, so that the "Allow Live Activity for the app" extension does not have the default color.
Topic: Design SubTopic: General Tags:
2
0
496
Sep ’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
515
Dec ’24
Emoji Keyboard size is large after updating to iOS 18.1
Emoji keyboard are way too big after updating to IOS 18.1 so anoying to use emojis now. I really don't like using emojis anymore. I really hope they are going to fix this quickly. I use my phone for work and pleasure. I don't needing my heart to be bigger or different colors to every reaction. Please bring back the smaller emoji keyboard or add a setting to switch it back. This is really annoying.
Topic: Design SubTopic: General Tags:
2
2
1.5k
Dec ’24
Core database relationship are only partially updating.
I created a data structure based on a dictionary of words. The purpose is to link each word to all other words made up of the same letters plus one. Example: table -> ablate, cablet, tabled, gablet, albeit, albite, etc. For this I built a data model made of three entities: Word, Draw, Link. A Draw is a set of letters corresponding to a Word and sorted in alphabetic order, like : HOUSE -> EHOSU. A Link is a letter that you add to a Draw to get another Draw. So my data model looks like this: And here is how I implemented it in Xcode: Entity Word (let's forget the attribute optComp that plays no role here) Entity Draw Entity Link I am populating the data in two steps: first I read a list of words from a .txt source and I populate the Word entity and at the same time the Draw entity with the corresponding relationship (function loadDic()) This first step apparently works fine. I can easily find all anagrams of any word with something like word.sort.word.spelling I read through the Draw entity. For each draw I seek all existing +1 draws considering each letter of the alphabet. If there are, I create a Link and add the relationships (function createLinks()) Here is where something goes wrong. If the Link's and the relationship Draw.plus seem to be correctly created, the other relationship Link.gives is only partially populated, say 50%. Moreover, I tried to apply an additional routine (updateLinks()) , focusing only on Link's with an empty Link.gives relationship and updating them. But again, only 50% of the nil relationships appear to be populated. I could not find out why those relationships are not properly populated. If someone can help me out I would be grateful. Here is the code: LoadDic() function (OK) : func loadDic() { print("Loading dictionary...") dataAlreadyLoaded.toggle() guard let url = Bundle.main.url(forResource: INPUT_FILE, withExtension: "txt") else { fatalError("\(INPUT_FILE).txt not found") } if let dico = try? String(contentsOf: url, encoding: String.Encoding.utf8 ) { let lines = dico.split(separator: "\r\n") for line in lines { let lineArray = line.split(separator: " ") print("\(lineArray[0])") // word let wordSorted = String(lineArray[0].sorted()) let draw = getDraw(drawLetters: wordSorted) ?? addDraw(drawLetters: wordSorted) // look if draw already exists, otherwise create new one. let wordItem = Word(context: viewContext) // create word entry with to-one-relationship to draw wordItem.spelling = String(lineArray[0]) wordItem.optComp = (Int(String(lineArray[1])) == 1) wordItem.sort = draw do { try viewContext.save() } catch { print("Errort saving ods9: \(error)") } } } print("Ods Chargé") } func addDraw(drawLetters: String) -> Draw { let newDraw = Draw(context: viewContext) newDraw.draw = drawLetters return(newDraw) } func getDraw(drawLetters: String) -> Draw? { let request: NSFetchRequest<Draw> = Draw.fetchRequest() request.entity = Draw.entity() request.predicate = NSPredicate(format: "draw == %@", drawLetters) do { let drw = try viewContext.fetch(request) return drw.isEmpty ? nil : drw[0] } catch { print("Erreur recherche Tirage") return nil } } createLinks() function (NOK): func createLinks() { var erreur = " fetch request <Draw>" let request: NSFetchRequest<Draw> = Draw.fetchRequest() request.entity = Draw.entity() request.predicate = NSPredicate(value: true) print("Building relationships...") do { let draws = try viewContext.fetch(request) count = draws.count for draw in draws { print("\(count) - \(draw.draw!)") linkTable.removeAll() for letter in ALPHABET { print(letter) let drawLettersPlus = String((draw.draw! + String(letter)).sorted()) // draw with one more letter if let drawPlus = draws.first(where: { $0.draw == drawLettersPlus }) { // look for Draw entity that matches augmented draw let linkItem = Link(context: viewContext) // if found, create new link based on letter with relationship to augmented draw linkItem.letter = String(letter) linkItem.gives = drawPlus erreur = " saving \(draw.draw!) + \(letter)" try viewContext.save() linkTable.append(linkItem) // saves link to populate the one-to-many relationship of the initial draw, once the alphabet is through } } let drawUpdate = draw as NSManagedObject // populate the one-to-many relationship of the initial draw let linkSet = Set(linkTable) as NSSet drawUpdate.setValue(linkSet, forKey: "plus") erreur = " saving \(draw.draw!) links plus" try viewContext.save() count -= 1 // next draw } } catch { print("Error " + erreur) } print("Graph completed") } updateLinks function (NOK): func updateLinks() { var erreur = "fetch request <Link>" let request: NSFetchRequest<Link> = Link.fetchRequest() request.entity = Link.entity() print("Running patch...") do { request.predicate = NSPredicate(format: "gives == nil") let links = try viewContext.fetch(request) for link in links { let baseDraw = link.back!.draw! print("\(baseDraw) \(link.letter!)") let augmDrawLetters = String((baseDraw + link.letter!).sorted()) if let augmDraw = getDraw(drawLetters: augmDrawLetters) { viewContext.perform { let updateLink = link as NSManagedObject updateLink.setValue(augmDraw, forKey: "gives") erreur = " saving \(augmDraw.draw!) \(link.letter!)" do { try viewContext.save() } catch { print("Erreur mise à jour lien") } } } } } catch { print("Error " + erreur) } } RESULT And this is the output showing the content of the Draw entity with relationships after createLinks() is applied: And here after updateLinks() is applied :
2
0
967
Feb ’25
iPad screen size
Hi, Does the iPad Playgrounds app act completely the same way as a MacBook Playground? I am developing my app on a 2020 MacBook Air M1 using Swift Playgrounds. However, since the testing is going to be done on an iPad Swift Playgrounds, I was worried if my playground would work, since it relies heavily on the screen size etc. My app runs completely perfect on MacBook Playrgounds, but doesn't work on the iPad simulator on Xcode.
1
1
521
Feb ’25
Code d’invitation TestFlight
Bonjour à tous, je voudrais savoir comment avance mon dossier sur les applications que j’ai créé,comment puis-je faire? Et sinon quelqu’un connaît-il la Durée exacte quand APPLE envoie le code de vérification pour mes applicationà!???
Topic: Design SubTopic: General
1
0
466
Mar ’25
New to macOS Development. How Do I Build a Timeline Editor UI Like Logic Pro?
Hi everyone, I’m new to macOS development and working on an app idea that needs a timeline-based editor interface, similar to what you see in Logic Pro or Final Cut. The UI I want to build would have: A horizontal beat ruler that follows BPM and shows beat positions Several vertical tracks stacked below it (for things like events or markers) Horizontal zooming and scrolling A preview panel on the right side that stays in sync with the timeline I’m currently trying this in SwiftUI, but I’m running into some limitations and wondering if AppKit would be a better fit, or maybe a hybrid of the two. My questions: Where should I start when building something like this? What’s the best way to make the beat ruler and all track layers scroll together? How should I handle zooming in/out and syncing the display to a BPM timeline? Is there a clean way to integrate AppKit for the timeline view while keeping SwiftUI elsewhere?
1
0
119
Jun ’25
how to make sound appear with haptic feedback on apple watch
I've made the code in xcode for apple watch with 2 swift view (contentView.swift and interfaceController.swift).The swift for sound and haptic feedback is in InterfaceController.swift. But the the sound does not appear with haptic feedback in apple watch after complete the xcode. the app is done but no sound appear with haptic feedback when rotate apple watch digital crown. when crown rotated but sound appear code import WatchKit import AVFoundation import WatchKit class InterfaceController: WKInterfaceController { // ... your UI elements func playSelectionHapticAndSound() { // Play a haptic feedback pattern WKInterfaceDevice.current().play(.success) // Load and play a selection sound effect guard let soundURL = Bundle.main.url(forResource: "spin", withExtension: "wav") else { return } do { let player = try AVAudioPlayer(contentsOf: soundURL) player.play() } catch { print("Error playing sound: \(error)") } } }
1
0
594
Feb ’25
glassEffect() in SwiftUI always renders as white
Hi everyone, I’m having trouble getting the new glassEffect() modifier to render correctly in SwiftUI. No matter what I try, it just appears as a solid white background (instead of translucent glass). This happens both in Beta 1 and Beta 2. My setup: • Mac mini (M4 chip) • macOS 26 Beta 2 (Tahoe) • Xcode 26 Beta 2 • Samsung Odyssey G9 57” monitor (super ultrawide) • Using Preview in SwiftUI, I use IOS 26 Beta 2 (not the Simulator) Even when I use Apple’s default demo code like: Text("Hello World") .padding() .glassEffect()
Topic: Design SubTopic: General
1
0
103
Jul ’25
ios 18
i accidentally updated my iphone with the ios 18 and i dislike it. the emoji display were too huge and the picture gallery was kinda messy. i hope apple could fix this by bringing back the old emoji display and the gallery settings.
Topic: Design SubTopic: General
1
0
464
Feb ’25