[HN Gopher] SwiftUI for Mac 2022
       ___________________________________________________________________
        
       SwiftUI for Mac 2022
        
       Author : allenleein
       Score  : 100 points
       Date   : 2022-07-03 14:32 UTC (8 hours ago)
        
 (HTM) web link (troz.net)
 (TXT) w3m dump (troz.net)
        
       | adamnemecek wrote:
       | This big thing for me about SwiftUI is that it makes not using
       | xibs a thing of the past. Like there's value to it even if your
       | app is just NSViewRepresentables (or UIViewRepresentables).
        
       | sircastor wrote:
       | After some 17 years of web development, I finally managed to sit
       | down with XCode and figure out some app development with Swift
       | UI. Having gone through some much earlier InterfaceBuilder
       | tutorials and trying to figure out ObjectiveC, I'm far more
       | confident I could actually make something viable in SwiftUI.
       | Purely anecdotal, of course.
        
         | ardit33 wrote:
         | SwiftUI looks promising, but it is not ready at all. It is fine
         | for 'toy apps' but if you want to do anything serious UIKit is
         | unbeatable.
         | 
         | I think it will take few more years until SwiftUI can get to
         | feature parity with UIKit.
        
           | spike021 wrote:
           | I think it depends on what you're trying to build.
           | 
           | I was working on a 'toy app' earlier this year. I needed to
           | use MapKit, but the SwiftUI MapKit is pretty simple,
           | features-wise.
           | 
           | So I had to do the more complicated (relatively-speaking as
           | someone with no prior UIKit/Swift experience) solution of
           | using a UIViewRepresentable to host a UIKit MapView.
           | 
           | It wasn't the hardest thing to implement but it definitely
           | shows that SwiftUI can't handle everything.
           | 
           | I definitely think having that 1:1 parity will help and
           | hopefully it doesn't took too long.
        
           | lostgame wrote:
           | I'm baffled as to how this has been so downvoted. It's just a
           | fact. Been using SwiftUI for two-some years and while I use
           | it for prototyping, when I actually want to get 'real' things
           | done, I go back to UIKit quick as a bolt of lightning.
        
             | programmarchy wrote:
             | I've found SwiftUI to be a dramatic improvement over
             | storyboards or view controllers for managing state and
             | flow. Sure, for some view components you need to drop down
             | into UIKit to do some detail work, but then it can be
             | abstracted back into SwiftUI.
        
               | ardit33 wrote:
               | No serious company is using Storyboards. Only toy apps or
               | small companies do, or junior devs. SwiftUI might be ok
               | for them as well.
        
       | spideymans wrote:
       | I find that SwiftUI is fantastic for small, self-contained views,
       | that don't have any complex custom behaviour, and don't deal with
       | navigation logic. For anything more complex that that, I'd
       | strongly urge falling back to UIKit
        
         | ardit33 wrote:
         | Agreed... it is not ready to be prime time yet. UIKit is still
         | unbeatable for more serious apps. At this pace it might take
         | few more years of dev for SwiftUI to reach feature parity.
        
         | secretsatan wrote:
         | I concur, recruiting now and everyone wants to use swift ui,
         | but uikit, horrible as it is, is the only option for our
         | complex ui
        
           | LeoNatan25 wrote:
           | What is "horrible" about UIKit or AppKit, other than them not
           | being the latest sexy fad?
        
             | [deleted]
        
           | spideymans wrote:
           | >I concur, recruiting now and everyone wants to use swift ui,
           | but uikit, horrible as it is, is the only option for our
           | complex ui
           | 
           | That's interesting. UIKit is by far my favoured UI
           | development framework (whether on web or mobile). It's
           | incredibly powerful, and also pretty damn easy to work with
           | once you know what you're doing.
           | 
           | I feel SwiftUI might be favoured nowadays, only because the
           | vast majority of devs come from a web development background.
           | UIKit unfortunately has a pretty steep learning curve if
           | you've come from a web dev background.
        
         | viktorcode wrote:
         | I concluded from experience that it always pays off to keep
         | views separate from any logic except the bare minimum required
         | for presenting the data on screen. This works regardless of UI
         | framework.
        
           | spideymans wrote:
           | Are you describing MVVM? If so, I completely agree.
        
       | mark_l_watson wrote:
       | I wrote a short mostly-AI book on Swift and Core ML last year and
       | the last example was an app using SwiftUI (the example is in
       | Apple's App Store). I was pleasantly surprised how
       | straightforward it was to use SwiftUI. I read the Apple docs and
       | spent about $10 for a short online class. It was probably only a
       | 15 hour investment to learn enough for my purposes.
       | 
       | EDIT: you can get a free copy of my book by setting the price to
       | $0.00: https://leanpub.com/SwiftAI
        
         | srvmshr wrote:
         | Just a gentle headsup: Looks like this suggestion doesn't work,
         | since Leanpub annual membership is added automatically to this
         | purchase, as being part of some bundle. Typically I wouldn't
         | mind paying it if I knew what I would be getting out of the
         | book
        
           | mark_l_watson wrote:
           | Thank you, I then need to keep PDFs available on my web site.
           | I will do that in the next day or two.
           | 
           | That said, I will first ask Leanpub if I can allow no
           | membership downloads.
        
           | codybontecou wrote:
           | I was able to find the manuscript on his
           | [Github](https://github.com/mark-watson/SwiftAI-book)
        
         | simonw wrote:
         | Which online class did you use?
        
       | aaaaaaaaaaab wrote:
       | God, please tell me future macOS apps won't look like this:
       | https://troz.net/images/form.jpg
        
         | lapcat wrote:
         | Unfortunately it will. Look at the redesigned System Settings
         | in the Ventura beta.
        
         | hombre_fatal wrote:
         | So, you scrolled the article just to attack a random screenshot
         | out of context?
         | 
         | Open up Xcode and drag various AppKit/UIKit's components onto
         | the screen. Now ask yourself if this is the future of iOS/macOS
         | apps just because you were able to cobble it together out of
         | curiosity.
        
         | speedgoose wrote:
         | Thankfully, most of them will be Electron based (or similar)
         | and look better.
        
         | draw_down wrote:
        
         | christoph wrote:
         | Not sure why you are getting downvoted. There are so many basic
         | fundamental things wrong there...
         | 
         | A UI framework should at least get some of the very basic
         | things correct with out of the box defaults. Bootstrap, for
         | example, largely gets this right. You can slap something
         | together and it at least looks vaguely cohesive. The screenshot
         | you posted, should have taken somebody a lot of effort to
         | demonstrate how a UI should NOT look. It's a visual version of
         | a new HTML form framework where the labels aren't clickable...
        
         | eyelidlessness wrote:
         | All the things that don't look nearly or exactly identical to
         | Catalina-era Cocoa (i.e. the "switch" toggles, "grouped" sub-
         | form, oversized "capsule" button) are explicitly declared in
         | the source code[1]. I'd wager those toggles will become more
         | common as they get more first-party usage, grouped sub-forms
         | probably less so. Huge oversized buttons? Pretty unlikely.
         | 
         | 1: https://github.com/trozware/swiftui-
         | mac-2022/blob/a301437c16...
        
         | resist_futility wrote:
         | It literally says "UI Samples" right above it, it's not
         | supposed to be pretty
        
         | dmitriid wrote:
         | Despite what people are replying to you, yes, that is the
         | future of MacOS apps.
         | 
         | For proof, look no further than the new Settings.app. As Craig
         | Federighi said in Gruber's talk show, it was carefully crafted.
        
         | dagmx wrote:
         | Why would that be your conclusion? If you were to slap any UI
         | framework elements together without a design in mind,
         | especially for a form, they'd look like that.
         | 
         | This is just the author putting together the elements and
         | discussing them. They're not trying to design something.
         | 
         | There's tons of SwiftUI apps out there that are gorgeous
         | looking. As with any UI framework, it's up to the developers
         | who use them to make pretty or not.
        
         | ChrisMarshallNY wrote:
         | It's an academic exercise app. Those always look fairly
         | primitive.
         | 
         | I'm pretty sure that some of the new versions of the Apple
         | standard apps are in SwiftUI. They may be a better example.
         | 
         | Polish takes a great deal of effort, and often detracts from
         | the lesson.
         | 
         | Having done a number of things like this, I can attest to how
         | much work it is, and appreciate the effort.
         | 
         | All that said, I am still not entirely comfortable with
         | committing to SwiftUI for a major app development project. I'm
         | in no hurry. AAA apps are still using ObjC codebases, so
         | there's no real urgency.
        
       | Shadonototra wrote:
       | In comparison, looks at the mess that is WinUI
       | https://docs.microsoft.com/en-us/windows/apps/winui/winui3/c...
        
         | smoldesu wrote:
         | WinUI, and even SwiftUI, to an extent, are pretty contrived
         | systems for building apps. Maybe I'm crazy, but writing apps
         | for x11/GTK3 was probably the easiest time I had writing a GUI
         | application of any kind. I simply drafted up an XML file
         | containing all of my UI elements, then called some functions
         | that would wrap actual app logic around interactive components
         | at compile-time. The result? Designing an app can be done
         | entirely with drag-and-drop, then programmed with your language
         | of choice. I used Rust, and my resulting binaries were pretty
         | competitive all things considered.
         | 
         | Unfortunately, desktop Linux development has been on a constant
         | downhill trend for the past few years. Red Hat and GNOME have
         | been doing their best to pull the rug out underneath most of
         | the good development infrastructure, which is annoying to say
         | the least. It's a crying shame, but I have no doubt that Apple
         | will trounce whatever libadwaita nonsense is getting built by
         | GNOME maintainers right now.
        
           | thechao wrote:
           | I also found Win16/32 with "the giant switch statement" easy
           | to program & reason about. Once you weapped your head around
           | how to minimize the rdraw area, there wasn't much that could
           | wrong. OTOH, it was a really tedious way to GUI.
        
           | mixedCase wrote:
           | Have you taken a look yet at Gtk4 and libadwaita docs to form
           | such a strong opinion? Cambalache (Glade's author's new UI
           | builder) has only recently gained libadwaita support, but you
           | can do exactly what you describe.
        
       ___________________________________________________________________
       (page generated 2022-07-03 23:00 UTC)