When creating an iOS app that deals with audio, it’s important to configure and handle audio sessions properly. Along with setting up an audio session, there are some extra steps required to properly support Bluetooth audio. 1. Configuring Audio Sessions By default, audio sessions support audio playback but not audio recording. If your app supports […]
Lately, I’ve been working on a project that employs a Redux-inspired state management architecture built using Swift and SwiftUI. Of course, because of the Redux pattern we employ, we have lots of reducers with the signature (state, action) -> state. All of our states and sub-states are held in Swift structs. The out-of-the-box, value-type semantics […]
When I first started working in Swift, I assumed it was like an Objective-C clone with cleaner syntax. I was wrong. Swift has several idiosyncrasies and potential pitfalls you need to be aware of — whether your background is in Objective-C or some other language. Here are ten lessons I’ve learned about what sets Swift […]
With the addition of the Touch Bar comes the ability to customize it for your own applications. From simply adding buttons to incorporating sliders or color pickers, programming the Touch Bar is a new, creative way to add shortcuts and other functionality into your Mac app.
Automated testing is an essential part of every development project we undertake at Atomic Object. In the past year, I have worked on multiple iOS applications in Swift. Here are four things I’ve discovered that make unit and integration testing more convenient and flexible.
I’ve recently been working on an iOS project that uses iBeacons. In this post, I’ll provide a comprehensive guide for working with iBeacons in iOS using Swift. I’ll describe what iBeacons are, how you can use them, and what you should know about the programming model for interacting with them in iOS. I’ll also share […]
UIWebViews are a handy way to show web content in an iOS app. They are especially useful for showing PDFs that are stored remotely. Apple largely treats UIWebViews like a black box: Documentation warns that they should not be subclassed. So what if you want to customize how they show PDFs? Recently, I went after […]
Swift has made quite an improvement to the enum type compared to what you could do in C. In this post, I will show you how you can use the new features of enum to manage hard-coded strings in your application.
In my previous blog post, I wrote about an approach for managing state in a Swift app. Following that post, some changes were made to the Swift language that deprecated some convenient syntax my approach relied on. After some thinking, and with a better understanding of Swift’s approach to mutability, I’ve slightly revised this architecture […]
I’ve been working on developing an iOS app in Swift. It’s my first experience developing in pure Swift, without any Objective-C. This project has taught me a lot about the current state of testing in Swift, including different testing approaches and best practices. In this post, I’ll share some of my experiences and discuss how […]