home.social

#apple-development — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #apple-development, aggregated by home.social.

fetched live
  1. I get why it needs to happen, but needing an App Store Review to push a build to external testers pisses me off so much.

    I kinda wish Apple would just drop the ban hammer on people abusing external testing instead, but I've read enough reports of people being banned "for no reason" I'm not sure I trust that, either. Even if most of them are probably lying. #AppleDevelopment

  2. Apple, you want to use AI somewhere actually useful?

    How about I type in a Description of a bug in Feedback Assistant, hit something, and it guesses which area I'm seeing the issue in?

    That popup list is long enough to be useless, and it never has anything relevant.

    From now on I'm just picking "Something else on this list" without looking. #appleDevelopment

  3. Apple just approved my new app first try, and in less than 24 hours.

    I… I… I don’t know what to do with this. What the actual fuck? What do I do now?!? #appleDevelopment #iosDevelopment

  4. Xcode 26.4's Release Notes subheadings include anchors, but unfortunately the anchor IDs are the text of the subheading.

    There are a lot of #Resolved-Issues anchors in that document. #AppleDevelopment

  5. Simplifying, but Apple offered APIs using two path kinds: HFS uses colon as a path separator, POSIX uses slash. 25 years later, the HFS APIs are mostly dead. We just use POSIX.

    I just wrote a file with a colon in the name and sent it to the iOS share sheet… which shows a slash.

    I was going to convert both to hyphen/minus (the low ASCII one) out of paranoia anyway, plus 2026:03:25 is weird. I just wanted to see what would happen: I write POSIX, it shows HFS. Avoid both! #AppleDevelopment

  6. This has been a frequent friend in Xcode 26.3. Line 22 is only about 22 characters, so I don't know what it's on about. #xcode #AppleDevelopment

  7. AI is the Ultimate Expression of Open Source

    Someone left this comment on my blog last week:

    “I swear am not making this up… I tasked Claude with making a Web Cam App on OS X because I couldn’t find one that was easy to use and handled what I needed (Zoom in/out, Colour, Saturation). I noticed a lot of its web searches centred around Celluloid and JakeSpurlock.com… and wow, you’re further ahead of me, in fact I don’t need an app any more.

    However, you might get a cheeky PR in the next week or two as one feature missing from Celluloid (that I can see anyway) was a Vignette slider. I like a nice subtle vignette.”

    Read that again. Here’s what happened:

    1. I built Celluloid — a macOS virtual camera app — using AI tools
    2. Alan tried to build the same thing using AI tools
    3. Claude’s research surfaced my work
    4. He didn’t need to build it anymore
    5. He left a feature suggestion — a vignette slider
    6. I added it to the app

    The loop closed. We’re both further ahead.

    The Flywheel

    Open source has always been about this: someone builds something, shares it, others use it, some contribute back. The commons grows. Everyone benefits.

    But there was friction at every step:

    • Building required deep expertise and time
    • Discovery meant knowing where to look
    • Contributing meant understanding someone else’s codebase

    AI removes that friction.

    Creation: I shipped six apps working nights and weekends. Not because I suddenly became a better programmer, but because AI let me move faster. Ideas that would have stayed in my head became real software.

    Discovery: Alan didn’t find Celluloid by searching GitHub or Hacker News. He found it because Claude — in the process of trying to help him build a webcam app — kept pulling up my code and my blog posts as reference material. The AI discovered the existing solution while trying to create a new one.

    Contribution: The vignette feature Alan mentioned? I built it five days later. It’s already merged. The feedback loop between “I wish this had X” and “here it is” has collapsed.

    This Isn’t Hypothetical

    I’m not theorizing. This is my actual workflow.

    Recently I shipped:

    • Today — an RSS reader for iOS and Mac
    • ScriptStrip — local transcription for macOS
    • Jewel Case — Spotify album art display
    • Celluloid — virtual camera with filters
    • Draft Night — Little League draft software (open source)
    • WalkUp DJ — walk-up music for baseball and softball

    All built with AI assistance. All open source or indie. All feeding back into the ecosystem that made them possible.

    The models that helped me build these apps were trained on decades of open source code. Now my code becomes part of what trains the next generation. The flywheel spins.

    What Open Source Promised, AI Delivers

    The original dream of open source was democratization. Anyone could read the code. Anyone could learn. Anyone could contribute.

    In practice, “anyone” meant “anyone with the time and expertise to understand a complex codebase.”

    AI changes the denominator.

    When Claude helps Alan understand my code well enough to contribute a feature, that’s not cheating — that’s the promise of open source finally being delivered. The knowledge isn’t locked behind years of experience anymore. It’s accessible.

    More builders means more software. More software means more training data. Better training data means better AI. Better AI means more builders.

    The commons grows faster than ever.

    The Skeptic’s Objection

    “But you’re just generating slop with AI!”

    Look at the results. Celluloid works. People use it on Zoom calls. Alan found it useful enough that he didn’t need to build his own — and valuable enough that he’s contributing improvements.

    The quality bar is the same as it ever was: does the software solve a problem? Does it work? Will you maintain it?

    AI doesn’t change those questions. It just lets more people attempt answers.

    Where This Goes

    I don’t think we’ve fully internalized what’s happening.

    Every open source project is now more discoverable — not through SEO tricks, but because AI assistants will surface them when someone tries to solve the same problem.

    Every contribution barrier is lower — not because standards dropped, but because understanding code got easier.

    Every builder has more leverage — not replacing expertise, but multiplying it.

    Open source always had network effects. AI supercharges them.

    Alan tried to build a webcam app. He found mine instead. His suggestion made it better.

    That’s not a bug in the system. That’s the system working exactly as intended — just faster than we ever imagined.

    The vignette slider is live in Celluloid. Thanks for the suggestion, Alan.

    Related: I’m Shipping Like I Have a Team. I Don’t.

    #AI #AppDevelopment #AppleDevelopment #apps #Claude #MacOS #OpenSource #software
  8. Does `@testable import` work on macOS?

    I have a test target that builds fine for iOS but not on macOS. The failure is on a @testable import of the main target ("No such module"), which is a SwiftUI application that supports both.

    Any other thoughts? #appleDevelopment

  9. I filed a radar, FB21795992, for the Try It Free button title. It really should just say Subscribe. #AppReview #AppleDevelopment #iosDevelopment

  10. App Store Connect is throwing "something went wrong" about 30% of the time this morning. #AppleDevelopment #AppStoreConnect

  11. For now, I've pushed to my beta testers (slots open, ask if you want… if you'll use the app) and on Friday I'll push to review again. #AppleDevelopment #FretSketch

  12. I'm not as upset about this as I maybe should be. This isn't the bug I dev-rejected for, and I wrote a bunch of tests so I can tell when results change, inspected a lot of math and simplified a lot of code… without triggering any unintended changes.

    A change for 1.3 is likely going to be pushing all math into a reusable library. I felt like that was a "much later" thing, but the changes make it easier and this snipe hunt make it more urgent. #AppleDevelopment #FretSketch

  13. After almost two days of debugging a test I finally realized my expectation was wrong. #FretSketch #AppleDevelopment

  14. If I could edit release notes post App Store approval, I could just make a note of this math bug I found in my app: Double accidentals aren't going through tonal analysis correctly. Significant, but I could document that, release anyway, and fix in a 1.2.1.

    Instead, I'll have to reject. #AppleDevelopment #iosDevelopment #FretSketch

  15. I only realized today that an Xcode scheme can build multiple targets. #AppleDevelopment #Xcode

  16. I'm also working a bit with ordered sets, thanks to Swift Collections. I need to re-validate everything if I actually switch to them, but that should be easy enough as I can just sort each set on print to make sure they match the old results.

    I can't emphasize enough how excited I am about this release. I had to cut a bunch of stuff out of my 1.0 to get it out, and the voicing analyzing tool was one of my dream features. #FretSketch #AppleDevelopment

  17. I didn't submit a new version of FretSketch today. I got tangled in validating my chord validation. I found a data set I can compare to, and I've already found some problems — both in my data, and in that data set. I'm using the excellent ChordSymbol to figure out who's right.

    chord-symbol.netlify.app

    I'm taking tomorrow and Thursday morning off, then I'll be back at it. If I can't correct the chords that are incorrect in my data I'll just remove them for now. #FretSketch #AppleDevelopment

  18. SF Symbols 7.1 is presumably for Apple Creator Studio.

    I'd sure be nice to get new symbols we want, wouldn't it? 🙂 #AppleDevelopment

  19. Where does Xcode store where you've scrolled to in a file for its editor?

    I just want to reset it all so all my files open with the header visible. #AppleDevelopment #Xcode

  20. Has anyone gone through one of Apple's "App Review appointment" webex sessions?

    I solved my problem before I noticed they were available, but I've been pointing people to them and I'm curious if it's actually useful. (Also, I'll probably do one next time.) #appleDevelopment

  21. Near as I can tell, this is an incomplete bug fix: the project didn't actually specify 11.5 before, so why the build thought 11.5 was the minimum deployment target before is a mystery to me.

    But the Xcode target editor *STILL* showed the minimum deployment target as 11.5.

    If they do an Xcode 26.2.1, I bet a fix for this goes into it. #AppleDevelopment #Xcode

  22. Just ran into a small bit of unpleasantness with Xcode 26.2: My library was set to a minimum deployment of macOS 11.5, but trying to use it in a project that required 26.1 warned me that the library was set to 26.2.

    Selecting 11 again seems to have inserted missing lines in project and fixed the problem, but Xcode recognized it as deploying to 11.5 *before* that as well.

    #AppleDevelopment #Xcode (1/2)