Favourite rule from building 6pm for the iPhone Duo: folding the phone shut closes your day, but only when nothing is left to decide. Cards still waiting? It carries on on the outer screen.
Small rule, but it's the whole app's promise: nothing gets kept that you didn't decide.
Khanh Bui retweeted
The iPhone Duo goes on sale tomorrow. 6pm already knows how you're holding it.
We built five layouts for one phone, all on the Xcode 27.1 simulator. What we learned designing a money app for a hinge 🧵
6pm 2.0 is approved, and it stays on hold until 18:00 ICT on Fri 6 Nov, because the whole app is built around that hour.
Built with Expo plus a few small Swift targets. Ask me anything about it.
Build-in-public note: Apple approved 6pm 2.0 this week. We're not shipping it the moment review passed. It's held for a manual release at 18:00 ICT on Fri 6 Nov.
Why 18:00 and not midnight? The whole app is built around one moment: at 6pm you swipe once to close the day, and the next morning you wake up to one number, what's safe to spend today.
So it launches at the hour it's named after.
Other builders: did you pick your launch time, or did the review queue pick it for you?
Khanh Bui retweeted
The difference between "animated" and "native" is what happens when your finger lets go.
UIKit doesn't ask "how far did you drag?" It asks "where were you heading?"
So in our Expo app, every swipe projects its release velocity with UIScrollView's own deceleration rate before deciding:
project(v) = (v/1000 · 0.998) / (1 − 0.998)
A short fast flick commits. A long slow drag springs home. And the spring that finishes the move inherits the finger's velocity, so there's no seam.
That one function is 3 lines, runs as a worklet on the UI thread, and is unit-tested in Jest.
We wrote up everything that makes 6pm's "close the day" swipe feel like iOS: Reanimated 4 worklets, rubber-banding, real UISheetPresentationController sheets instead of drawn ones, and a 4-word haptics vocabulary.
All open source (Apache 2.0).
Khanh Bui retweeted
Sound on 🔊
Every motion in this video is the real app, screen-recorded: wheel detents, a sheet you can fling, swipe-to-confirm, a receipt that prints, a stamp at 60fps, a number that rolls.
We added one click for every row the wheel passes, because that's how it feels in the hand with haptics.
Built with Expo + Reanimated 4, all on the UI thread. Which one got you?
Khanh Bui retweeted
My awesome colleague Callum McMahon, who discovered this, wrote an explainer and postmortem going into greater detail: futuresearch.ai/blog/no-prom…
Khanh Bui retweeted
Developing Taste
emilkowal.ski/ui/developing-…
youtu.be/GhmEwRjaqnE
username: quocs
Khanh Bui retweeted
You asked, we answered. The Superbia song “Sextet Montage” is now available, in honor of Jonathan Larson’s 62nd birthday. ❤️ Stream it now. #ticktickBOOM
My top 25 favorite movies of 2021, a countdown video. Hope you enjoy it!
youtu.be/TQE8c5UTck0
Complete list: boxd.it/eEnJU
Khanh Bui retweeted
New major release of Gesture Handler is here 🚨‼️ We are proud to present Gesture Handler 2.0 with new simplified API, Manual Gesture feature allowing for full control over gesture recognition logic, and more – check out the highlights in our blog post 👉 blog.swmansion.com/introduci…
Khanh Bui retweeted
Advertising my new open source library that brings the awesome @_phosphoricons to React Native. Supports all icon variants.
github.com/duongdev/phosphor…






















