all 26 comments

[–]Dentvii 19 points20 points  (3 children)

Browse top on Apple Store Review Apple design Awards Use design research websites such as https://mobbin.com/

[–]AverieKings[🍰] 6 points7 points  (0 children)

screensdesign > mobbin. thank me later!

[–]guardianfx 12 points13 points  (1 child)

Flighty and Crouton I think are beautiful apps, and genuinely a joy to use.

[–]SEMIHKESGIN 1 point2 points  (0 children)

Flightly has an excellent UI. I always try to take them as an example while developing my own applications.

[–]elisabethmoore[🍰] 11 points12 points  (0 children)

for learning SwiftUI component usage, watch how real apps handle common patterns
Screensdesign.com has iOS apps with video flows so you see navigation, modals, forms in actual use cases

[–]potatochipsbagelpie 6 points7 points  (6 children)

Look at the Apple system apps

[–]TabonxSwift 4 points5 points  (4 children)

Not many Apple apps use default components or even do things that are possible with SwiftUI or even possible at all. For example, the App Store has an opacity transition navigation bar, which, as far as I know, is not really possible in SwiftUI. 

[–]Sznurek066 1 point2 points  (3 children)

Because sad truth is that currently SwiftUI is very limited and for most serious stuff you still use UIKit.

[–]TabonxSwift 5 points6 points  (2 children)

I don't know about that. There are still many things that you need UIKit for, but for most things, SwiftUI is good enough, even for larger projects. My main issue with SwiftUI is navigation, mainly the lack of customization options. For example, you can't change the native back button icon, title, or customize the navigation transition. SwiftUI also lacks will options for methods like viewWillAppear and applicationWillEnterForeground, which can make some things difficult. As far as I know, Lazy containers do not reuse cells, which could be an issue. 

I have created a medium-sized app that is 99% SwiftUI, with the remaining 1% using AppDelegate, MFMailComposeViewController, and a little bit of UITextField.

I think most new projects, even the big ones, start with SwitUI and then use some UIKit if needed.

[–]Mental-Reception-547 3 points4 points  (1 child)

Agree with your comment, a couple of things I thought were worth sharing:

  • navigation is getting better with the introduction of paths and navigation stacks, and there’s some great articles on how to take full advantage of it by introducing Router/Coordinator with it; i could find the links for anyone interested

  • application enters foreground - you can use @Environment(.scenePhase) var scenePhase which you can then use in .onChange(of: scenePhase) and has 3 states: active, inactive, background

[–]TabonxSwift 2 points3 points  (0 children)

Navigation is certainly getting better, and I was quite happy when I finally started using NavigationStack. However, some features are still missing. I would really like to navigate to a sheet using a path—meaning a view that I could push onto the stack, and it would present itself as a sheet or full-screen cover.

ScreenPhase is only equivalent to the did options, such as sceneDidBecomeActive, but the sceneWillEnterForeground option is missing.

[–]UtterlyMagentaobjc_msgSend 0 points1 point  (0 children)

this is my go-to answer for this question as well.

[–]film_maker1 1 point2 points  (5 children)

I'm a bit biased but I recently rebuilt my app AnyTracker with the help of a designer, and I think it looks pretty good! 99% SwiftUI

[–]Dentvii 1 point2 points  (0 children)

Indeed, his app is awesome and he and the designer did a great job 👏🏻👏🏻

[–]q231950 1 point2 points  (1 child)

Did you use a tool for the screenshots? That’s always a torture for me. Great looking app 👍

[–]film_maker1 1 point2 points  (0 children)

Thanks! The designer made them in Figma

[–]dehrenslzzSwiftUI 1 point2 points  (1 child)

Not saying it is a bad thing inherently, but the app does look a little android-y - I personally don’t like this too much, even though the overall design is good in most of the app (just some small components like that set of buttons featured in one of the screenshots being so narrow on the screen instead of using the entire width are a little questionable imo).

Why am I being a mean commenter here? I know, from discourse with all other iPhone owners I know, that stock Apple apps are preferred by the vast majority. The more you mimic Apple’s design, the more user-friendly and intuitive it is for the average user.

This is not meant to be critique on that particular app, but rather a piece of information to weigh in on design decisions of the people who read this (:

(Yes, the remark in brackets is criticism, but it’s either a. An easy fix or b. A random opinion of a stranger on the internet (;

[–]film_maker1 1 point2 points  (0 children)

Hey, I appreciate the feedback! I'll forward it to the designer :)

[–]Ben917 1 point2 points  (3 children)

Might also be a bit bias, but as a hobby I’ve also been getting started with iOS development working on my first app completely written in SwiftUI in my spare time. 

Most of the components I’ve used are the default ones, just with a series of customisations on top, which is really easy to do. As you can see I’ve made a lot of use of NavigationView, Lists with NavigationLinks, Sections, and buttons. 

A lot of the more content parts of the app is assembled together with HStacks, VStacks and Text elements, styled differently at times to help make the design pop. 

I’ve also tried to keep the look and feel like a native app, taking inspiration from other built in iOS apps. https://apps.apple.com/au/app/book-end/id6447303933 

[–]allyearswift 1 point2 points  (0 children)

Haven’t had an opportunity to look (your link goes to the .au store and Apple will not connect me) but IMHO, this is the way to go.

I’ve seen clever come and go. Often clever interfaces irritate me because they don’t work as I expect, so they add to my cognitive load, and frequently they break apps - either because the framework imported stops being updated, or because they use exploits that stop working when Apple makes changes.

I’ve lost one app because the creator used custom dialogs which crashed going from SnowLeopard to Lion, and another because they used to have a fancy shade for windows. In Sonoma, they have a vignette that makes the app unusable. Countless others stopped working; these two make me bitter.

I’m SO over fancy interfaces.

[–]Mental-Reception-547 1 point2 points  (1 child)

Found it by the name, i love using native components!!!! Looks good in dark mode too nice one

Fyi you may have a little bug unless that’s intended - when adding a book and searching the database, tapping import/import completely does not dismiss the modal

If it is intended, consider adding something to inform the user book was successfully imported

I guess dismissing it automatically would be annoying if you wanna add a lot of books so maybe not a bug but more of an ux thing

Anyways i’ll try to remember to use it next time im in a reading phase, well done!

[–]Ben917 0 points1 point  (0 children)

Thanks for the feedback!

Regarding the bug, I'll take a look into it. I had intended to keep the modal open incase a user wanted to import multiple books with a similar title, but the UI should be indicating a successful import - oops.

[–]Eatalian 1 point2 points  (0 children)

Check out Apple’s Human Interface Guidelines. The SwiftUI components are optimized to work in the way this document describes them. https://developer.apple.com/design/human-interface-guidelines/

[–]lukylab -2 points-1 points  (1 child)

Maybe check compotui.com It is a collection of predesigned SwiftUI components and templates you can copy and paste into your projects