Published Jan 20, 2024

365: Day-One Cowboy

Join John Siracusa and Marco Arment as they navigate the complexities of software development, tackling app activation challenges and the intricacies of programming without servers, while offering insight into the hurdles developers encounter with Apple's APIs and ensuring reliable app performance.
Episode Highlights
Accidental Tech Podcast logo

Popular Clips

Episode Highlights

  • API Issues

    The reliability of Apple's APIs poses significant challenges for developers, as highlights the persistent bugs and lack of workarounds. He shares his frustration with APIs that fail to execute commands, leaving developers without recourse. "You can do stuff like that. But here's, here's the question, what's your recourse then? You're going to call it again? I guess I can tell you from experience that calling it again will not help you," John explains 1. This unreliability leads to frequent bug reports and a general sense of malaise among developers relying on these APIs 2 3.

       

    UI Development

    Creating user interfaces is fraught with complexity, as and discuss the intricacies of designing intuitive and functional UIs. John describes the difficulty of conveying functionality through UI, especially when dealing with global and per-display settings 4. "How do I convey to the user how all these different things work? It's hard enough if you look at the switch glass preferences," he notes 4. Casey echoes these sentiments, sharing his struggles with Apple's APIs that often hinder the development process 5.

       

    App Functionality

    Ensuring application functionality is a complex task, with discussing the challenges of race conditions and integration issues. He explains the unpredictability of application behavior, particularly with commonly used apps like Finder and Safari 6. "When it stops working, it doesn't stop for all applications most of the time. Usually it stops for one or two of them," John notes 6. To address race conditions, he employs creative solutions, such as using shared containers to synchronize application states, though these solutions are not foolproof 7.

Related Episodes