Shiny is better.

Before the show tonight I’ve squashed some little bugs: added reloading animations to timelines, relevant timelines reload after publishing a post, drafts buttons show full/empty status, and post context menus better reflect a post’s state #prosedev
1241250
My list of missing features is getting shorter! I still need to add back in basic actions like bookmarking, reposting, and deleting (and some timeline plumbing to make it happen). Search, I will need to settle for simple at the moment. #prosedev
1239466
I was a bit manic today but I managed to tackle a bunch of things. Hilariously, I solved a problematic roadblock using an autoresizing mask. I think thats like old school springs-and-struts layout stuff if I’m not mistaken? #prosedev
1239016
The refactor was actually three simultaneous ones. I’m still working on transitioning some code, but the structure is in place. It’s so nice to have it running on device again. #prosedev
1238443
A Christmas holiday refactor! #prosedev
1237226
Hidden from who? That’s a very good question. #prosedev
1235657
I’ve found a better dependency management strategy, inspired by GRDB’s EnvironmentStateObject [github.com] but using Observation (aka iOS 17) in place of Combine. Now I can manage dependencies using ViewModifiers #prosedev
1235650
Turns out making model objects actually objects is a good idea #prosedev
1234934
I’m so dumb. I set my phone’s time to midnight so I could grab a rare fish in Ridiculous Fishing. Hours later, I spend 50 minutes trying to figure out why my relative timestamps are off by weird amounts, but just on my device… hmmm #prosedev
1226443
I’ve been using undocumented variadic API’s to access per item layout information. It’s only relevant in a few edge cases; a lot of unnecessary overhead each view update. So, I switched to using Transaction’s new subscript [developer.apple.com]. #prosedev
1225751
Timeline caching works, cached posts are refreshed and newer posts are fetched automatically. Pull to refresh and other loading actions can overlap asynchronously so I added more robust failure states if data mutates unexpectedly. #prosedev
1225183
It’s premiere week at the day job so I might be stacking my plate too high, but I want to have timeline caching, bookmarking, and inline images/video links working in posts again.

Each of which I’ve had working but just not translated over yet #prosedev
1223330
There are still some menu interactions to solidify but before that I wanted to share where @Prose is at currently. It's a bit rough and bare at the moment but it's a solid base. #prosedev #dev
1222830
That decision to step back into UIKit payed off, I managed to squash some long time annoyances with my SwiftUI implementation. Plus, I learned a few things for the future about how update cycles can mess with UIKit controls. #prosedev
1222517
Profiles are back with a design that leans slightly into a card metaphor. A definitive top edge interacts with transparent toolbars better. I could try for a faded bleed extending under toolbars but I would end up hiding an already short image. #prosedev
1221561
Rounding to the next whole interval means views update simultaneously but they can manage their update frequency internally. I really wanted to avoid a shared timer ticking every second even when no relative dates are visible. #prosedev
1221374
Cleaned up replying, added back in some text selection functionality, and cleaned up some bugs and spaghetti code. #prosedev
1219931
I'm so pleased with my lazy scroll view progress. It's working far more reliably and I've managed to make a view that is not project specific. #prosedev
1215618
So my ScrollView implementation has everything perfect (so far) except an edge case of an edge case. It’s infuriating but I need to move on to other problems. #prosedev
1202284
So, I have a working lazy ScrollView implementation. No gotchas, no odd edge cases. The single trade off is I need to reimplement swipe actions, which isn’t as bad as I originally feared. #prosedev

Time to pack. Then some drinks.
1201187

You gave up too much to turn back now.