The Curious Engineer

All blogs / Mobile / iOS / Android

Jesse Squires

jessesquires.com

Turing complete with a stack of 0xdeadbeef

Mobile / iOS / AndroidSoftware / engineering practiceDev tools / editors / IDEs

Posts
311 from 9 Jun 2014 to 7 Nov 2025
Posting
now and then (1 in the last year)
Kind
personal blog
Feed
https://www.jessesquires.com/feed.xml

2025 8

  1. Mariposa: a lightweight Swift CLI to automate sharing blog posts to social media
  2. Workaround: how to silence individual deprecation warnings in Swift
  3. How to automate perfect screenshots for the Mac App Store
  4. How to remove unwanted Swift Package schemes in Xcode
  5. AI Code review is always wrong
  6. Xcode Tip: spell checking
  7. Reading Notes: From misery to boredom to anxiety
  8. Type erasure for Equatable and Hashable types in Swift: Lessons from ReactiveCollectionsKit

2024 18

  1. UIKit DiffableDataSource API inconsistencies with Swift Concurrency annotations explained
  2. Diffing in ReactiveCollectionsKit: Understanding Identity and Equality
  3. Introducing ReactiveCollectionsKit: A Swift replacement for IGListKit
  4. Kintsugi
  5. SwiftUI's Observable macro is not a drop-in replacement for ObservableObject
  6. UI testing improvements in Xcode 16
  7. Our App Store screenshot nightmare is (almost) over
  8. SwiftUI app lifecycle: issues with ScenePhase and using AppDelegate adaptors
  9. Swift concurrency hack for passing non-sendable closures: Uncheck yourself before you wreck yourself
  10. Workaround: Xcode deletes Package.resolved file and produces 'missing package product' errors
  11. The curious case of Apple's third-party SDK list for privacy manifests
  12. Workaround: Swift scripts importing Cocoa frameworks broken on macOS 14
  13. A simple fastlane setup for solo indie developers
  14. Mac menu bar apps for sale
  15. Swift protocol requirement quirks
  16. App Store screenshot requirements need to change
  17. Workaround: Xcode simctl status_bar is still broken for iOS 17 simulators
  18. Another frivolous and frustrating App Store rejection

2023 34

  1. A list of books I read in 2023
  2. Top posts of 2023
  3. How to fix Mac menu bar icons hidden by the MacBook notch
  4. Find me on Mastodon
  5. Going indie 4
  6. Xcode shell env
  7. M3 performance
  8. New m3 mbp
  9. Fix airpods reset
  10. Github tip filter involves
  11. Swift url absolutestring path
  12. Going indie 3
  13. Navigation link accessory view swiftui
  14. Stop prefixing userdefaults keys
  15. Creating dynamic colors in swiftui
  16. Where are xcode bookmarks stored
  17. Going indie 2
  18. Estimating rss subscribers
  19. Linebreakstrategy pushout
  20. New app taxatio
  21. Going indie
  22. Exploring a new ios codebase
  23. Hardcore and karma
  24. Improve multiplatform swiftui code
  25. Xcode tip filter modified files
  26. Icloud tabs bug
  27. Xcode tip filter console
  28. Terminal tip say
  29. Xcode tip sharing breakpoints
  30. Ios view controller loading
  31. Goodbye twitter
  32. Mac os x vs macos
  33. Upgrading to macos ventura
  34. Eventmachine failure on macos ventura

2022 33

  1. Rss to mastodon
  2. Powerful navigation api
  3. Simctrl status bar broken
  4. Mastodon
  5. Sharing code in swiftui apps
  6. Implementing a main thread watchdog on ios
  7. Automatically assign milestones with github actions
  8. Disconnected
  9. My website disappeared from bing and duckduckgo part 2
  10. May 16
  11. Nimble 10 released
  12. Docc on github pages
  13. Github suspending russian accounts
  14. Quick 5 released
  15. Duckduckgo removing other sites
  16. Fastlane version with xcconfig
  17. Comparing release branch strategies
  18. Gh action merge release to main
  19. My website disappeared from bing and duckduckgo
  20. Quickly displaying the swift version that ships with xcode
  21. Mac sigh of death
  22. Decimal vs double
  23. Icloud failures developer relations
  24. Core data optionals
  25. Thich nhat hanh
  26. Nfts and web3
  27. The best and the worst
  28. Screen time is drunk
  29. Users and privacy
  30. Imessage spam and reporting abuse
  31. Time machine error 35 monterey
  32. On third party apple watch apps
  33. Ios app library is drunk

