Show newer

I moved it into the ToolbarItem when I was recording the iPad promo videos, as it was presenting from the whole view, not the button, and it looked naff.

But now I guess I can't have that without iPhone transitions breaking.

This framework is exhausting.

Show thread

So I noticed NavigationStack transitions had stopped working in Big Mail...again.

After spending an hour working back through my commits to find what stupid thing is causing it this time, the offender is…

...drumroll please…🥁

✨ Presenting a confirmation dialogue from a ToolbarItem ✨

The Big Mail app on your device grants Big Mail Online a temporary access token to listen out for new inbox events.

When a new message arrives, Big Mail Online sees only the response "EXISTS".

This is then silently pushed to your device, which wakes up and connects directly to your mail provider to fetch the message.

Not even Apple see the contents, as it's just an empty push notification.

Show thread

One of the more ambitious aspects of this project was how to bring Big Mail into the cloud: V1 was DOA without push and rapid sync.

But how to do it and still claim to be on-device/privacy centric?

My answer to this is Big Mail Online. A totally optional, private push and sync service.

I had one simple rule developing it: no message data get processed, parsed, or stored, on any server, ever.

Show thread

email is great i love how everyone puts their own unique spin on formatting things

Show thread

So uhhh. Let's say you have an app that uses Passkeys exclusively….how do I provide a login to App Review? 🤨

Sheety serves up 56 GB of *text* every 24 hours now.

Hey, I think I’m getting the hang of this web services thing!

Show thread

"Let me just do a quick refactor and make some of these functions generics"

Show thread

Me: Hmm, I’m struggling to align this unread indicator, let’s see how Apple does it in Mail

Apple Mail:

Writing these packages has also been a fun exercise in how to design APIs now that we have concurrency.

For example, subscribing to IMAP idles (pushed events), I borrowed the 'updates' pattern used in the new StoreKit 2 API. It's an AsyncStream that just runs forever, and gets iterated over when new events occur.

Show thread
Show older
The Not So Big Company

The home of The Not So Big Company on Mastodon.