Skip to content

Blog

RSS
  • Why I'm Not Using Xcode 26's AI Chat Integration (And What Could Change My Mind)

    Why I'm Not Using Xcode 26's AI Chat Integration (And What Could Change My Mind)

    7 missing features keeping me from using Xcode's AI, plus my 5-release roadmap for Apple to catch up with Claude Code and Cursor.

  • Top 10 Developer Tools Apple introduced at WWDC25

    Top 10 Developer Tools Apple introduced at WWDC25

    Explore breakthrough features like Foundation Models bringing on-device AI, ChatGPT integration in Xcode, AlarmKit enabling true alarm apps, and major improvements to visionOS spatial experiences.

  • Making Swift Error Messages Human-Friendly—Together

    Making Swift Error Messages Human-Friendly—Together

    Swift error messages can be cryptic, but as a community, we can make them clearer. Help others (and your future self) by contributing better explanations.

  • Better Error Reporting in Swift Apps: Automatic Logs + Analytics

    Better Error Reporting in Swift Apps: Automatic Logs + Analytics

    Tired of vague bug reports like "it doesn't work"? In this post, you'll learn how to collect automatic logs and track real-world errors in your Swift apps—with just a few lines of code.

  • Unlocking the Real Power of Swift 6's Typed Throws with Error Chains

    Unlocking the Real Power of Swift 6's Typed Throws with Error Chains

    Discover how to turn Typed Throws from a headache into a superpower — with clean error handling and powerful debugging insights.

  • Swift Error Handling Done Right: Overcoming the Objective-C Error Legacy

    Swift Error Handling Done Right: Overcoming the Objective-C Error Legacy

    Tired of cryptic Swift error messages like '(YourError error 0)'? Here's how to fix them for good—with clarity and elegance.

  • Solving Swift Macro Trust Issues in Xcode Cloud Builds

    Solving Swift Macro Trust Issues in Xcode Cloud Builds

    Swift macros are powerful but can break your CI pipeline with trust errors. Learn how to implement a simple post-clone script that solves the "Target must be enabled" error in Xcode Cloud once and for all.

  • When Getting Sherlocked Leads to Something Better: The TranslateKit Journey

    When Getting Sherlocked Leads to Something Better: The TranslateKit Journey

    A candid story about resilience in indie app development—and how the worst day of your developer life can sometimes lead to building something better.

  • Swift Localization in 2025: Best Practices You Couldn't Use Before

    Swift Localization in 2025: Best Practices You Couldn't Use Before

    String Catalogs improved localization but introduced new challenges. This article explores how to regain structure and efficiency with modern best practices and a new open-source tool that could change the way you localize.

  • HandySwiftUI Styles: Enhancing SwiftUI's Standard Views

    HandySwiftUI Styles: Enhancing SwiftUI's Standard Views

    From attention-grabbing pulsating buttons and versatile label layouts to cross-platform checkboxes and vertical form styles - discover the SwiftUI styles that bring polish and consistency to your apps. These battle-tested styles power the UI of 10 production apps and counting.

  • HandySwiftUI Extensions: Making SwiftUI Development More Convenient

    HandySwiftUI Extensions: Making SwiftUI Development More Convenient

    Discover powerful SwiftUI extensions for clean optional bindings, intuitive color management, XML-style text formatting, and more. These battle-tested utilities will help you write more elegant SwiftUI code while reducing boilerplate in your apps.

  • HandySwiftUI View Modifiers: Streamlining Your SwiftUI Code

    HandySwiftUI View Modifiers: Streamlining Your SwiftUI Code

    From smart color contrast and streamlined error handling to simplified deletion flows and platform-specific styling - discover the SwiftUI modifiers that eliminate common boilerplate code and help create more maintainable apps.

  • HandySwiftUI New Types: Essential Views and Types for SwiftUI Development

    HandySwiftUI New Types: Essential Views and Types for SwiftUI Development

    From platform-specific values without #if checks to sophisticated selection controls and async state management - discover the essential SwiftUI types that helped ship apps faster. These battle-tested views and types fill common gaps in SwiftUI development.

  • Test your Swift Packages Linux Compatibility on Mac

    Test your Swift Packages Linux Compatibility on Mac

    Ever wondered how to test your Swift code's compatibility with Linux from your Mac without diving into Docker? In this article, I'll share a simple command that makes the process effortless!

  • Introducing LinksKit: Simplifying App Links for Swift Developers

    Introducing LinksKit: Simplifying App Links for Swift Developers

    Tired of repeatedly implementing essential links in your apps? LinksKit is the Swift package that handles it all—from legal requirements to cross-promotion—saving you time and boosting your app's visibility.

  • Why I Stopped Building for visionOS (And What Could Bring Me Back)

    Why I Stopped Building for visionOS (And What Could Bring Me Back)

    Explore the limitations hindering the Vision Pro from reaching its full potential. This article highlights the missing APIs essential for transforming it into a true mixed-reality platform and discusses what needs to change for that to happen.

  • Guest Post: Why I Chose FreemiumKit Over RevenueCat for My App

    Guest Post: Why I Chose FreemiumKit Over RevenueCat for My App

    Struggling with in-app subscription integration? Discover how FreemiumKit transformed my development process, helping me overcome challenges with RevenueCat and fast-tracking my app's launch.

  • Introducing Pleydia Organizer: The Ultimate Native Mac App for Renaming TV & Movie Files

    Introducing Pleydia Organizer: The Ultimate Native Mac App for Renaming TV & Movie Files

    Effortlessly organize your media library with Pleydia Organizer, an automated app that simplifies renaming TV and movie files. Discover unmatched speed, accuracy, and convenience in managing your media collection.

  • Reacting to Pricing Backlash: Lessons Learned

    Reacting to Pricing Backlash: Lessons Learned

    My take on how to find the right pricing and how I reacted to a user calling my app "overpriced". Learn from my mistakes and avoid bad reviews.

  • 2 New Vision Pro Apps:

    2 New Vision Pro Apps: "Guided Guest Mode" & "FocusBeats: Pomodoro + Music"

    "Guided Guest Mode" elevates Apple Vision Pro demos with easy-to-follow guides for an immersive introduction to spatial computing. "FocusBeats: Pomodoro + Music" combines productivity-enhancing Pomodoro technique with themed music to boost focus during work sessions.

  • Introducing FreelanceKit: Time Tracking for all  Platforms!

    Introducing FreelanceKit: Time Tracking for all Platforms!

    Affordable & native time tracking that syncs across iPhone, iPad, Mac, and Vision. Watch your earned money update live. Export to CSV. And much more!

  • My Top 10 Wishes for WWDC24

    My Top 10 Wishes for WWDC24

    From a SportsKit API and .zoom modifier in SwiftUI, over improved SwiftData and source control in Xcode, to my biggest pain points in tvOS and visionOS, and much more! Blending long-standing requests with fresh ideas.

  • Introducing HandySwift 4.0

    Introducing HandySwift 4.0

    Investing time in Open Source again: Complete revamp of HandySwift with vastly improved documentation and lots of added handy features extracted from my apps. Read on to learn which helpers I use most often!

  • Migrating my SwiftUI App to VisionOS in 2 Hours

    Migrating my SwiftUI App to VisionOS in 2 Hours

    How I migrated my SwiftUI app CrossCraft to support visionOS for the Day 1 Release of the Apple Vision Pro. It took effectively about 2 hours in total, this article summarizes my key learnings along the way.

  • Introducing

    Introducing "Posters" – My first Spatial-first app for Vision Pro

    Breath life into your home with auto-updating & interactive posters of the latest trending movies & TV shows. Tap on a poster to unveil the trailer, find out where it's currently streaming, or locate a cinema showing near you. The future is here!

  • HUGE CrossCraft 2.0 Update: Seven Major New Features!

    HUGE CrossCraft 2.0 Update: Seven Major New Features!

    This update brings key improvements like saving and syncing crosswords, expanded content with 30 new topics, and enhanced user experience with features like puzzle tips, a native Mac app, a native Vision Pro app & sharing options for competitive play.

  • 8 Simple Steps to Create Crosswords on Any Topic in Minutes Using ChatGPT

    8 Simple Steps to Create Crosswords on Any Topic in Minutes Using ChatGPT

    Discover the ease of creating personalized crossword puzzles on any topic harnessing the full power of ChatGPT. This guide walks you through eight simple steps, from generating clue-answer pairs to crafting and customizing your puzzle with the innovative CrossCraft app.

  • Introducing CrossCraft: Custom Crosswords

    Introducing CrossCraft: Custom Crosswords

    Create themed & personalized crossword puzzles with ease and either play yourself or surprise your loved ones with a custom-tailored special gift. Perfect also to playfully learn vocabulary or challenge your students or friends with a fun quiz.

  • Learnings from Analyzing 20 Successful Mobile Paywalls

    Learnings from Analyzing 20 Successful Mobile Paywalls

    Dive into how FreemiumKit, a user-friendly paywall open-source library, simplifies the creation of successful paywalls and streamlines A/B testing. Its highly customizable UI components are based on my deep analysis of common paywall designs.

  • The Missing String Catalogs FAQ for Localization in Xcode 15

    The Missing String Catalogs FAQ for Localization in Xcode 15

    Discover the game-changing implications of Apple's new feature, String Catalogs, which replaces traditional localization files and streamlines the localization process. From automatic key extraction to safety checks, find out why developers should be excited about this powerful tool in Xcode 15.

  • Introducing ReviewKit: Improve your App Store Rating with Ease

    Introducing ReviewKit: Improve your App Store Rating with Ease

    ReviewKit: Get app reviews from satisfied users at the right time. Say goodbye to intrusive prompts and optimize your app review process.

  • RemafoX Sale: Get 50% Off on all Subscription Plans during WWDC Week!

    RemafoX Sale: Get 50% Off on all Subscription Plans during WWDC Week!

    Shipping 3 new features that help save time for every Swift developer and reducing the price of all subscriptions for WWDC week with a long-term twist you don't want to miss!

  • Taking over WWDC Notes & Envisioning its Future

    Taking over WWDC Notes & Envisioning its Future

    Evolving the Open-Source Project: Join the Community effort and shape the Future of how we discover and learn from WWDC Sessions effectively!

  • Window Management with SwiftUI 4

    Window Management with SwiftUI 4

    Learnings from modernizing the window handling of my Mac app after upgrading to SwiftUI 4. Explaining `\.openWindow`, `.windowResizability` & more.

  • My Top 5 Wishes for WWDC 2023

    My Top 5 Wishes for WWDC 2023

    WWDC is only weeks away, so it's time for me to update my wishlist. One wish came true last year, how many will it be in 2023?

  • Preparing My App for Swift 6

    Preparing My App for Swift 6

    How to enable Swift 6 mode for your Xcode projects and for your SwiftPM modules today. And what the migration experience is like.

  • Binding: Equatable vs EquatableBinding

    Binding: Equatable vs EquatableBinding

    How I fixed a subtle bug in SwiftUI Pickers in my app by using a Property Wrapper instead of conforming Binding to Equatable.

  • Migrating to The Composable Architecture (TCA) 1.0

    Migrating to The Composable Architecture (TCA) 1.0

    Sharing my learnings and my code structure after migrating my app to the vastly modernized APIs of TCA 1.0.

  • 2,000 Imports: Organizing my Apps' SwiftPM modules

    2,000 Imports: Organizing my Apps' SwiftPM modules

    How to organize your apps Swift modules for clarity & convenience using a hidden (unofficial) Swift feature. A practical solution for small to medium-sized apps.

  • Hardware Requirements for iOS Development (May 2025)

    Hardware Requirements for iOS Development (May 2025)

    From the cheapest viable option to the best value Mac for iOS Developers.

  • Introducing RemafoX: Easy App Localization

    Introducing RemafoX: Easy App Localization

    Say hello to RemafoX, the app on the mission to simplify developer life by providing new workflows for localization when working with Xcode.

  • Making the Most of WWDC 2022

    Making the Most of WWDC 2022

    How to enjoy both Keynotes with other developers (remotely) and how to maximize your learnings throughout the week. If you can invest the time

  • Streaming Open Source Development on Twitch — Part 2

    Streaming Open Source Development on Twitch — Part 2

    My Software Setup & used 3rd Party Services.

  • My Top 3 Wishes for WWDC 2022

    My Top 3 Wishes for WWDC 2022

    With Apple announcing WWDC week for June 6–10 this year, let’s dive into what new frameworks, APIs, and tools I hope to see unveiled and what using them might feel like with examples.

  • Streaming Open Source Development on Twitch — Part 1

    Streaming Open Source Development on Twitch — Part 1

    My Streaming Motivation & Hardware Setup with Reviews.

  • SwiftPM + CoreData: Failing SwiftUI Previews? Here Are 5 Tips to Fix

    SwiftPM + CoreData: Failing SwiftUI Previews? Here Are 5 Tips to Fix

    Fixing Xcode bugs that make SwiftUI previews fail in apps modularized with SwiftPM and that are using CoreData.

  • Multi Selector in SwiftUI

    Multi Selector in SwiftUI

    Adding a missing SwiftUI component for prototyping purposes.

  • Hiding Secrets From Git in SwiftPM

    Hiding Secrets From Git in SwiftPM

    A step-by-step guide on how to prevent your 3rd party service secrets from committing to Git when using apps modularized with SwiftPM.

  • Laser Focus priority strategy

    Laser Focus priority strategy

    A simple but effective prioritization technique that can help slim down your apps scope and give you more confidence in it with different stages that can be mapped to Alpha, Beta & Release.

  • Git Merge vs Rebase

    Git Merge vs Rebase

    An FAQ that explains and answers when to use which and why.

  • Primer on Regular Expressions

    Primer on Regular Expressions

    In this post, I will try to give you a practical overview of Regular Expressions to teach you what they are, what they can be used for and a quick intro to how you can use them.