Sign in

iiinova is part of the Atmosphere — an open, public network where you own your identity.

James Savage

@axiixc.social.axiixc.com.ap.brid.gy
34 followers 5 following 669 posts

Nature enthusiast, baker, knitter, and photographer. Supposedly knows stuff about computers too. Previously Safari & App Clips. He/him. 🌉 bridged from ⁂ social.axiixc.com/@axiixc, follow @ap.brid.gy to interact

PostsRepliesMedia
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 16/10/2026
Don’t know if I *love* it, but I think this is probably what I’ll be doing with @dropstracker’s Duo support, at least until I see more of how the design direction shakes out. (Now to go turn my very messy prototyping code into something I can land 😅.) #iOSDev #BuildInPublic
iPhone Duo’s front screen showing a caffeine tracking app with a graph for caffeine falloff and water. A list of samples is below the graphs. A small bar with drinks and a plus button is at the bottom of the screen.iPhone Duo folded open and flat. The charts are now to the left of the list of samples.iPhone Duo folded partially open. The bottom list of drinks has moved to the left side of the screen. Some additional spacing has been added between charts and list of samples.
041 4
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 26/09/2026
RE: social.axiixc.com/@dropstracker/117… Super excited (and only a little nervous) to say that Drops, my caffeine tracking app, is finally out! After 12 years, I once again have something on the App Store.
social.axiixc.com
113 3
Reposted by James Savage
Sophia :AAAAAA: @via.myf.one.ap.brid.gy · 22/08/2026
For the past almost a year, I’ve been building a fully working, 1:1 scale Tune Thumper Bike from Mario Kart World! :sadok: video: youtu.be/vbM31wagyRg The bike is fully functional. The cassette tape door is also a Nintendo switch 2 dock, so when you put the […] [Original post on myf.one]
0610 10
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 13/08/2026
Drops, my caffeine and water tracking app, is nearing the finish line. It’s got a nice graph to track how caffeinated you are, colorful themes (just for fun), and above all tries to make manual data entry less of a chore. If that sounds interesting, I’d love it if you gave the TestFlight a try: […]
social.axiixc.com
Original post on social.axiixc.com
215 5
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 06/06/2026
I always feel weird making these kind of posts, but I'll be around the bay this week for #WWDC, and at Apple Park on Monday. If you see me say hi! I've got a bright green mohawk, so shouldn't be too hard to spot. 🤣
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 19/05/2026
Still haven’t figured out how to enable an IAP in TestFlight, which is a shame because I’m really happy with how this new theme picker turned out. #iOSDev #BuildInPublic
Screenshot of an iOS app showing a row of four thumbnails for choosing a tint color and three font choices.
050 5
Reposted by James Savage
Sophia :AAAAAA: @via.myf.one.ap.brid.gy · 31/03/2026
Playing Gusty Garden Galaxy on my Mario Kart Bike is a transcendent experience
011 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 27/02/2026
Huh. Really didn’t expect this to work, but sometimes everyone just gets tunnel vision I guess. #Splatoon3
010 1
Reposted by James Savage
Prof. Sam Lawler @sundogplanets.mastodon.social.ap.brid.gy · 05/02/2026
Well, everyone, you can now submit a comment to let the FCC know what you think about SpaceX asking for 1 million satellites for "AI datacenters" whatever the fuck that means. docs.fcc.gov/public/attachments/DA-… Comments due March 6. I am having a very hard time believing […]
mastodon.social
Original post on mastodon.social
915108 108
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 31/12/2025
I've gone back and forth on this over the years, but I think I've come to like the naming scheme of Module.Type+Extras.swift for general extensions in #Swift. Since they're not named (like ObjC’s categories) I find there’s no need for a unique +Name per […] [Original post on social.axiixc.com]
Screenshot of many Swift files in Xcode’s sidebar, such as BinaryFloatingPoint+Extras, CoreGraphics.CGPoint+Extras, and Foundation.URL+Extras.
001 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 29/12/2025
Did some hiking today 🥾 #Nature #Photography
Nature scene with snow covered pine trees and a large hill in the distance. A small lone tree sits in the middle of a clearing. There are ski tracks to the left.
091 9
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 28/12/2025
On a related note, I keep checking to see if SortedSet is available in swift-collections so I can avoid a bunch of this too 😬 github.com/apple/swift-collections/…
github.com
Implement `SortedSet`, `SortedDictionary` · Issue #1 · apple/swift-collections
OrderedSet and OrderedDictionary work great when we need to keep their elements in the order they were inserted, or if we only need to infrequently reorder/sort them. However, inserting (or removin...
010 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 28/12/2025
Clever me used a property observer to ensure I couldn't skip updating dependent values, but then I was lazy and updated the property more than I realized. This meant the side effect actually ran 3×, one of which would occur with unsorted data. Since this […] [Original post on social.axiixc.com]
Code change showing switching from updating a property inline to making a copy, updating it, then reassigning it once.
110 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 28/12/2025
I'm gonna condense this a lot, but I spent *days* debugging an assertion failure where it looked like I was getting a value transposed between two days, but nothing was obviously wrong in my logic. Turns out I kinda just bamboozled myself by adding the assertion while working on feature X, then […]
social.axiixc.com
Original post on social.axiixc.com
110 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 26/12/2025
Would it be correct to assume that there's no good way to pull off the typical fork/PR workflow across GitHub and Codeberg? Presumably that's something that federation would solve, though I doubt Github would ever implement it. That does seem to imply that (at least for now) if I wanted to […]
social.axiixc.com
Original post on social.axiixc.com
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 25/12/2025
Even leaving aside use edits, some feeds are incomplete, with a fixed sliding window of episodes. I'm not sure how feasible it is to then losslessly union those over time. Not to mention how to handle top level metadata that could also change over time 🤔
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 25/12/2025
I also had some goals for this project which I'm starting to think might be in conflict, namely that I wanted to properly archive the original feed XML (to avoid stripping non-standard metadata) and to use XML as the canonical storage for shows. However, if I want to build a GUI to edit shows […]
social.axiixc.com
Original post on social.axiixc.com
100 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 25/12/2025
So after looking into the various podcasting XML specs, I'm having this issue where there's like five ways to specify some data, which wouldn't necessarily be an issue, except that it appears we need some meta-spec to explain what priority order to sort those in for display if they don't all […]
social.axiixc.com
Original post on social.axiixc.com
100 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 24/12/2025
Hmm, okay, no I'm kinda back with controls on top now. There's like three hacks involved in making this work though 🥲
Screenshot of a macOS window with playback controls and a time scrubber replacing the traditional toolbar.
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 23/12/2025
The issue with tea is that it’s something my brain exclusively thinks to make after sunset 🥲 (Yes I know about herbal tea, but when you want tea it’s not the same.)
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 22/12/2025
@via well we can’t really do Twitter clients anymore 🥲
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 22/12/2025
And h/t to @natpanferova, for one of the first search results on symbol effects, that helped me figure out why my code wouldn't compile. (Turns out the replace effect is spelled as image.contentTransition(.symbolEffect(.replace)), not just image.symbolEffect(.replace) 😬) […]
social.axiixc.com
Original post on social.axiixc.com
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 22/12/2025
Progress!
200 2
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 22/12/2025
I've been told tabs are better because people can choose their indent level at display time, which I'm sure is true, but it also makes column alignment effectively impossible. Not just ASCII art, but like any sort of wrapping scheme. It probably does not […] [Original post on social.axiixc.com]
Screenshot of a source code diff and the same code in Xcode. One using 2-space indent and one using 8-space for tabs.
020 2
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 22/12/2025
I've been trying out using swift-format and tabs based indentation on a project lately, because I've been told both are good things to embrace, but a month in and they're still both driving me nuts. Tabs are honestly not a big deal *except* for everything that demands displaying them as 8-space […]
social.axiixc.com
Original post on social.axiixc.com
100 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 20/12/2025
Putting playback controls on the bottom was originally me being too lazy to figure out how to override the title bar, but it's also kinda growing on me. If I do move it to the top I'd also need to relocate all the actual toolbar buttons too, and they'd probably just end up in a bar on the bottom […]
social.axiixc.com
Original post on social.axiixc.com
100 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 20/12/2025
Got downloads working. Playback is still an absolute UI fabrication. I am clearly procrastinating from something, though I remain unsure of precisely what.
Screenshot of a macOS app window showing a list of episodes from the Playdate Podcast. The episode for Untitled Goose Game is downloading, with a progress indicator shown in the detail pane of the app.
200 2
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 20/12/2025
I know why DRAM prices are going crazy, but whose fault is it that HDD prices seem to be going up too?
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 18/12/2025
UIStackView is my nemesis 🥲 I can do regular auto layout constraints but somehow stack views never work like I think they should.
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 17/12/2025
Is it just me, or does Xcode 26 randomly make the sidebar super wide when you’re not paying attention. I don’t think im doing this.
010 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 17/12/2025
@jwisser a possum wrote these
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 17/12/2025
Some noteworthy corn dogs from this weekend. Ramen with shrimp flavor and hot Cheetos dusted.
A corn dog with uncooked crumbled ramen pieces baked into the breading.Corn dog with red Cheetos dust, green onions, and a sauce (I forget what the sauce was).
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 16/12/2025
Starting to think that no amount of @/preconcurrency is gonna let me write a Combine.Subscriber without some error 😰
010 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 11/12/2025
iOS’s global “Allow Apps to Request to Track” toggle is great. Next they should add one for “Allow Apps to Display Tips and Welcome Screens” though. 1st party apps not excluded 😬
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 11/12/2025
I wasn't going to post this because it's not done yet, but then I realized that it's not some work project that I only get to talk about once a year and I can just do things. Still unlearning I guess.
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 11/12/2025
What's that one Jurassic Park quote? About how you shouldn’t necessarily do things just because you can? 🤣
Screenshot of a podcast library app with entries for Gastropod, Panic Podcast, and Playdate Podcast; showing various episodes and episode description in a detail view.
200 2
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 10/12/2025
If I could just get normal amounts of sleep I bet I would be unstoppable 🥱
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 09/12/2025
@mikeymikey I just meant that our cats never grew out of it 🤣 Adorable though 🥰
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 09/12/2025
@mikeymikey just this year? 😅
100 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 08/12/2025
What did I do over the weekend. Was it a) finish one of the things I’ve already started, b) important tasks that I need to get to, or c) wrote the skeleton of a podcast archiving app to organize loose mp3s I may never listen to again?
100 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 03/12/2025
@jwisser this reads like joke UI. Like when everyone was saying Microsoft was adding Stories to Excel.
100 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 02/12/2025
Boo… 😢 www.tahoedailytribune.com/news/no-s…
tahoedailytribune.com
No snow in sight: Tahoe faces another 10-day dry spell
TAHOE BASIN, Calif./Nev. — Tahoe’s early-season snow outlook is off to a disappointing start, with no measurable snowfall in the past 10 days — and no relief expected for at least another 10. As of...
020 2
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 01/12/2025
@JasonAnthonyGuy unclear ¯\\_(ツ)_/¯
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 01/12/2025
@JasonAnthonyGuy this actually appears slightly better than it was in the past. Tapping the yelp review blocks now does pull up a web sheet (dunno why they won’t punch out) but trying to view a photo still shows an App Store sheet instead.
100 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 01/12/2025
@JasonAnthonyGuy natural follow on to the Apple Maps integration, which won’t even let me tap a Yelp link without forcing me to the App Store. Universal Links who?
100 1
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 30/11/2025
Is it weird if I still wish that Swift package imports had just use reverse DNS notation? Yes it got silly in Java, but also fighting over top level short names is silly too. (ex: `import org.swift.algorithms` not `import Algorithms`)
000 0
James Savage @axiixc.social.axiixc.com.ap.brid.gy · 29/11/2025
So many ducks 😵‍💫
Duck in front of a pond pecking at the ground.Small pond just filled with ducks.
000 0