2021 56

  1. Top posts of 2021
  2. Reading list 2021
  3. My first apple watch
  4. Apple watch thinks im dead
  5. Please dont copy my site
  6. My worst tech interview experience
  7. Yo wheres my juicero
  8. Reading notes abolition of work
  9. Fix lldb rpc server crash
  10. Reading notes the wage system
  11. Swiftui tips for organizing multiplatform projects
  12. Industrial sabotage
  13. Xcode 13 device orientation bug
  14. Using an appdelegate in swiftui
  15. First impressions of swiftui
  16. Deprecating presenterkit
  17. Swift package ios tests
  18. Xcode 13 framework test fail
  19. How to start a blog
  20. Dont let them loot
  21. Delete app during ui tests
  22. Git aliases to improve productivity
  23. Recently updated posts
  24. Github actions workflows for automatic rebasing and merging
  25. An ios shortcut to show proof of vaccine
  26. Useful label based github actions workflows
  27. Caching bundler on github actions
  28. Different ways to observe properties in swift
  29. Fixing a hard to find bug in dark mode
  30. Debugging diffabledatasource cellproviders
  31. Diffable data source behavior changes and reconfiguring cells in ios 15
  32. Is swiftui ready
  33. Apple docc great but useless for oss
  34. What is a rent strike
  35. Rss feeds jekyll and absolute versus relative urls
  36. To distribute in the mac app store or not
  37. Three months of big sur
  38. Ios 14 app library
  39. Resources for learning swiftui
  40. Time machine error 45 big sur
  41. Why swift closures are not equatable
  42. Migrating omnifocus to a new mac
  43. Apple cooperation with authoritarian governments
  44. A better approach to writing a userdefaults property wrapper
  45. Returning to normal part 3
  46. Xcode tips for everyone
  47. How to test your macos app or not
  48. Using pipes in swift scripts
  49. Returning to normal part 2
  50. Xcode ui testing reliability tips
  51. Returning to normal
  52. Deleting tweets and other social media content
  53. Fixing macos search bugs
  54. A web host worth using
  55. How to reboot touch bar without rebooting macbook
  56. Top posts of 2020

2020 48

  1. A list of books I read in 2020
  2. The different types of self in Swift
  3. Resources for learning about compilers and LLVM
  4. Obscure bridgeOS crash
  5. What type is self in a Swift self-executing anonymous closure used to initialize a stored property?
  6. Useful Danger rules for Bitrise
  7. The largest strike in history
  8. Running multiple instances of Danger
  9. How to fix Ruby/Bundler error 'No such file or directory' on NearlyFreeSpeech.net
  10. Radical readings for the Tech Worker
  11. Seasons Greetings from your CEO at TECH COMPANY
  12. Swift Unwrapped with Jordan Rose
  13. Swift deinit is (sometimes) not called for throwing or failable initializers
  14. Why is Apple acting like an Asshole?
  15. Don't forget the keyboards
  16. Unpropertied
  17. zsh could not find CocoaPods
  18. GitHub Tip: watching releases
  19. How to fix the incomprehensible tabs in Xcode 12
  20. Xcode 12 drops support for iOS 8 and how to fix deployment target warnings in CocoaPods
  21. Time Machine error 45
  22. Swift globals and static members are atomic and lazily computed
  23. The best Touch Bar configuration for people who hate the Touch Bar: Or, how I finally upgraded my 6-year-old MacBook
  24. Quickly switching between Xcodes
  25. Swift tip: marking unused required initializers as unavailable
  26. Who do they protect?
  27. On non-native apps: JavaScript doesn't suck but your app might
  28. Simple, private, and open source analytics with GoatCounter
  29. Approved for GitHub sponsors
  30. Updating permalinks and adding redirects for Jekyll sites
  31. Deprecating JSQDataSourcesKit
  32. Fully automating perfect status bar overrides for iOS simulators with Nine41
  33. Previously previously previously relocated items in macOS Catalina
  34. All we have is each other: Bay Area mutual aid resources for COVID-19
  35. Running Danger on GitHub Actions
  36. Open source libraries for building menu bar Mac apps
  37. Implementing Dark Mode and using CGColor
  38. Another issue with SwiftPM Xcode integration
  39. JetBrains Mono and disabling font ligatures
  40. My experience replacing CocoaPods with SwiftPM
  41. Mac app tests fail with hardened runtime enabled
  42. Setting up default community health files on GitHub and crafting a thorough Contributing Guide for any open-source project
  43. Xcode Tip: Using breakpoints as bookmarks
  44. AppleScript to export open Safari tabs to OmniFocus
  45. Time Machine failing on macOS Catalina
  46. Observing appearance changes on iOS and macOS
  47. Selecting an Xcode version on GitHub Actions CI
  48. A list of books I read in 2019

