56,966 blogs · [ { "id": "01a07df3-a3aa-7170-b668-6ee99f25aef9", "title": "Mariposa: a lightweight Swift CLI to automate sharing blog posts to social media", "url": "https://www.jessesquires.com/blog/2025/11/07/mariposa/", "published_at": "2025-11-07T15:58:20+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee99f6693dd", "title": "Workaround: how to silence individual deprecation warnings in Swift", "url": "https://www.jessesquires.com/blog/2025/10/28/workaround-how-to-silence-deprecation-warnings-in-swift/", "published_at": "2025-10-28T18:12:34+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee99f84897b", "title": "How to automate perfect screenshots for the Mac App Store", "url": "https://www.jessesquires.com/blog/2025/03/24/automate-perfect-mac-screenshots/", "published_at": "2025-03-24T15:21:37+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee99fa92177", "title": "How to remove unwanted Swift Package schemes in Xcode", "url": "https://www.jessesquires.com/blog/2025/03/10/swiftpm-schemes-in-xcode/", "published_at": "2025-03-10T17:16:17+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a02ba441", "title": "AI Code review is always wrong", "url": "https://www.jessesquires.com/blog/2025/03/04/ai-code-review/", "published_at": "2025-03-04T20:44:26+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a1048b04", "title": "Xcode Tip: spell checking", "url": "https://www.jessesquires.com/blog/2025/02/24/xcode-tip-spell-check/", "published_at": "2025-02-24T15:59:46+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a1dd79cf", "title": "Reading Notes: From misery to boredom to anxiety", "url": "https://www.jessesquires.com/blog/2025/02/20/misery-boredom-anxiety/", "published_at": "2025-02-20T19:28:05+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a24eb2fe", "title": "Type erasure for Equatable and Hashable types in Swift: Lessons from ReactiveCollectionsKit", "url": "https://www.jessesquires.com/blog/2025/02/19/type-erasure-in-swift/", "published_at": "2025-02-20T03:29:42+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a273aae5", "title": "UIKit DiffableDataSource API inconsistencies with Swift Concurrency annotations explained", "url": "https://www.jessesquires.com/blog/2024/12/19/diffable-data-source-main-actor-inconsistency/", "published_at": "2024-12-19T19:54:07+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a30da9ae", "title": "Diffing in ReactiveCollectionsKit: Understanding Identity and Equality", "url": "https://www.jessesquires.com/blog/2024/10/23/reactivecollectionskit-diffing/", "published_at": "2024-10-23T19:43:45+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a39bf304", "title": "Introducing ReactiveCollectionsKit: A Swift replacement for IGListKit", "url": "https://www.jessesquires.com/blog/2024/10/18/introducing-reactivecollectionskit/", "published_at": "2024-10-18T19:30:18+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a4604c39", "title": "Kintsugi", "url": "https://www.jessesquires.com/blog/2024/10/16/kintsugi/", "published_at": "2024-10-16T18:51:41+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a5168245", "title": "SwiftUI's Observable macro is not a drop-in replacement for ObservableObject", "url": "https://www.jessesquires.com/blog/2024/09/09/swift-observable-macro/", "published_at": "2024-09-09T14:32:37+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a5d0014e", "title": "UI testing improvements in Xcode 16", "url": "https://www.jessesquires.com/blog/2024/07/09/uitest-improvements-in-xcode-16/", "published_at": "2024-07-09T19:45:08+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a62121a6", "title": "Our App Store screenshot nightmare is (almost) over", "url": "https://www.jessesquires.com/blog/2024/07/04/app-store-screenshot-changes/", "published_at": "2024-07-04T18:55:25+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a621f56e", "title": "SwiftUI app lifecycle: issues with ScenePhase and using AppDelegate adaptors", "url": "https://www.jessesquires.com/blog/2024/06/29/swiftui-scene-phase/", "published_at": "2024-06-29T21:25:23+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a67002e2", "title": "Swift concurrency hack for passing non-sendable closures: Uncheck yourself before you wreck yourself", "url": "https://www.jessesquires.com/blog/2024/06/05/swift-concurrency-non-sendable-closures/", "published_at": "2024-06-05T17:30:35+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a6984399", "title": "Workaround: Xcode deletes Package.resolved file and produces 'missing package product' errors", "url": "https://www.jessesquires.com/blog/2024/05/29/swiftpm-package-resolved-xcode/", "published_at": "2024-05-30T02:06:41+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a6d778f6", "title": "The curious case of Apple's third-party SDK list for privacy manifests", "url": "https://www.jessesquires.com/blog/2024/04/29/sdk-privacy-manifests/", "published_at": "2024-04-29T20:37:26+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a7b4b803", "title": "Workaround: Swift scripts importing Cocoa frameworks broken on macOS 14", "url": "https://www.jessesquires.com/blog/2024/01/22/swift-scripting-broken-macos-14/", "published_at": "2024-01-22T22:31:32+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a7e20618", "title": "A simple fastlane setup for solo indie developers", "url": "https://www.jessesquires.com/blog/2024/01/22/fastlane-for-indies/", "published_at": "2024-01-22T18:57:55+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a82cd561", "title": "Mac menu bar apps for sale", "url": "https://www.jessesquires.com/blog/2024/01/18/menu-bar-apps-for-sale/", "published_at": "2024-01-18T19:26:52+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a8300f03", "title": "Swift protocol requirement quirks", "url": "https://www.jessesquires.com/blog/2024/01/17/swift-protocol-requirement-quirks/", "published_at": "2024-01-17T18:40:34+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a8441c74", "title": "App Store screenshot requirements need to change", "url": "https://www.jessesquires.com/blog/2024/01/16/app-store-screenshot-requirements/", "published_at": "2024-01-16T17:52:29+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a848c928", "title": "Workaround: Xcode simctl status_bar is still broken for iOS 17 simulators", "url": "https://www.jessesquires.com/blog/2024/01/04/simctl-status_bar-still-broken/", "published_at": "2024-01-04T20:50:38+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a8b8041b", "title": "Another frivolous and frustrating App Store rejection", "url": "https://www.jessesquires.com/blog/2024/01/03/app-store-rejection/", "published_at": "2024-01-04T02:34:44+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a93a503b", "title": "A list of books I read in 2023", "url": "https://www.jessesquires.com/blog/2023/12/29/reading-list-2023/", "published_at": "2023-12-29T20:02:14+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9a9c00dfd", "title": "Top posts of 2023", "url": "https://www.jessesquires.com/blog/2023/12/29/top-posts-of-2023/", "published_at": "2023-12-29T18:33:40+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9aaa3df9c", "title": "How to fix Mac menu bar icons hidden by the MacBook notch", "url": "https://www.jessesquires.com/blog/2023/12/16/macbook-notch-and-menu-bar-fixes/", "published_at": "2023-12-16T18:48:15+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9ab17ab95", "title": "Find me on Mastodon", "url": "https://www.jessesquires.com/blog/2023/12/15/mastodon/", "published_at": "2023-12-16T00:28:37+00:00" }, { "id": "01a07df3-a3aa-7170-b668-6ee9ab971c03", "title": "Going Indie: bookkeeping and invoicing", "url": "https://www.jessesquires.com/blog/2023/12/07/going-indie-4/", "published_at": "2023-12-07T16:53:52+00:00" } ] posts Claim your blog
Back to Jesse Squires
Blog · corpus.blog/blogs/jessesquires.com/posts

Jesse Squires

jessesquires.com

2025

2024

2023