I've been rewriting the visit manager in Facades. The old layout was a Jenga tower of carefully placed UI tricks that threatened to collapse with the tiniest update to SwiftUI, and it stressed me out every day. The new version is faster, more functional, and shed about 200 lines of code! Photos 1 & 2 are before, 3 & 4 after.
One of the most fun parts of the old UI (and people's favorite) was the "printer" animation when you added a visit. I knew I needed something just as fun if I was going to replace it. I'm super happy with what I came up with. I don't know if everyone who uses Facades is old enough to get the reference, but your visit receipt image "develops" like a Polaroid. The whole animation is paired with a really satisfying haptic.
@michaelsteeber An unusual texture at the entrance here! 😛(They’re replacing the tiles at Washington Square. Guy told me the new ones are porcelain so they’ll be easier on their feet (?))
@cabel Oh, fascinating! So this store was built during a very brief period where they tried installing gray terrazzo (it’s all carved up at the door?) It basically looked like plain polished concrete. The new floor (the rest of those tiles) are the same stone as most other older stores AFAIK. Unless they've somehow changed the tile material without changing the appearance.
I’m using scrollPosition in SwiftUI on a new view, and I find it surprising that the position won’t update unless you physically drag your finger on the ScrollView. Removing/reordering items in the view doesn't trigger an update (even though the visible item changes) and using a ScrollViewReader with .scrollTo does not trigger an update. So when I remove an item from my list, I have to explicitly update the value of scrollPosition to an index +/- 1 depending on if the item was last in the list.
This is a problem because in this particular view, scrollPosition tells me which item to delete (the active one), so if the position isn't up to date, a nil item will be deleted.
@bgannin@marcel IMO, gray is ambiguous because the tags below are also gray. I'd make it more explicit with both a text label and icon that match (like “location.slash.fill”) and either “Using Location” or “Location Off." Even then, I think some users won't realize it's a toggle unless you're able to differentiate it from the tag buttons more. I am continuously burned by designs that are clever but not discoverable, so my approach now is to opt for platform conventions as much as possible.