2019 19

  1. A script to automate overriding iOS simulator status bar values
  2. Reading Notes: The Fire Next Time
  3. Reading Notes: Bay Area Homelessness report
  4. Backing up your iCloud Drive files using rsync
  5. Overriding status bar display settings in the iOS simulator
  6. The ACA and your credit report
  7. Swift 5.1 with Doug Gregor
  8. New iMessage sticker pack: plurals and noun
  9. Introducing Red Eye
  10. The impossible
  11. Workaround for highlight bug in NSStatusItem
  12. An update to Lucifer
  13. Implementing right-click for NSButton
  14. Linked Out
  15. Reading Notes: Relationship Anarchy
  16. Summoning Lucifer: on making my first Mac app as an iOS developer
  17. Reading Notes: The Individual, Society, and the State
  18. Agile by degrees: How to estimate engineering project timelines
  19. A list of books I read in 2018

2018 20

  1. Executing AppleScript in a Mac app on macOS Mojave and dealing with AppleEvent sandboxing
  2. Debugging a subtle Swift bug that will make you facepalm
  3. Lars And The Basket Of Apples
  4. 15 years later: it was summer and we were free
  5. The Four Agreements
  6. Swift tip: Building arrays with compactMap
  7. Hold it! Or, how to blame homelessness on the homeless in San Francisco
  8. Swift's new calling convention
  9. Xcode Tip: Using behaviors to improve debugging
  10. The Tor Browser
  11. Choosing a VPN service
  12. Reading Adichie
  13. Swift Unwrapped at WWDC 2018
  14. Xcode Tip: Improving the assistant editor
  15. Thoughts on WWDC 2018
  16. Why optional closures in Swift are escaping
  17. Removing Google Analytics, too
  18. Upgrading to Bootstrap 4
  19. Replacing Google Search with DuckDuckGo
  20. How to run sysdiagnose on iOS

2017 22

  1. Ending the Swift Weekly Brief
  2. Floating-point Swift, ulp, and epsilon
  3. When your app is used in unexpected ways
  4. Measuring Swift compile times in Xcode 9
  5. Building a site with Jekyll on NearlyFreeSpeech
  6. Supporting JSON feed
  7. Data & Society: Media Manipulation and Disinformation online
  8. Customizing git-log
  9. A story about Swift source compatibility
  10. Officially deprecating JSQMessagesViewController
  11. Protocol composition in Swift and Objective-C
  12. Writing better singletons in Swift
  13. A Fair Hotel
  14. Thoughts on Swift access control
  15. Swift Unwrapped
  16. Adapting to change
  17. Refactoring singleton usage in Swift
  18. Sleazy recruiting
  19. Prioritization
  20. Pushing the limits of protocol-oriented programming
  21. Testing and mocking without OCMock
  22. Swift documentation, Part 2

2016 17

  1. 140 proposals in 30 minutes
  2. Contributing to Swift Weekly Brief
  3. Understanding Swift Evolution
  4. Shipping Swift 3.0
  5. Speaking at FrenchKit
  6. Enums as configuration: the anti-pattern
  7. Migrating to Swift 3
  8. Swift 3 sherlocked my library
  9. The A5 is dead (almost)
  10. Avoiding the overuse of @objc in Swift
  11. Open source everything
  12. Swift documentation
  13. Contributing to open source Swift
  14. Swifty view controller presenters
  15. Call for contributors
  16. The new weekly brief
  17. Open source Swift: weekly brief #4

2015 13

  1. Open source Swift: weekly brief #3
  2. Open source Swift: weekly brief #2
  3. Open source Swift: weekly brief
  4. Swift open source
  5. Building type-safe, composable data sources in Swift
  6. UIKit changes in iOS 9
  7. Swift enumerations and equatable
  8. Namespaced constants in Swift
  9. Using Core Data in Swift
  10. Failable initializers, revisited
  11. Functional notifications
  12. Better Core Data models in Swift
  13. Swift, Core Data, and unit testing

2014 10

  1. Introducing JSQMessagesVC 6.0
  2. Rosetta Stone contributes
  3. Swift failable initializers
  4. Adaptive user interfaces
  5. Apples to apples, Part III
  6. On the value of benchmarks
  7. Apples to apples, Part II
  8. Status bars matter
  9. Apples to apples
  10. Built with open-source

Undated 13

  1. Recently updated
  2. https://www.jessesquires.com/blog/archive/2014/
  3. https://www.jessesquires.com/blog/archive/2015/
  4. https://www.jessesquires.com/blog/archive/2016/
  5. https://www.jessesquires.com/blog/archive/2017/
  6. https://www.jessesquires.com/blog/archive/2018/
  7. https://www.jessesquires.com/blog/archive/2019/
  8. https://www.jessesquires.com/blog/archive/2020/
  9. https://www.jessesquires.com/blog/archive/2021/
  10. https://www.jessesquires.com/blog/archive/2022/
  11. https://www.jessesquires.com/blog/archive/2023/
  12. https://www.jessesquires.com/blog/archive/2024/
  13. https://www.jessesquires.com/blog/archive/2025/