RSS Amplifier

Blog

FlineDev

Blog, apps, and open source Swift packages by indie developer Cihat Gündüz. Topics: SwiftUI, visionOS, error handling, localization, and more.

fline.devRSS feed ↗76 posts

Latest posts

My Top 5 AI Wishes for WWDC26

Apple says WWDC26 will spotlight 'AI advancements and exciting new software and developer tools.' Here are five things I most want them to ship — the gaps slowing me down most in the era of agentic engineering.

Pair Programming for Claude and Codex, Without the Copy-Paste

I'd been running Claude and Codex in parallel manually for months — copy-pasting between sessions, passing findings back and forth. TandemKit automates that workflow.

Vapor's maximumActiveConnections Is Per Event Loop, Not Per Worker

A non-obvious Vapor configuration detail that can cause intermittent 500 errors when your actual connection count exceeds what you think you configured.

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

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.

Apple Implements Feedback Requests -- Filing Reports Works

A personal experience of having a Feedback Assistant request implemented in Xcode 26, and tips for writing effective feedback reports.

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

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

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

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

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

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

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.

Use .labelStyle(.iconOnly) Instead of Nesting Image in Button

The proper SwiftUI pattern for icon-only buttons that preserves accessibility without sacrificing readability.

EditorConfig for Every SwiftPM Package

Why every Swift package should include an .editorconfig file to enforce consistent indentation across all contributors.

Push Notifications for App Store Reviews

How to enable push notifications for new App Store reviews in the App Store Connect app so you can respond to user feedback quickly.

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

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

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

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

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

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)

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

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

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.

Videos and Tabs in DocC Documentation

Two lesser-known DocC features that make your documentation more interactive: embedded videos and tabbed content navigation.

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: "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!

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

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.

Convert Paid Apps to Freemium Without Affecting Existing Users

How to use StoreKit's AppTransaction API to transition from paid-up-front to freemium while preserving access for users who already paid.

Xcode Quick Help in the Sidebar

The Quick Help inspector in Xcode's sidebar auto-updates documentation as your cursor moves, removing the need to Cmd-click for docs.

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

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 "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!

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

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

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.

Building an AsyncButton in SwiftUI

A reusable button component that handles async actions with automatic loading state, disabling, and success/failure indication.

ImageRenderer Cannot Export UIKit-Backed Views

SwiftUI's ImageRenderer silently fails on views that use UIKit or AppKit under the hood, like List and ScrollView.

Combine Swift Imports with a Wrapper Module

Create a single import that re-exports all your commonly used frameworks using @_exported import.

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.

SwiftUI Navigation: Present Data, Not Views

Understanding the mental model shift from imperative navigation in UIKit to data-driven navigation in SwiftUI.

AsyncImage Does Not Support .resizable()

SwiftUI's AsyncImage does not allow the .resizable() modifier, requiring a phase-based workaround.

Multi-Line Code with Ctrl+M in Xcode 15

Xcode 15 introduces a Ctrl+M shortcut to expand function calls and parameters across multiple lines.

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

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

Search Apple Documentation with Shift+Cmd+O

Use the same Open Quickly shortcut to search Apple's developer documentation directly on the web.

Xcode 15 Brings Type-Safe Asset Catalog Access

Xcode 15 generates type-safe Swift accessors for images and colors in asset catalogs, replacing the need for SwiftGen.

Xcode 15 String Catalogs Replace .strings and .stringsdict

Xcode 15 introduces String Catalogs, a visual editor for managing localized strings that replaces legacy .strings and .stringsdict files.