# Swiftjective-C > Swift, SwiftUI, UIKit, iOS programming, and indie development articles by Jordan Morgan. Swiftjective-C is written by Jordan Morgan. This file follows the llms.txt convention (https://llmstxt.org). ## Markdown mirrors Every public page on this site is also available as raw markdown for LLMs and AI agents: take the page URL, drop any trailing slash, and append `.md`. - Article `https://swiftjectivec.com/Some-Post/` → `https://swiftjectivec.com/Some-Post.md` (`/Some-Post/index.md` works too) - Page `https://swiftjectivec.com/about` → `https://swiftjectivec.com/about.md` (`/about.html.md` works too) - Home `https://swiftjectivec.com/` → `https://swiftjectivec.com/index.md` Each mirror opens with an HTML comment naming its canonical page URL. Mirrors are regenerated automatically on every deploy. ## Pages - [Home](https://swiftjectivec.com/index.md): The five most recent articles - [Archive](https://swiftjectivec.com/allPosts.md): Every article on the site - [Topics](https://swiftjectivec.com/topics.md): Articles grouped by topic - [Swift](https://swiftjectivec.com/swift.md): Swift articles - [SwiftUI](https://swiftjectivec.com/swiftui.md): SwiftUI articles - [UIKit](https://swiftjectivec.com/uikit.md): UIKit articles - [Indie Development](https://swiftjectivec.com/indie-development.md): Indie dev diaries - [Snips](https://swiftjectivec.com/snips.md): Short, complete iOS code solutions - [About](https://swiftjectivec.com/about.md): About Jordan Morgan and the site - [Contact](https://swiftjectivec.com/contact.md): Contact and support information - [Privacy](https://swiftjectivec.com/privacy.md): Privacy information for readers and API clients - [Developer portal](https://swiftjectivec.com/developers.md): API quickstart and agent integration documentation - [Sponsorship](https://swiftjectivec.com/sponsor.md): Sponsoring the site - [Agent integration guide](https://swiftjectivec.com/agents.md): Machine-readable capabilities and boundaries - [OpenAPI specification](https://swiftjectivec.com/openapi.json): Typed description of the public content API - [Posts API](https://swiftjectivec.com/api/posts): Recent article metadata as JSON - [XML sitemap](https://swiftjectivec.com/sitemap.xml) - [RSS feed](https://swiftjectivec.com/feed.xml) - [JSON feed](https://swiftjectivec.com/feed.json) ## Articles - [The Skills Conundrum](https://swiftjectivec.com/The-Skills-Conundrum.md): Skills are an essential part of working with agents. Storing them across devices currently kinda sucks. - [Copywriting with Agents and...Apple Designers?](https://swiftjectivec.com/Copywriting-with-Agents-and-Apple-Designers.md): On using agents to sharpen copywriting while keeping the Apple design bar in view. - [noUI()](https://swiftjectivec.com/noUI.md): If you can ask an agent to do something, it does it. So do you really need that UI? - [iOS 27, Your App, and Siri](https://swiftjectivec.com/Siri-AI-for-iOS027.md): How do we think about Siri AI with iOS 27? Here's how to make the most of new APIs. - [iOS 27: Notable UIKit Additions](https://swiftjectivec.com/iOS-27-Notable-UIKit-Additions.md): iOS 27 is here. So now we check in with our invincible UI framework, UIKit. - [W.W.D.C. 2026: The Pregame Quiz](https://swiftjectivec.com/WWDC-2026-The-Pregame-Quiz.md): The twelfth annual W.W.D.C. pregame quiz is here, built entirely from 2026 Apple developer chaos. - [WWDC in a 2026 Landscape](https://swiftjectivec.com/WWDC-Wish-List-2026.md): So, dub dub beckons. Here's what I'm hoping to see. - [Along the Way](https://swiftjectivec.com/Along-the-Way.md): What's better than the friends you made along the way? Not much! - [Kids and Vibe Coding: The Joy of Building](https://swiftjectivec.com/Kids-and-Vibe-Coding-iOS-Apps.md): My kids have discovered vibe coding. What follows is a journal over our adventures so far. - [The Abstraction Layer](https://swiftjectivec.com/The-Abstraction-Layer.md): Are we entering a world where code is another abstraction layer? And, how closely will the next wave of engineers pay attention to it? - [Agentic Coding in Xcode 26.3 with Claude Code and Codex](https://swiftjectivec.com/Agentic-Coding-Codex-Claude-Code-in-Xcode.md): Xcode just put out agentic support, baked right in. Let's take a look. - [Pay What You Want for The Best-in-Class iOS App Book Series](https://swiftjectivec.com/Best-in-Class-iOS-App-Book-Series-Price-Update.md): The Best-in-Class iOS App Book Series is moving to a pay what you want model. Just ten bucks or more. - [The Shift](https://swiftjectivec.com/The-Shift-Using-AI-As-A-Developer-Advocate-And-Engineer.md): What comes next? AI is changing everything. - [A Month of Marketing: A Recap](https://swiftjectivec.com/A-Month-of-Marketing-Recap.md): After spending a month on marketing, here's what I learned. And more importantly, what comes next. - [A Month of Marketing for Elite Hoops](https://swiftjectivec.com/A-Month-of-Marketing-for-Elite-Hoops.md): For the next 30 days, Xcode is closed. And marketing channels are open. - [Opt for Localized Strings](https://swiftjectivec.com/Using-Localized-String-For-Easy-Localization-Refactoring.md): Even if you aren't localizing a codebase, or even plan to soon, you should try to use localized String types. Here's an example of how it can save time. - [Learnable, Memorable, Accessible](https://swiftjectivec.com/Creating-Custom-Controls-SwiftUI-Learnable-Memorable-Accessibile.md): Creating custom controls is something that's just flat out fun. But, I believe, there's an objectively right way to do it. - [Create an Interactive Snippet Shortcut using App Intents](https://swiftjectivec.com/Create-Interactive-Snippet-Shortcut-in-AppIntents.md): Create an interactive snippet view. - [Creating Light and Dark Mode Icons using Icon Composer](https://swiftjectivec.com/How-To-Make-Dark-And-Light-Mode-Icons-Different-In-Icon-Composer.md): At first, I didn't think it was possible to have two distinct icons for dark and light mode using icon composer. Turns out, it is — though not quite obvious. - [Open Intent in iOS 26](https://swiftjectivec.com/Open-Intent-Additions-iOS26-In-AppIntents.md): Open Intents are easy peezy in iOS 26. A few API tweaks makes them quick to implement. - [The Business and the Boutique](https://swiftjectivec.com/The-Business-and-the-Boutique.md): Some apps are focused on building a business. Some are for the love of the game — meet Alyx. - [Confirmation and Result Interactive Snippets](https://swiftjectivec.com/App-Intents-Interactive-Snippets-Confirm-vs-Result.md): Interactive Snippets come in two flavors — result and confirmation styles. The difference is subtle. - [iOS 26: Notable UIKit Additions](https://swiftjectivec.com/iOS-26-Notable-UIKit-Additions.md): TODO. - [W.W.D.C. 2025: The Pregame Quiz](https://swiftjectivec.com/WWDC-2025-The-Pregame-Quiz.md): Time for some annual trivia! The eleventh annual W.W.D.C. pregame quiz is here. - [The Joy of Vibe Marketing](https://swiftjectivec.com/The-Joy-of-Vibe-Marketing.md): Marketing is quite an art, one that I'm not even great at. But the journey to getting slightly better at it is where the fun is. - [Three Indie Marketing Tips from my Deep Dish 2025 Talk](https://swiftjectivec.com/Three-Key-Takeaways-from-my-Deep-Dish-Swift-Talk-on-Indie-Marketing.md): Deep Dish Swift 2025 has been a blast. Here are some key takeaways from my talk over indie app marketing. - [Showing What's New Screens using @AppStorage](https://swiftjectivec.com/Simply-Whats-New-Logic-in-SwiftUI-iOS-apps.md): The "What's New" view is found all over iOS apps. With SwiftUI, it's very easy to create logic for this type of thing. - [The Great App That Nobody Knows About](https://swiftjectivec.com/A-Great-App-That-No-one-Knows-About.md): You might have a great app, you might not. But you'll never know until a fair amount of people see it. - [An Ode to Swift Enums: The View Models That Could](https://swiftjectivec.com/Swift-Enums-as-Lighweight-View-models.md): Swift enums are among the most flexible tools available in the language. Using them as lightweight view models is a delight. - [Introducing Scores for NCAA Sports](https://swiftjectivec.com/Introducing-Scores-for-NCAA-Sports-Division-1-2-and-3.md): Somehow, my third sports app is launching. Today, I'm shipping a way to view NCAA Division 1, 2 and 3 scores. - [2025 Indie Thoughts](https://swiftjectivec.com/2025-Indie-Goals.md): Another year turns the page. Where to go this year? - [The Big Feature](https://swiftjectivec.com/The-Big-Feature.md): Years ago, I wrote a post about the effects of a large update to Spend Stack. Now, I'm here to tell you the effects of a large feature. - [Eight Fun SwiftUI Details in my Practice Planner](https://swiftjectivec.com/Eight-Fun-SwiftUI-Details-In-Practice-Planner.md): I just wrapped my most ambitious updates for Elite Hoops, a full-on practice planner. Here are eight fun SwiftUI tidbits from it. - [Elite Hoops Year One: 12 Bite-Sized Lessons](https://swiftjectivec.com/Elite-Hoops-Gaining-Users-As-An-Indie-App-With-Paid-Ads-And-Lessons-Learned.md): Now that the one year mark has passed, here are twleve quick lessons I've learned along the way. Some about acquiring customers, others about tech stack stuff and more. - [Using PreviewModifier for Quick Xcode Previews](https://swiftjectivec.com/Making-Xcode-Previews-Faster-With-PreviewModifier-in-SwiftUI.md): Xcode Previews can either be your best friend or worst enemy. Here's how to tame expensive data to reuse it across previews to keep things snappy. - [Recreating Readable Content Guide Sizing in SwiftUI](https://swiftjectivec.com/Readable-Content-Size-in-SwiftUI.md): The readable content guide is the gold standard of width-to-reading ratio. Here's how to recreate the UIKit-only API in SwiftUI. - [The AirDrop Conundrum: Passing Custom Models From and To Your App](https://swiftjectivec.com/The-AirDrop-Conundrum-Passing-App-Models-via-AirDrop.md): To AirDrop a custom model from your app, you need to know about a few different APIs. Unfortunately, it's not as smooth as it used to be as of iOS 17. - [Marking Swift Properties Available by iOS Version](https://swiftjectivec.com/Mark-Swift-Properties-by-iOS-version.md): Sometimes, you need a property to be versioned. However, this isn't easy in Swift — but it is possible. - [Project Management Flow for Indies](https://swiftjectivec.com/How-I-Mangae-Indie-App-Project-Management.md): Eventually, the need arises for some form of project management. Indies are no different, so here's how I handle it. - [Accessibility Setting Nuggets from iOS 18](https://swiftjectivec.com/Accessibility-Settings-Additions-in-iOS-18-in-SwiftUI.md): Accessibility settings has several quality-of-life improvements in iOS 18. Here are a few of my favorites. - [@DefaultIfMissing - My Codable Failsafe](https://swiftjectivec.com/Swift-Codable-Handle-Missing-Or-Nil-Values.md): Sometimes, you just want some leniancy with codable. Here's how I get it. - [iOS 18: Notable UIKit Additions](https://swiftjectivec.com/iOS-18-Notable-UIKit-Additions.md): iOS 18 is out in the wild! As always, let's check in with our mature interface framework, UIKit. - [W.W.D.C. 2024: The Pregame Quiz](https://swiftjectivec.com/WWDC-2024-The-Pregame-Quiz-copy.md): It's the time of the year! WWDC is around the corner, which mean it's time for Swiftjective'C's 10th annual pregame quiz! - [Refactoring to TipKit from AppStorage and Custom Views in SwiftUI](https://swiftjectivec.com/Refactoring-TipKit-SwiftUI-From-Appstorage.md): I replaced my tips with the nascent iOS 17 TipKit framework. Along the way, I was able to ditch AppStorage as well. - [Asking AI to Refactor Swift Code](https://swiftjectivec.com/Asking-AI-to-Refactor-my-Swift-Code.md): Are the robots coming for our Swift jobs? I wanted to run a little test to find out. - [Introducing Elite Soccer Club](https://swiftjectivec.com/Introducing-Elite-Soccer-Club.md): My next app is ready for prime time. Here's a quick primer on Elite Soccer Club. - [Quick and Painless Persistency on iOS](https://swiftjectivec.com/Stupid-and-Quick-Persistency-on-iOS-with-Swift.md): Sometimes, you just need to persist some dumbed down data. Here's a few ways to do it. - [Basing Indie Releases in Term of Goals](https://swiftjectivec.com/Releasing-Indie-Apps-Based-on-Themes-for-goals.md): For 2024, my theme is basically to ship. I want a few things out there to hone in on for 2025. - [Fun Alignment Guide Tricks](https://swiftjectivec.com/SwiftUI-Alignment-Guides-Tip-Tricks.md): Alignment guides are something I didn't really think about much in SwiftUI. Lately, I've seen some compelling examples of how they can be used. - [Pricing Indie Apps: The Perks of a Wallflower Rule](https://swiftjectivec.com/Pricing-Indie-iOS-Apps-According-To-Perks-of-a-Wallflower.md): Lately, I've drastically changed my thinking in terms of how to price indie apps. In short, we should be charging more. - [Introducing Elite Soccer Club](https://swiftjectivec.com/Using-Keychain-Access-Secure-Notes-on-macOS-To-Store-Socials.md): My next app is ready for prime time. Here's a quick primer on Elite Soccer Club. - [Using @Binding with @Environment(Object.self)](https://swiftjectivec.com/Getting-Bindings-From-Environment-SwiftUI.md): With the Observation framework, we depend on `@State` and pass around objects in the environment. However, you may get stuck with how bindings work with them. - [Wrapping up 2023, and Looking Towards 2024](https://swiftjectivec.com/The-End-of-Year-Wrapped.md): Time to take stock of my goals! Where do I want to go in 2023? - [Keeping Up with Swift and iOS](https://swiftjectivec.com/Keeping-Up-with-Swift-and-iOS.md): Part of being in this industry is keeping up with the changes. Here's a quick rundown of how I tackle it. - [Checking Out Assistive Access](https://swiftjectivec.com/Assisstive-Access-on-iOS-swift.md): Assistive access was launched alongside iOS 17. Today, I took a longer look at the new accessibility feature and what it means for our own apps. - [The First 100 Subscribers for Elite Hoops](https://swiftjectivec.com/The-First-100-Subscribers.md): My end of year goal was to acquire 100 paying customers. I hate that number a month early, so here are some thoughts on the first 100. - [Generating Random Numbers Elegantly in Swift](https://swiftjectivec.com/Swift-RandomNumberGenerator.md): Swift has a useful mechanism to generate random values. Today, let's see how we can plug in `SystemRandomNumberGenerator` for our own types. - [Masking Third Party Dependencies](https://swiftjectivec.com/Masking-Third-Party-Dependencies-Swift.md): It's not a groundbreaking pattern, but it pays to mask third-party code. Here's how I do it. - [On Launching your Indie App: Part 2](https://swiftjectivec.com/On-Launching-Your-Indie-App-Part-2.md): It's been a bit since I've launched an app - years, in fact. Here's how it went down this time. - [The Tips Journal Free Preview: plutil](https://swiftjectivec.com/plutil-best-in-class-journal-preview.md): To celebrate the book series nearing completion, I thought I'd include a journal entry from the upcoming Tips Journal. It's included with the series for free, here's what the content is like. - [The Prelaunch, Launch](https://swiftjectivec.com/The-Prelaunch-Launch.md): I'm gearing up for an app launch, and I'm doing some more audience reach out this time around. Here's what I'm trying to generate interest ahead of time. - [Introducing Elite Hoops](https://swiftjectivec.com/Introducing-Elite-Hoops.md): It's been years since I've shipped, and I'm ready for my next project. Introducing Elite Hoops, a fantastic tool for basketball coaches. - [Generated Asset Catalog Symbols in Objective-C](https://swiftjectivec.com/Generated-Asset-Symbols-Objective-C.md): Swift gets all the new toys, and rightfully so. Though, I was happy to see Objective-C still gets some love with Xcode 15. - [Vending Non-Mutating Data in SwiftUI](https://swiftjectivec.com/Pass-Non-Mutating-Data-in-SwiftUI.md): SwiftUI is tailored towards data that mutates. But, what about when you need to share a lot data that doesn't change - and from Objective-C and UIKit code? - [The Book Sabbatical](https://swiftjectivec.com/The-Book-Sabbatical.md): So, about that book series. It's time to get it to the finish line, and with the help of my work sabbatical I hope to do just that. - [The Machine Learning Landscape on iOS](https://swiftjectivec.com/Machine-Learning-on-iOS-API-Surface-Area.md): We know machine learning has been under the spotlight lately. Recently, I was still surprised to see just how much is there for developers to use. - [Thread's iOS Interface in SwiftUI](https://swiftjectivec.com/Meta-Threads-iOS-Interface-in-SwiftUI.md): In my last snip, I did a mock Threads interface. Here's the code for it. - [Set a Preview Shape for Views Presenting Context Menus](https://swiftjectivec.com/Snip-Context-Menu-Preview-Shape-in-SwiftUI.md): When presenting a context menu, customize the shape of the view presenting it. - [Create an Interactive Widget Using App Intents](https://swiftjectivec.com/Snip-Create-A-Basic-Interactive-Widget-Using-App-Intent-Button.md): Make a widget that's interactive. - [Modifier Monday: .containerRelativeFrame(_ axes:)](https://swiftjectivec.com/SwiftUI-Modifier-Monday-Container-Relative-Frame.md): So many new SwiftUI APIs from W.W.D.C. 23. Here's a neat one that I've written myself previously, a modifier for relative frame sizing. - [WWDC23 - Developer Documentation](https://swiftjectivec.com/WWDC23-Developer-Documentation.md): Credit where credit is due. Apple's documentation game was seriously stepped up this year. - [iOS 17: Notable UIKit Additions](https://swiftjectivec.com/iOS-17-Notable-UIKit-Additions.md): iOS 17 is out in the wild! As always, let's check in with our mature interface framework, UIKit. - [WWDC 2023: The Pregame Quiz](https://swiftjectivec.com/WWDC-2023-The-Pregame-Quiz.md): We are soon to discover the rumored xrOS (apparently) and Apple's headset thingy. Brand new changes are on the horizon for W.W.D.C. 2023, but first - it's time for the ninth pregame quiz! - [Creating a Swift Package: Quick Start Gotchas](https://swiftjectivec.com/Creating-an-iOS-Swift-Package-with-Git-Quickstart-Guide.md): I'm freshly off the S.P.M. boat having made my first package. There are a few quick things to note to get going. - [Using TabularData to Dump Model Data](https://swiftjectivec.com/Using-the-TabularData-Framework-to-Dump-json-or-csv-Data-in-Swift.md): The TabularData framework can do quite a lot, and it mostly deals with training machine learning models. Today, I'll show you how I use it for debug logs, of all things. - [Spinning Up a Feature Request Screen with Supabase](https://swiftjectivec.com/Supabase-for-iOS-Add-Feature-Request-Screen.md): As I near the finish line for my next app, I've been busy doing that last 10% of stuff. Among them? The feature request view. - [On Apple's Guidance for StateObject Initialization](https://swiftjectivec.com/Dependency-Injection-with-State-Object-SwiftUI.md): How does dependency injection with work StateObject? In fact, should it even work at all? - [Debugging Codable](https://swiftjectivec.com/Easier-Debugging-Swift-Codable-Error-Context-Missing-Keys.md): Codable is impressive, but it bails out quickly if .json doesn't appear exactly how it expects. Here's how I cleaned things up to pinpoint errors quickly. - [Morphology in Swift](https://swiftjectivec.com/Morphology-in-iOS-With-Automatic-Grammar-Agreement.md): Morphology, or for mere humans - the study of the many forms of words, is ripe with interesting programming applications. Let's take a look at a few of them. - [10 Years of Hacks and Fixes: A Retrospective of My First Decade of Coding](https://swiftjectivec.com/Over-a-Decade-of-Coding.md): It just occurred to me that programming has been my primary vocation for over a decade now. Today, I just take a second to look back at it all. - [Overinspired?](https://swiftjectivec.com/Overinspired.md): There are so many wonderful things to see. I've started to wonder, am I ingesting too much of a good thing? - [ForEach Thought: Volume 2](https://swiftjectivec.com/ForEachThoughtVolume2.md): ForEach Thought: Old open source iOS projects, being ok with shipping ok things and ways to wrangle SF Symbols. - [Building For Voice Control](https://swiftjectivec.com/Voice-Control-Accessibility-Tweaks-iOS.md): Voice Control is an amazing accessibility technology. Here are some things to look for when building for it. - [ForEach Thought: Volume 1](https://swiftjectivec.com/ForEachThoughtVolume1.md): ForEach Thought: ChatGPT as a coding companion, Xcode key mapping and dealing with bar buttons. - [Converting Data into a Formatted JSON Swift String](https://swiftjectivec.com/Dumping-API-Data-As-JSON-String-in-Swift.md): The world lives on API responses. That means, we live in Codable modeled off JSON, so here's how I quickly built models using pretty printed String dumps. - [A Less Evil NotificationCenter?](https://swiftjectivec.com/A-Nicer-NotificationCenter-in-SwiftUI.md): Looks look the other way for a second when it comes to NotificationCenter. Is there a more pragmatic way to use it? - [Spend Stack is Now Open Source](https://swiftjectivec.com/Spend-Stack-is-Open-Source.md): Even though Spend Stack has been sunset, I've gained permission to make it open source. Now, anyone can peek through it and build it on their own! - [Just a Little Nicer](https://swiftjectivec.com/Making-iOS-apps-just-a-little-nicer.md): This year I've been thinking about tiny little touches. When done right, a little piece of joy in software goes a long way. - [Win the Week: My Homegrown App for 2023 Goals and Habit Tracking](https://swiftjectivec.com/Win-The-Week-iOS-Hack-Project.md): This year, I wanted to take a different approach to goal tracking and forming habits. The result was a little hack project I made over Christmas break. - [Things I Did in 2022](https://swiftjectivec.com/Things-I-Did-in-2023.md): Oh look, another one of those end-of-year posts. Here's how I stacked up to my aspirations birthed in December, 2022. - [So Long, Old Friend](https://swiftjectivec.com/So-Long-Old-Friend-Spend-Stack-Retired-From-App-Store.md): It's somewhat the end of the era, as Spend Stack's owners have seemed to remove the app from the App Store. - [Create a Basic Shortcut using App Intents](https://swiftjectivec.com/Snip-Create-A-Basic-App-Intent.md): Make a shortcut that repeats a phrase with App Intents. - [My Real Challenge with SwiftUI](https://swiftjectivec.com/The-Real-Challenge-With-SwiftUI.md): I simply want to make the best apps. I don't want to pick and choose frameworks to do it. - [Basic Keyboard Navigation for Collection & Tableview.](https://swiftjectivec.com/Snip-Enable-Keyboard-Navigation-With-Focus-CollectionView-TableView.md): Use the focus system with hardware keyboards. - [Running Code Only Once in SwiftUI](https://swiftjectivec.com/SwiftUI-Run-Code-Only-Once-Versus-OnAppear-or-Task.md): We often look to `.onAppear` or the nascent `.task` modifier to run single purpose tasks. But, those aren't reliable in all cases. - [Presenting Sheets: Item, or a Boolean Binding?](https://swiftjectivec.com/SwiftUI-sheet-present-item-vs-toggle.md): When presenting sheets in SwiftUI that depend on a local variable, there are two ways to do it. Turns out, one of them is quite wrong. - [Swift's print(), debugPrint(), String(reflecting:), Mirror(reflecting:) and dump()](https://swiftjectivec.com/Swift-Debug-Print-Print-Dump-Mirror-Reflection.md): Every codebase under the sun on God's green earth uses print statements to wrangle bugs. Let's look at the tools that Swift has for such cases. - [Use Swift Concurrency with Completion Handlers](https://swiftjectivec.com/Snip-Completion-Handler-Block-Closure-To-Swift-Async-Concurrency.md): Convert a function using a completion handler to use Swift Concurrency. - [Dependency Injection with @State Variables](https://swiftjectivec.com/SwiftUI-State-Dependency-Injection.md): So, you've got some struct models to pass around that end up as @State. How do you do it? - [Testing SwiftUI Bindings in Xcode Previews](https://swiftjectivec.com/Testing-SwiftUI-Bindings-in-Xcode-Previews.md): Xcode previews are there to make use faster. And they do - but if you want to test out bindings, you need to give it a little bit of thought. - [Async Let](https://swiftjectivec.com/Async-Let-Swift-Concurrency.md): I've been late to Swift Conccurrency, but today I learned of a little trick I didn't know about. Here's what async let allows you to do. - [Modifier Monday: .accessibilityActions()](https://swiftjectivec.com/SwiftUI-Modifier-Monday-accessibilityActions.md): For this Modifier Monday entry, we look at a new iOS 16 toy, .accessibilityActions(). - [Remembering My First App](https://swiftjectivec.com/Remembering-My-First-App.md): There's nothing like the first one. Today, I went on a trip down memory lane by looking at the source code from my first app. - [Typed Payloads in SwiftUI using NSUserActivity](https://swiftjectivec.com/Using-Typed-Payloads-In-NSUserActivity-in-SwiftUI.md): User activities and SwiftUI never really fit like a glove, but regardless they are key for state restoration. Luckily, SwiftUI has a little trick to make the process pragmatic and type safe. - [My Template to Research, Design and Ship iOS Apps](https://swiftjectivec.com/An-iOS-App-Launch-Template-and-Guide.md): If I don't have a roadmap, I feel stressed. Here's the one I use for my own apps to help keep my thoughts together. - [The Best Change to Come From W.W.D.C. 2022](https://swiftjectivec.com/iCloud-app-transfers-now-allowed.md): The best change to come from W.W.D.C. 2022 didn't show up on a slide or a session. Rather, it's a change that gives indies much more flexibility. - [iOS 16: Notable UIKit Additions](https://swiftjectivec.com/iOS-16-Notable-UIKit-Additions.md): iOS 16 is out in the wild! Let's check in with our trusty interface framework, UIKit. - [How to Process WWDC](https://swiftjectivec.com/How-To-Process-WWDC.md): W.W.D.C. 2022 kicks off Monday! Here's how to reel in all of the information you're about to consume. - [WWDC 2022: The Pregame Quiz](https://swiftjectivec.com/WWDC-2022-The-Pregame-Quiz.md): Here we go, dub dub is back in person...sort of, kind of? At least for 1,000 lucky developers, but either way it's time for another annual WWDC Pregame Quiz! - [What's A Best-in-Class macOS App Look Like?](https://swiftjectivec.com/What-does-a-best-in-class-macOS-app-look-like.md): I've long been a fan of best-in-class iOS apps, and I've attempted to definine what they look like. So, what about macOS? - [Calling Private APIs in iOS](https://swiftjectivec.com/Calling-Private-iOS-APIs-using-NSInvocation.md): So, you wanna mess around and call some private API? Here's a quick, to-the-point guide on how to do it. - [Handle Keyboard Presses Using SwiftUI in macOS](https://swiftjectivec.com/Handling-Keyboard-Presses-in-SwiftUI-for-macOS.md): While hacking away on my latest indie project, I needed to find a way to handle keyboard events. This is what I came up with. - [Send Events from SwiftUI to UIKit and Vice Versa](https://swiftjectivec.com/Events-From-SwiftUI-to-UIKit-and-Vice-Versa.md): So, how do you notify UIKit that something happened in SwiftUI? And how about the other way? - [UICollectionView with UIContentConfiguration for Cells, Compositional List Layout and Diffable Datasource.](https://swiftjectivec.com/UICollectionView-Using-UIContentConfiguration-For-Cells.md): Create a UICollectionView with the new modern APIs. - [Using Min-Mid-Max Principles for iOS Design](https://swiftjectivec.com/Design-iOS-Apps-Using-Minimum-Middle-Maxiumum-Environments.md): For years, I've used the same set of constraints to design for iOS to make sure I cover edge cases. I call it min-mid-max design. - [Leveraging Sound Analysis to the Tune of 300 Sounds](https://swiftjectivec.com/Sound-Analysis-Framework-Built-In-Model.md): Apple has been a on roll with implementing custom machine learning models all through iOS. With iOS 15, they snuck in some onboard models for us to play with to recognize over 300 sounds. - [Only Just Because](https://swiftjectivec.com/Only-Just-Because.md): If you're early in your career, it's easy to think you need to learn your thing and your thing only. Expanding outside of those bounds, though, presents several advantages you're likely missing out on. - [Building Things and Raising Children](https://swiftjectivec.com/Building-Things-and-Raising-Children.md): Indie life has never been quite within reach than ever before. So, how do you build things while raising children? - [Solving Small Problems with Small Tuples](https://swiftjectivec.com/Solving-Small-Problems-with-Swift-Small-Tuples.md): Tuples have long been in the Swift language, but their utility knows no bounds. I've recently used them to make magic number type of situations, less magic. - [Using Xcode Previews for UIKit](https://swiftjectivec.com/Using-Xcode-Previews-for-UIKit.md): Xcode previews are incredibly useful for SwiftUI development. But, we can also cross over to UIKit and still reap their benefits. - [iOS 15 Focus Modes for Kids Gaming](https://swiftjectivec.com/Using-Focus-Modes-to-Customize-iPhone-for-Kids-Gaming.md): Like many parents, my three kids want to game on my phone. But it's my phone, and I don't want them in my stuff - and focus modes help me keep it all separate. - [Create Dividers in UIMenu using UIKit](https://swiftjectivec.com/Add-A-Divider-in-Context-Menu-Using-UIKit.md): Add a divider in UIKit Context Menus. - [Dynamic and Semantic Colors - Four for One](https://swiftjectivec.com/one-color-becomes-four.md): The rise of dark mode on iOS brought about new challenges for color design, namely — we needed two of them now. But, there is also accessibility options to consider. - [Observable Structs in SwiftUI](https://swiftjectivec.com/Observing-Structs-SwiftUI.md): Structs are often encouraged in not only Swift, but certainly in SwiftUI. Recently, I hit a few walls with observing them. - [Daring Fireball’s Apple Report Card 2021](https://swiftjectivec.com/Daring-Fireballs-Apple-Report-Card.md): John Gruber left his thoughts on how Apple did overall in 2021, like many in that sphere did for Six Color's annual report card. However, it's the macOS and software design that caught my eye in his piece. - [Modifier Monday: .trim(from:to:)](https://swiftjectivec.com/SwiftUI-Modifier-Monday-Trim.md): Today, it's all about manipulating the Shape type. Let's see what trim() can do for us. - [The Rise of the Homegrown FAQ App](https://swiftjectivec.com/The-Rise-of-the-homegrown-FAQ-app.md): The Help and F.A.Q. section has long been a pipe dream for indie devs. Now, they're all over - what changed? - [Modifier Monday: .fixedSize()](https://swiftjectivec.com/SwiftUI-Modifier-Monday-FixedSize.md): For the inagural Modifier Monday entry, let's take a peek at .fixedSize(). - [Using UIDragPreview to Customize Drag Items](https://swiftjectivec.com/Use-Preview-Parameters-To-Customize-Drag-Items.md): Leverage UIDragPreviewParameters with UIDragPreview to change how dragged items appear. - [Matthew Bischoff on Software Paper Cuts](https://swiftjectivec.com/Matthew-Bischoff-Software-Paper-Cuts.md): A great piece over tiny little losses adding up to monumental regressions. What kind of paper cuts should you look for? - [Introducing Swiftjective-C Sponsorships](https://swiftjectivec.com/Introducing-Sponsorships.md): Today I get to kick off somewhat of a bucket list item. I'm happy to bring sponsorships to Swiftjective-C, and I hope it begins an era of a lot writing from me, and affordable, privacy-first ads for everyone else. - [Swift Playgrounds 4](https://swiftjectivec.com/Swift-Playgrounds.md): Xcode on the iPad is kinda sorta here! By way of Playgrounds, we can now realize our dream of creating apps on the iPad. - [The Early Access Retrospective](https://swiftjectivec.com/Early-Access-Book-Retrospective.md): As I near a major milestone of $100,000 in sales for my book series, A Best-in-Class iOS App, I take a second to look back on what's gone great and what's not been so great. - [Drag to Reorder in UITableView with Diffable Datasource](https://swiftjectivec.com/Tableview-Diffable-Datasource-Drag-to-Reorder.md): Support drag to reorder in a UITableView using a diffable datasource. - [A Best-in-Class iOS App: Free Preview](https://swiftjectivec.com/A-Best-in-Class-Book-Preview.md): Check out a sample from my book. This one covers one of the five main topics, Accessibility. - [iOS 15: Notable UIKit Additions](https://swiftjectivec.com/iOS-15-Notable-UIKit-Additions.md): iOS 15 is coming in hot! Check out new ways to decode images, present sheets and more. - [WWDC 2021: The Pregame Quiz](https://swiftjectivec.com/WWDC-2021-The-Pregame-Quiz.md): Apple has already shipped amazing things in the past month, so the floor is cleared. Let's gear up for a crazy dub dub with another official quiz! - [The Best-in-Class Book Beta Launch](https://swiftjectivec.com/The-Best-in-Class-Book-Beta-Launch.md): My first digital launch is in the books. How did the decision to go early access go? - [Introducing The Best-in-Class iOS App: The Book Series](https://swiftjectivec.com/Introducing-The-Best-in-Class-Book.md): My next big project is ready for beta launch. One, gigantic book covering everything I know about iOS. - [Collapsible UICollectionView Sections](https://swiftjectivec.com/Collapsable-CollectionView.md): Create a basic UICollectionView with a collapsing section. - [Adding Keyboard Shortcuts](https://swiftjectivec.com/Keyboard-Shortcuts.md): Add some keyboard shortcuts. - [Respond to Keyboard Presses](https://swiftjectivec.com/Keyboard-Presses.md): Respond to keyboard presses. - [How to Use iCloud While Only Kinda Using iCloud](https://swiftjectivec.com/How-to-use-icloud-without-really-using-icloud.md): iCloud is the gift that keeps on giving - both good and bad. Let's see how to leverage one of its best aspects today. - [How to Be Okay When You're Not](https://swiftjectivec.com/How-to-be-okay-when-youre-not.md): Tough times are no fun, but like anything else they provide a unique learning experience. Here's what I've recently picked up from mine. - [Creating a Siri Shortcut](https://swiftjectivec.com/Create-A-Siri-Shortcut.md): Create a basic shortcut that will show in the Shortcuts app. - [Introducing The Daily iOS](https://swiftjectivec.com/Introducing-The-Daily-iOS.md): A tour of different technologies contributed to my newest mini project, The Daily iOS. - [Things I Made That Sucked](https://swiftjectivec.com/Things-I-Made-That-Sucked.md): We don't all hit homeruns on the first go around. Today, I celebrate the misses. - [Tailwind CSS from an iOS Developer's Perspective](https://swiftjectivec.com/TailwindCSS-from-a-iOS-dev.md): The popular CSS framework came to my rescue when redesigning my site. Here's how it went. - [Spotlight Search using NSUserActivity](https://swiftjectivec.com/Spotlight-Search-User-Activity.md): Expose data from Spotlight search using NSUserActivity. - [Spotlight search using Core Spotlight](https://swiftjectivec.com/Spotlight-Search-Core-Spotlight.md): Expose data from Spotlight search using the Core Spotlight framework. - [Diffable Datasource with UITableView](https://swiftjectivec.com/Diffable-Datasource-Tableview.md): Setup diffable datasource with UITableView. - [A New Home for Spend Stack](https://swiftjectivec.com/A-New-Home-For-Spend-Stack.md): A chapter of my professional life comes to an end. Spend Stack has been acquired and will get the full team it deserves! - [Happy When?](https://swiftjectivec.com/Happy-When.md): Indie development is about having a strong mental game as much as it is strong development skills. - [Spend Stack: Year One](https://swiftjectivec.com/Spend-Stack-One-Year.md): Spend Stack has been out one year! Today, I take a second to reflect on all that has happened since it released. - [iOS 14: Notable UIKit Additions](https://swiftjectivec.com/iOS-14-Notable-UIKit-Additions.md): If you thought UIKit was getting pushed to the side with the rise of SwiftUI, you were wrong. There's a lot that's new, improved or revamped - let's take a look. - [WWDC 2020: The Pregame Quiz](https://swiftjectivec.com/WWDC-2020-The-Pregame-Quiz.md): And here we go - iOS 14, SwiftUI tweaks and Catalyst fixes are on the way. It's time for another WWDC Pregame Quiz! - [The Big Update](https://swiftjectivec.com/The-Big-Update.md): Spend Stack just recently wrapped up its first big update. Turns out, they are critical to paid up front apps. - [How a Feature Ships](https://swiftjectivec.com/How-a-Feature-Ships.md): Creating a feature is a process that should be as scrutinized as much as it is celebrated. Here's how I go about it in my own indie apps. - [Exploring Futures over Closures](https://swiftjectivec.com/Exploring-Closures-With-Futures.md): Lately, I've been researching more about effective Combine techniques. Today, I start in on utilizing Futures. - [It's Okay to Do Nothing](https://swiftjectivec.com/Its-Okay-To-Do-Nothing.md): COVID-19 and your productivity. There are inexorably linked, so let's talk about it. - [Keyboard and Combine](https://swiftjectivec.com/Keyboard-and-Combine.md): Handling the keyboard on iOS is a rite of passage if not also a little tiresome. Fortunately, Combine makes it better. - [Creating a Retail Demo for Apple](https://swiftjectivec.com/Creating-A-Retail-Demo.md): Spend Stack was selected by Apple to be included as a retail demo on iPhones & iPads across the globe. Here's what the process was like. - [Dynamic Master Detail View Background Colors](https://swiftjectivec.com/Master-Detail-Styling.md): In my quest to pretty up some of the rougher edges of Spend Stack, today I turn my attention to styling my interface in Master-Detail Views. Easy to describe, harder to do. - [CollectionDifference](https://swiftjectivec.com/CollectionDifference.md): Another core piece of functionality arrived in Swift 5.1 - built in diffing. Let's take a look. - [Empty View With Diffable Datasource](https://swiftjectivec.com/Diffable-Datasource-Empty-View.md): Empty views are a critical piece of user experience on iOS. Today in tech notes, I explore how this might be done with diffable datasource. - [A Best In Class App: Spend Stack Checkup](https://swiftjectivec.com/Spend-Stack-Best-In-Class.md): I've often written about what it takes to be considered a best in class app on iOS. So, how am I doing personally according to my own definition? - [Xcode Preview Snips](https://swiftjectivec.com/Xcode-Preview-Snips.md): Xcode Previews for SwiftUI has quite literally changed a decade old workflow. Here are the techniques I currently live by. - [On Forming Habits](https://swiftjectivec.com/On-Forming-Habits.md): What indie dev isn't short on time, wants to ship a new app or write that book? It only happens with realistic goals which beget good habits - here's how I work to create, and foster, good ones. - [Can You Learn Design?](https://swiftjectivec.com/Can-You-Learn-Design.md): There's a lot of discussion in our industry about whether or not designers should learn to code. But, what about the other direction? - [SwiftUI: What Just Happened?](https://swiftjectivec.com/SwiftUI-What-Just-Happened.md): The amount of power and engineering behind SwiftUI is extraordinary. Let's breakdown what's happening when one creates a new project using it. - [Animating Images using ImageIO](https://swiftjectivec.com/Animating-Images-Using-Image-IO.md): Animating images is a common medium for communication in today's society. In iOS 13, Apple quietly offered us up a way to serve up .gifs or APNG files using ImageIO. - [On Launching Your Indie App](https://swiftjectivec.com/On-Launching-Your-Indie-App.md): The art of launching is a mystical, debated art. Yet, in many ways it's the cornerstone of our initial success. - [Introducing Spend Stack](https://swiftjectivec.com/Introducing-Spend-Stack.md): If I write about indie development, I suppose it's time to reveal my indie project. Many years in the making, here's Spend Stack. - [A LinkPresentation Introduction](https://swiftjectivec.com/LinkPresentation-Introduction.md): Say hello to a new framework shipping in iOS 13 that you've likely used hundreds of times as an end user. Now, rich link previews are available to all of us. - [iOS 13: Notable UIKit Additions](https://swiftjectivec.com/iOS-13-Notable-UIKit-Additions.md): Though UIKit wasn't the star of the show, its number of improvements certainly don't show it. Let's see what's new in iOS 13 for our favorite framework. - [WWDC 2019: The Pregame Quiz](https://swiftjectivec.com/WWDC-2019-The-Pregame-Quiz.md): iOS 13 is coming. Before Marzipan and Dark Mode show their respective faces, let's enjoy another annual pregame quiz! - [NSSecureCoding](https://swiftjectivec.com/NSSecureCoding.md): Any application on iOS is a purveyor of data in some capacity. NSSecureCoding ensures that this data is what it says it is, and will do what it says it should do. - [I Made Some Pancakes](https://swiftjectivec.com/making-pancakes.md): What can fluffy butter cakes teach me about indie development? Apparently, just what I needed to learn. - [Handling iCloud Assets](https://swiftjectivec.com/iCloud-Photo-Handling.md): Rich media plays an important role in the mobile ecosystem. Working with them when they're located off-site requires some nuance. - [A Best-in-Class iOS App](https://swiftjectivec.com/A-Best-in-Class-App.md): What is a best-in-class iOS app? How are they built, and can we quantify what makes them great? - [NS_CLOSED_ENUM](https://swiftjectivec.com/NS_CLOSED_ENUM.md): Enumerations provide clarity and intent. Some change and yet others remain stagnant, and now we program effectively for either case. - [The Chart That Lies](https://swiftjectivec.com/the-chart-that-lies.md): On being realistic about the things we make, and the relationship that time has with them. - [Optimizing Images](https://swiftjectivec.com/optimizing-images.md): iOS is a visual medium teeming with beautiful images in virtually every app on your phone. Important though they are, it's trivial to mismanage them from a memory and performance standpoint. - [Supporting External Displays](https://swiftjectivec.com/supporting-external-displays.md): With the iPad Pro's USB-C support, the opportunity to support external displays in a first class manner has never been more pertinent. Doing so doesn't require much work, and the potential value add is high. - [UIGraphicsImageRenderer](https://swiftjectivec.com/uigraphicsimagerenderer.md): For years, we've used Core Graphics to draw. Let's turn the page to modern drawing on iOS. - [iOS 12: Notable UIKit Additions](https://swiftjectivec.com/iOS-12-Notable-UIKit-Additions.md): Our favorite framework for user interface creations becomes faster and a bit more nimble with iOS 12. - [WWDC 2018: The Pregame Quiz](https://swiftjectivec.com/WWDC-2018-The-Pregame-Quiz.md): iOS 12 beckons, but before it does - let's quiz it up over iOS versions of yesterday. - [NSPredicate](https://swiftjectivec.com/NSPredicate-Objective-C.md): Twist and turn your way through collections and data sets with ease. - [UILayoutGuide](https://swiftjectivec.com/UILayoutGuide.md): Spacer views often make user interface creation more palatable, but with significant drawbacks. There's a more pragmatic way. - [Connecting iOS Apps with Their Websites](https://swiftjectivec.com/Techniques-to-Connect-Websites-to-iOS-Apps.md): As developers, marketing often escapes the lot of us. Fortnuately, Apple has made a few quick wins available to create meanginful connections between your app and its web site. - [NSMeasurement](https://swiftjectivec.com/NSMeasurement.md): Measuring units can be a daunting task, especially with the global audience we often serve. Let's see how Foundation can lend a hand. - [Copy on Write](https://swiftjectivec.com/Copy-on-Write-in-iOS-11.md): Yet again, Foundation dishes out free optimizations without us having to lift a finger. Let's see how collections became a bit smarter. - [Device Check Overview](https://swiftjectivec.com/The-DeviceCheck-API.md): There are legitimate uses for tagging devices, but the problem is, doing so can down shady roads. Now, we've got a non shady way to go about it. - [Dealing with Home Indicator](https://swiftjectivec.com/iPhone-X-Dealing-with-Home-Indicator.md): View Controllers are notorious for the amount of responsibilities they have, but get ready for one more. Here's how to handle the home indicator. - [Random Wisdom: Part 1](https://swiftjectivec.com/Random-Wisdom.md): In our first edition of random wisdom, let's poke around around some Objective-C. Inline blocks, how selectors work and more. - [SFAuthenticationSession](https://swiftjectivec.com/Privacy-and-Single-Sign-On.md): Single sign on isn't gone, in fact - it's better. Enter a new way to deal with OAuth. - [simctl](https://swiftjectivec.com/iOS-Simulator-Power-Ups.md): The iOS emulator is deceptively powerful. Learn about its C.L.I. to automate all sorts of things. - [iOS 11: Notable UIKit Additions](https://swiftjectivec.com/iOS-11-Notable-UIKit-Additions.md): Once again, UIKit added more firepower. Beyond drag and drop APIs, there's much more to be excited about. - [WWDC 2017: The Pregame Quiz](https://swiftjectivec.com/WWDC-2017-The-Pregame-Quiz.md): Time to fire up the trivia machine, WWDC 17 is around the corner. What better time to test your wit against some Apple history? - [Global Functions](https://swiftjectivec.com/UIKit-Global-Functions.md): UIKit has everything to splash out eye candy. But it also houses several helpful utilities to help get you there. - [Tail Call Elimination](https://swiftjectivec.com/Tail-Call-Elimination-in-iOS.md): Foundation keeps caches hot and saves on precious stack memory via tail call elimination. Let's take a look at how this occurs. - [Attributes in Swift](https://swiftjectivec.com/Swift-Attributes.md): Attributes can keep code clean and conscise without much effort. Today, let's cover some common, and uncommon, use cases. - [Swift Keywords](https://swiftjectivec.com/Swift-Keywords-V-3-0-1.md): Swift has quite a few keywords. Let's look at every single one, what it does and provide a code sample. - [UIStackView: A Field Guide](https://swiftjectivec.com/UIStackView-A-Field-Guide.md): Stack View has been pushed heavily by Apple, but sometimes its complexity overshadows its utility. A few simple tips can help ease that burden. - [NS_SWIFT_NAME](https://swiftjectivec.com/Swift-NS-SWIFT-NAME.md): Interop is required in the world we live in. Here's an attribute in Swift that can help make things easier. - [noescape](https://swiftjectivec.com/Swift-noescape.md): It's an attribute you've seen hanging over closures. Let's dive into what it means, or more specifically - meant. - [iOS True Confessions](https://swiftjectivec.com/iOS-True-Confessions.md): There is no developer who knows it all, and in our industry imposter syndrome runs rampant. So, let's break those walls and celebrate all that we don't know. - [Consuming and Transforming Arrays](https://swiftjectivec.com/Swift-Consuming-Transforming-Arrays.md): The Swift Stand Library offers up several differeny ways to work with arrays. From sorting to sifting, almost every use case is covered efficiently. - [Leveraging Swift Enums for Quick Actions](https://swiftjectivec.com/Using-Swift-Enums-for-Quick-Actions.md): Quick Actions are a staple component of a first class 3D Touch experience. Implementing them using Swift's enumerations makes for a pragmatic approach. - [Initialization with Closures](https://swiftjectivec.com/Swift-Initialization-with-Closures.md): More than just an anonymous function, Swift's closures are extremely versatile. One such use case for them is initialization. - [On Learning iOS](https://swiftjectivec.com/On-Learning-iOS.md): iOS, once a newly minted discipline, is now a large world. It's intimidating to get started, so here's my simple take on how to get going quickly. - [#keyPath](https://swiftjectivec.com/Swift-keyPath.md): Selectors are a part of iOS development daily. They can also be a common source of frustrating bugs, but #keyPath is here to help. - [WWDC 2016: The Pregame Quiz](https://swiftjectivec.com/WWDC-2016-The-Pregame-Quiz.md): It's our favorite time of the year, dub dub. Let's kick it off with some Apple trivia. - [Swift 3 Feature Highlight](https://swiftjectivec.com/Swift-3-Feature-Highlight.md): Our favorite open source language is changing at a rapid pace. Here, we'll check out some of my favorite additions that landed in Swift 3. - [Access Control](https://swiftjectivec.com/Access-Control-Swift.md): Abstraction is a tent pole component of modern programming. Swift's robust tooling for access control can help us enforce it. - [A Swift Refactor](https://swiftjectivec.com/A-Swift-Refactor.md): Swift offers us several novel ways to refactor our code. Follow along as we embark on such a task on some fictional code. - [iOS Citizenship: Reacting to Low Power Mode](https://swiftjectivec.com/iOS-Citizenship.md): It's a term you've likely heard in the development community - being a good citizen. What does it mean, and how can we do just that? - [iOS Architecture Patterns: Part 3](https://swiftjectivec.com/Architecture-Patterns-in-iOS-Part-3.md): Our third and final discussion on common iOS archiecture patterns, and perhaps the most important. Let's chat MVC. - [iOS Architecture Patterns: Part 2](https://swiftjectivec.com/Architecture-Patterns-in-iOS-Part-2.md): Our second discussion on iOS architecture patterns. Here's how delegation is imprinted across Cocoa Touch. - [iOS Architecture Patterns: Part 1](https://swiftjectivec.com/Architecture-Patterns-in-iOS-Part-1.md): Our first discussion over iOS architecture patterns. Let's peer into the world of target-action. - [ARC](https://swiftjectivec.com/ARC-Swift.md): Automatic reference counting debuted several years ago and ushered in a new era of memory management. But, how does it work with Swift? - [Initialization](https://swiftjectivec.com/Swift-Initialization.md): If you're coming from Objective-C or are new to Swift, the way its initialization works can be confusing. Diving into the particulars is a worthwhile effort. - [Protocol Extensions](https://swiftjectivec.com/Swift-Protocol-Extensions.md): It's possible to enhance a wide family of objects with protocol extensions. Today we'll try and see how its possible. - [Option Set](https://swiftjectivec.com/Swift-Option-Set.md): Option Sets solve a large swath of problems, but you may not think to use them at first. Looking at how they work and why their useful might change your mind. - [Javascript](https://swiftjectivec.com/Swift-Javascript.md): Javascript and...Swift? It works better than you might think, and for more than just parlor tricks. - [Error Handling](https://swiftjectivec.com/Swift-Error-Handling.md): Dealing with errors is usually a developer's favorite task to procrastinate against. But it shouldn't be, and even though Swift's inplementation is differnt - it's robust. - [Guard](https://swiftjectivec.com/Swift-Guard.md): More than an _if_ statement, this simple construct makes code safer and readable. But when do you use one or the other? - [Defer](https://swiftjectivec.com/Swift-Defer.md): More than an _if_ statement, this simple construct makes code safer and readable. But when do you use one or the other? - [Quality of Service](https://swiftjectivec.com/Quality-of-Service.md): Threading, concurrency and parallelism can be a sticky subject. Thankfully, Foundation has an API to make everything safer. - [Objective-C in 2015](https://swiftjectivec.com/Objective-C-in-2015.md): Apple has decreed that it's Swift's world and Objective-C is just living in it. Paradoxically, it's almost made it better than it's ever been. - [Pattern Matching](https://swiftjectivec.com/Tuples-Pattern-Matching.md): Pattern matching with Swift yields concise code when it otherwise might be a bit more convoluted. Here's how it works. - [Protocol Oriented Programming](https://swiftjectivec.com/Protocol-Oriented-Programming.md): The infamous WWDC session introduced us to 'Protocol Oriented Programming'. Really, though - what is it? - [WWDC 2015: The Pregame Quiz](https://swiftjectivec.com/WWDC-2015-The-Pregame-Quiz.md): Now that WWDC is here, let's start a new annual tradition. It's time for the very first WWDC Pregame Quiz. - [Definitive Initialization](https://swiftjectivec.com/On-Definitive-Initialization.md): Swift goes to great lengths to ensure values are initialized before they are used. The reasons how vary from API design to the way LLVM works - let's chat about this process called definitive initialization. - [Objective-C and Swift Together](https://swiftjectivec.com/Swift-Objective-C.md): We've now hit the inflection point where your Objective-C projects must mix with Swift, or vice-versa. Here's how my first experience with it went. - [bool](https://swiftjectivec.com/Swift-Bool.md): The boolean variable, perhaps the most simple implementation in Computer Science - or is it? Swift's version can do more than just spit out 0 or 1. - [set](https://swiftjectivec.com/Swift-Set.md): The array is a beautiful cornerstone of data structures, but sometimes we call upon its close cousin - the set. Here's how Swift's version works. - [int](https://swiftjectivec.com/Swift-Int.md): Integers are used in almost every iOS app. With Swift, they've become even more useful. - [Looping and Iteration](https://swiftjectivec.com/Swift-Loop.md): It's one of the first thing green programmers learn - looping and iteration. Swift has made it easy and versatile. - [Casting](https://swiftjectivec.com/Swift-Cast.md): We'd all just as soon let the compiler do all the work, but sometimes casting is unavoidable. Here's how it can be used with Swift. - [NSURLComponents](https://swiftjectivec.com/NSURLComponents.md): Picking apart and composing URLs becomes a more common programming task by the day. Foundation has a class specifically built for such situations. - [Tuples](https://swiftjectivec.com/Swift-Tuples.md): Tuples can be a short stand in for tiny data constructs. When used properly, they can make your code a bit more opportunistic.