<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Tobias Reinsch | Blog</title><description>Articles about iOS development, SwiftUI, and software engineering.</description><link>https://tobiasre.me/</link><item><title>How I kept this blog fast without giving up React</title><link>https://tobiasre.me/blog/building-high-performance-astro-react/</link><guid isPermaLink="true">https://tobiasre.me/blog/building-high-performance-astro-react/</guid><description>I used to think SSG and rich interactivity were mutually exclusive. Astro&apos;s island architecture let me keep most of the site static and add JavaScript only where it earns its keep.</description><pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>MVVM, VIPER, TCA — how they scale in practice</title><link>https://tobiasre.me/blog/modern-ios-app-architecture/</link><guid isPermaLink="true">https://tobiasre.me/blog/modern-ios-app-architecture/</guid><description>A practitioner look at how MVVM, VIPER, and TCA tend to scale in iOS teams, and why team habits matter more than architecture branding.</description><pubDate>Mon, 09 Jun 2025 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>The feedback loop that changed how I write code</title><link>https://tobiasre.me/blog/agentic-development-feedback-loop/</link><guid isPermaLink="true">https://tobiasre.me/blog/agentic-development-feedback-loop/</guid><description>Agentic development tools didn&apos;t replace my workflow — they inverted it. I used to spend 80% of my time writing code and 20% reviewing it. Now the ratio is flipped, and my output is better for it.</description><pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>Instruments is the best debugging tool you&apos;re not using</title><link>https://tobiasre.me/blog/ios-instruments-profiling/</link><guid isPermaLink="true">https://tobiasre.me/blog/ios-instruments-profiling/</guid><description>After years of relying on print statements and Xcode&apos;s debugger, I finally went deep on Instruments. Here&apos;s the specific workflows that changed how I profile iOS apps — and the three tools every iOS engineer should know cold.</description><pubDate>Mon, 18 Aug 2025 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>Agents don&apos;t architect reliably: why system design still matters</title><link>https://tobiasre.me/blog/agents-dont-architect/</link><guid isPermaLink="true">https://tobiasre.me/blog/agents-dont-architect/</guid><description>AI agents can generate a feature quickly. They still usually can&apos;t tell you whether you should build it, where it should live, or how it should fit the system. Here&apos;s how I think about the architectural work that remains stubbornly human.</description><pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>Dependency injection in Swift without a framework</title><link>https://tobiasre.me/blog/swift-dependency-injection/</link><guid isPermaLink="true">https://tobiasre.me/blog/swift-dependency-injection/</guid><description>You do not need a DI framework just to say you use DI. Swift already gives most apps strong defaults, and libraries like swift-dependencies can still be a great fit when they solve real problems.</description><pubDate>Tue, 14 Oct 2025 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>Swift macros are production-ready: here&apos;s how to write your own</title><link>https://tobiasre.me/blog/swift-macros-in-production/</link><guid isPermaLink="true">https://tobiasre.me/blog/swift-macros-in-production/</guid><description>Swift macros shipped in Swift 5.9 and the ecosystem spent a year learning when to use them. Many developers spent that year exploring them — including writing custom macros for production apps. This is what actually works.</description><pubDate>Mon, 20 Jan 2025 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>Swift concurrency: what the docs don&apos;t tell you about task lifetimes</title><link>https://tobiasre.me/blog/swift-concurrency-task-lifetimes/</link><guid isPermaLink="true">https://tobiasre.me/blog/swift-concurrency-task-lifetimes/</guid><description>async/await looks simple until a Task outlives the screen that created it. Here&apos;s what I learned the hard way about cancellation, structured concurrency, and the lifetime bugs hiding behind innocent-looking Task blocks.</description><pubDate>Mon, 07 Apr 2025 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>A practical iOS CI/CD setup in 2026: Fastlane, GitLab CI, and what ships well</title><link>https://tobiasre.me/blog/ios-cicd-fastlane-gitlab-ci/</link><guid isPermaLink="true">https://tobiasre.me/blog/ios-cicd-fastlane-gitlab-ci/</guid><description>If you want a production-ready iOS release pipeline with Fastlane and GitLab CI, this is a pragmatic setup that balances control, repeatability, and maintenance cost.</description><pubDate>Mon, 19 Jan 2026 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>Kotlin Multiplatform from an iOS engineer&apos;s perspective</title><link>https://tobiasre.me/blog/kotlin-multiplatform-ios-engineer/</link><guid isPermaLink="true">https://tobiasre.me/blog/kotlin-multiplatform-ios-engineer/</guid><description>I&apos;ve been integrating KMP into a production iOS app at my current job to share business logic with Android. Here&apos;s what it actually feels like to work with — the good, the surprising, and the places where Swift is still irreplaceable.</description><pubDate>Thu, 12 Sep 2024 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>SwiftData in production: where it shines and where it doesn&apos;t</title><link>https://tobiasre.me/blog/swiftdata-in-production/</link><guid isPermaLink="true">https://tobiasre.me/blog/swiftdata-in-production/</guid><description>SwiftData promised to replace Core Data&apos;s boilerplate with a modern Swift API. In production, the tradeoffs become clear around schema evolution, query expressivity, and operational risk.</description><pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>The physics behind fluid iOS interfaces</title><link>https://tobiasre.me/blog/swiftui-animations-demystified/</link><guid isPermaLink="true">https://tobiasre.me/blog/swiftui-animations-demystified/</guid><description>Most SwiftUI animation tutorials stop at .spring(). This one goes deeper — into damping ratios, response curves, and the physics that separate good apps from great ones.</description><pubDate>Wed, 03 Dec 2025 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>NavigationStack is not NavigationView: a practitioner&apos;s guide to data-driven navigation</title><link>https://tobiasre.me/blog/swiftui-navigation-stack/</link><guid isPermaLink="true">https://tobiasre.me/blog/swiftui-navigation-stack/</guid><description>SwiftUI&apos;s NavigationStack finally gave us programmatic navigation that works. After a year of production use across three apps, here&apos;s everything I wish I&apos;d known from day one.</description><pubDate>Mon, 15 Apr 2024 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>The hidden cost of view re-renders in SwiftUI</title><link>https://tobiasre.me/blog/swiftui-view-rerenders/</link><guid isPermaLink="true">https://tobiasre.me/blog/swiftui-view-rerenders/</guid><description>SwiftUI&apos;s diffing is fast, but it&apos;s not free. Here&apos;s how @Observable, EquatableView, and the shape of your state graph determine whether your app runs at 60fps or 30fps under load.</description><pubDate>Mon, 21 Jul 2025 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>Why I stopped fighting state management and let TCA win</title><link>https://tobiasre.me/blog/tca-state-management-visualized/</link><guid isPermaLink="true">https://tobiasre.me/blog/tca-state-management-visualized/</guid><description>A practical journey from spaghetti ViewModels to The Composable Architecture, with an interactive visualization of how it actually works under the hood.</description><pubDate>Mon, 22 Sep 2025 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>Testing code you didn&apos;t write: the trust framework for agentic development</title><link>https://tobiasre.me/blog/testing-agentic-code-trust-framework/</link><guid isPermaLink="true">https://tobiasre.me/blog/testing-agentic-code-trust-framework/</guid><description>When an agent generates a non-trivial feature quickly, how do you know it&apos;s correct? Here&apos;s the review and testing framework I use to make generated code production-worthy.</description><pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item><item><title>What years of shipping iOS apps taught me about writing good software</title><link>https://tobiasre.me/blog/writing-good-software-lessons-from-ios/</link><guid isPermaLink="true">https://tobiasre.me/blog/writing-good-software-lessons-from-ios/</guid><description>Lessons from production iOS work on state management, premature abstraction, and knowing when good enough is good enough.</description><pubDate>Fri, 14 Mar 2025 00:00:00 GMT</pubDate><author>Tobias Reinsch</author></item></channel></rss>