RSSAmplifier

Blog

Ben Dodson's Weblog - Freelance Apple Developer

The weblog of Ben Dodson, freelance developer on all Apple platforms

bendodson.comRSS feed ↗25 posts

Latest posts

Restoring the traditional icon-based tab bar on iPad with Liquid Glass

IMPORTANT Apple removed this feature in iOS 26.4, meaning that any app using the below code will revert to the default tab bar. I’ve left this post for posterity but I’m hopeful that iOS 27 will enable some better changes to the tab bar. iPadOS 18 forced a UI change to tab bars that was arguably worse for users and added extra work for developers who had no choice but to support it. No longer…

Getting the new portrait artwork from the iOS 26 Apple TV app

iTunes added the ability to purchase TV shows in 2005 with movies following a year later. For both of these, artwork was available in a square aspect ratio usually at 600x600px. With iOS 12.3 in 2019, Apple moved the video content in iTunes to a new Apple TV app which incorporated a 16:9 aspect ratio for artwork, typically at 4K resolution. Now with the launch of iOS 26 and macOS Tahoe, Apple has…

Getting Hi-Res Album Artwork in Apple Shortcuts

For over a decade, I’ve been providing a way to easily access high-resolution album artwork through my iTunes Artwork Finder and Apple Music Artwork Finder . These tools allow you to uncover the original, uncompressed artwork files exactly as they were delivered to Apple by the artist or their label — no compression, no quality loss, just high quality imagery. Over the years, I’ve received…

Using your Personal Voice (along with system and novelty voices) in an iOS app

Text to speech has been around on iOS for over a decade, but Apple added a few new features in iOS 17 that could make interesting additions to your app. In this tutorial I’ll show you how to use AVSpeechSynthesizer to speak with the default system voices, the new “novelty” voices, and to even speak with the users own AI generated “Personal Voice”! The motivation for this came about when a user of…

Adding teachable moments to your apps with TipKit

When TipKit was first mentioned during the WWDC 2023 State of the Union, I assumed it was going to be a way for apps to appear within the Tips app and maybe appear within Spotlight. Instead, it’s a built-in component for adding small tutorial views to your own app across all platforms complete with a rules system for condition-based display and syncing across multiple devices via iCloud! Even…

Attempting to connect a tvOS app to an iOS app with DeviceDiscoveryUI

As we get to the final month before WWDC 2023, I’m reminded of all the new APIs that were released at WWDC 2022 that I haven’t made use of yet. One of those new APIs was the DeviceDiscoveryUI framework which allows an Apple TV app to connect and communicate with an iPhone, iPad, or Apple Watch. A good example of this would be how the Apple Watch communicates with the Apple Fitness app: Image…

Postmortem of the launch of a Top 10 Paid iOS App

It’s been 4 weeks since the v2.0 update for Music Library Tracker launched so I thought now was a good time for a retrospective to detail how I promoted the app and how well it performed. By way of a bit of background, the app originally launched back in January 2016 at a $0.99 price point making $1368 in it’s first month before dropping off significantly to roughly $20 a month. In January 2021, I…

Side Project: Back Seat Shuffle

This is part of a series of blog posts in which I showcase some of the side projects I work on for my own use. As with all of my side projects, I’m not focused on perfect code or UI; it just needs to run ! If I’m going on a long drive with my two young children, I’ll load up an iPad with some videos and stick it in a pouch on the back of a seat to keep them entertained. Initially this started as a…

Return to Dark Tower Assistant

Return to Dark Tower is a really cool app-driven board game that comes with a physical tower that you connect via Bluetooth to an iPad. The tower lights up, makes sounds, and spins internally to shoot little skulls you place into it over the outlying map. You put little skulls in the top of the tower to end your turn... As much as I love it, there are a ton of cards in the game so you can easily…

Using a Stream Deck for iOS development

The Elgato Stream Deck is a fun device with 15 LED buttons that can be programmed to do whatever you want through an app that runs on PC and Mac. It was designed for streamers to be able to quickly switch scenes or present overlays but it has quickly become popular in other areas thanks to its flexible design. I picked one up in 2018 when I was dabbling with streaming but then mostly used it as…

The Dodo Developer

For the past few months I’ve been meaning to start a newsletter; partially as a way of motivating me to finish some of my many projects, partially as a way of building up a mailing list so I can market my own apps better. The priority for this has only increased as the long-term future for Twitter (my main source of referrals to my various apps and websites) has moved to shakier ground 1 . Today I…

'Chaise Longue to 5K' and porting a tvOS app built with UIKit to iOS, iPadOS, and macOS

A little while ago, my chiropractor recommended that I take up the “ Couch to 5K ” program in order to improve my fitness in a way that wouldn’t see me literally running before I could walk. It was a huge success and I was able to lose a significant amount of weight and improve my overall health. Unfortunately, the 2020 lockdowns and the birth of a new child meant most of that effort was undone…

