Show newer

@tclementdev you're right removing the tag stops it on swipe, though it does still evaluate the whole collection on init

@anthony there is a private property on UIScreen called _displayCornerRadius which you should definitely not use.

The final part of the effect is to get the toolbar and page to move together as one. SwiftUI toolbars are anchored to their parent NavigationStack, so are unaffected by any page movements.

The trick here was to implement my own replica toolbar, and embed it in the safe area of the page.

Show thread

Instead, our new PageView container requests views one by one, only as they're needed.

Sometimes an imperative API is what you want 😅

PageView then has platform specific implementations using UIPageViewController and NSPageController, respectively.

You can take a look at the full code here: gist.github.com/phillipcaudell

Show thread

If you're familiar with SwiftUI, you might think it’s a TabView with a page style, but it's not.

TabView needs to know all your views upfront, which if you have lots of messages, is very expensive.

In this example, TabView reevaluates all 1,000 items on each and every swipe 🥴

Show thread

A new interaction in Big Mail is swiping between messages. The message background extends into the UI chrome, and when combined with the device-matched corner radius, creates the illusion of pushing the whole display – satisfying!

🧵 Here's how it's built, along with some code

@gadgetero @updates still on ice for now (you can run the iPad app on M1 Mac, but I know it's not quite the same).

@cyril@sigmoid.social there must be a minimum of one toolbar item in each column’s toolbar, otherwise it’ll appear as one long bar.

@cyril@sigmoid.social it’s a three column NavigationSplitView, with toolbar modifiers on each column’s content view.

Hello!

I still need to post an introduction, so here it goes.

I'm Phill, one of those designer/developer types. I quit my VC job a couple of years back to bootstrap my own business, The Not So Big Company (@updates).

I'm working on a fast and modern new mail client called Big Mail. The whole thing is written in Swift and SwiftUI, which has been an experience. 🤓

Launching very soon. In the meantime, enjoy some screenshots!

@dimillian @curtclifton +1 this. I have a List with a Grid containing featured items in the first row (similar to the Reminders app). The menu modifier is applied to the whole row. This isn't the case with other touch states like hover and on press, which behave as expected. Filed a feedback too, if helpful (FB12011885)

"In SwiftUI how do I create an angular progress indicator view that animates on change?"

The code straight up compiles when pasted into Xcode. Pretty remarkable.

Show thread

Uhmmm, okay. Wow. I asked ChatGPT how to parse IMAP responses in Swift.

Whilst it isn't quite right, it's astonishingly close.

The Not So Big Company

The home of The Not So Big Company on Mastodon.