Introducing the Spatial Audio Finder

I love Spatial Audio. The sound quality and the balance of the individual audio elements is truly extraordinary and a huge advantage for Apple Music over other streaming services. But the process of finding supported tracks is… well, a bit rubbish. At the moment, there are 3 ways to discover Spatial Audio tracks: Using Apple’s own curated category which features a number of playlists and a…

Unlisted App Distribution on the App Store

Back in 2015 I was commissioned to rebuild an iOS app for models1 , the leading modelling agency in Europe. The app performed double duty acting as a personal portfolio for models within the agency and a collection of all of the portfolios for the agents. As it was only for staff and models, the app was distributed via an Enterprise certificate which allowed me to generate a single .ipa and…

Web Inspector on iOS devices and Simulators

Over the past few weeks I’ve worked on a number of projects that have necessitated me working with HTML and JavaScript be that via Safari on iOS, an SFSafariViewController, or in an embedded WKWebView. In all of these cases, I’ve needed to dive into the DOM to see what styles are being applied to certain elements or dig into a JavaScript Console to work out why some code isn’t working. On desktop,…

Browser Note and the process of building an iOS 15 Safari Extension

I order a Chinese takeaway most weeks and my regular order is half a crispy aromatic duck. This is a bit excessive and so I’ve been aiming to reduce this to a quarter. The problem is that it’s too easy to hit reorder at the end of a long day and whilst I could add a reminder in Things or an alert in my calendar these are very easy to ignore. My solution was to use the new support for browser…

Side Project: Stoutness

This is part of a series of blog posts in which I showcase some of the side projects I work on for my own use. As with all of my side projects, I’m not focused on perfect code or UI; it just needs to run ! Over the years I’ve been slowly tinkering with an idea I liked to call “The Morning Briefing”, a simple way to give me the information I want in the mornings such as the news, weather, and a…

Exorbitantcy and the fight against the App Store

Last month, outspoken CEO of Epic Games Tim Sweeney ranted about the App Store in an interview with CNBC : Apple has locked down and crippled the ecosystem by inventing an absolute monopoly on the distribution of software, on the monetization of software. They are preventing an entire category of businesses and applications from being engulfed in their ecosystem by virtue of excluding competitors…

Side Project: (Feed Me) Seymour

This is part of a series of blog posts in which I showcase some of the side projects I work on for my own use. As with all of my side projects, I’m not focused on perfect code or UI; it just needs to run ! I’ve cheated slightly this month by working on two side projects; a simple iOS app and a SwiftUI watchOS app. The Apple Watch app isn’t quite ready yet so instead I’m going to show you…

Side Project: Sealed

This is part of a series of blog posts in which I showcase some of the side projects I work on for my own use. As with all of my side projects, I’m not focused on perfect code or UI; it just needs to run ! I am a huge advocate of side projects, small apps that let you test an idea in isolation usually for your own personal use. Over the course of my 14 year career as a software developer I’ve…

Revival

I’m pleased to announce the release of a new client app I’ve been working on over the past few months: Revival , truly uncomplicated task planning for everyone: I was originally contacted by Wonderboy Media with the intention of working on updating their existing reminders app which was looking a little dated and had some issues with broken functionality. After a detailed examination, it was…

Gyfted

I’m pleased to announce the release of a new client app I’ve been working on recently: Gyfted , the free universal wishlist. I worked as the only iOS developer on the project working remotely from the UK. The app provides a free and easy way for users to create their own wishlists and populate them with items from a data driven explore page or by manually entering details. It is also possible to…

Introducing the Apple TV Shows & Movies Artwork Finder

With iOS 12.3, Apple unveiled a new design for the TV app featuring an industry unstandard 16:9 aspect ratio for cover artwork. This new design was used for both TV shows and movies which had been 1:1 squares and 3:2 portraits respectively. Apple doubled down on this design with the preview of macOS Catalina over the summer and the imminent removal of iTunes. This new art style is notable for a…

Customising a website for iOS 13 / macOS Mojave Dark Mode

On our The Checked Shirt podcast yesterday, Jason and I were discussing the announcements at WWDC and in particular the new “Dark Mode” in iOS 13 1 . One question Jason asked (as I’m running the iOS 13 beta) is how Safari treats websites; are the colours suddenly inverted? No. It turns out that just before the release of macOS Mojave last year, the W3C added a draft spec for prefers-color-scheme…

Detecting text with VNRecognizeTextRequest in iOS 13

At WWDC 2017, Apple introduced the Vision framework alongside iOS 11. Vision was designed to help developers classify and identify things such as objects, horizontal planes, barcodes, facial expressions, and text. However, the text detection only recognized where text was displayed, not the actual content of the text 1 . With the introduction of iOS 13 at WWDC last week, this has thankfully been…