Ben Dodson
Freelance iOS, macOS, Apple Watch, and Apple TV Developer
Home
Blog
About
Portfolio
My Apps
Projects
Contact
2024
Getting Hi-Res Album Artwork in Apple Shortcuts
August 20, 2024
Using your Personal Voice (along with system and novelty voices) in an iOS app
April 03, 2024
2023
Adding teachable moments to your apps with TipKit
July 26, 2023
Attempting to connect a tvOS app to an iOS app with DeviceDiscoveryUI
May 10, 2023
Postmortem of the launch of a Top 10 Paid iOS App
March 14, 2023
Side Project: Back Seat Shuffle
January 17, 2023
2022
Return to Dark Tower Assistant
December 15, 2022
Using a Stream Deck for iOS development
December 08, 2022
The Dodo Developer
November 21, 2022
'Chaise Longue to 5K' and porting a tvOS app built with UIKit to iOS, iPadOS, and macOS
July 12, 2022
Introducing the Spatial Audio Finder
June 27, 2022
Unlisted App Distribution on the App Store
May 17, 2022
Web Inspector on iOS devices and Simulators
April 13, 2022
Browser Note and the process of building an iOS 15 Safari Extension
March 11, 2022
2021
Side Project: Stoutness
March 10, 2021
2020
Exorbitantcy and the fight against the App Store
August 13, 2020
Side Project: (Feed Me) Seymour
February 28, 2020
Side Project: Sealed
February 01, 2020
2019
Revival
October 25, 2019
Gyfted
September 15, 2019
Introducing the Apple TV Shows & Movies Artwork Finder
August 19, 2019
Customising a website for iOS 13 / macOS Mojave Dark Mode
June 12, 2019
Detecting text with VNRecognizeTextRequest in iOS 13
June 11, 2019
UKTV Play for Apple TV
June 06, 2019
Reaction Cam v1.4
May 12, 2019
Foodim
April 08, 2019
Announcing the Apple Music Artwork Finder
March 05, 2019
Hawkker
February 27, 2019
2018
DrinkCoach Updates
November 12, 2018
Building a Twitch Panel Extension
September 10, 2018
Scalable bulleted lists with UILabel or UITextView
August 09, 2018
Solcaster
July 02, 2018
"iPhone Only" apps on the iPad
June 20, 2018
Custom Intents with SiriKit on iOS 12
June 05, 2018
2017
Developers who work from spectacular locations
November 07, 2017
DrinkCoach+
October 26, 2017
Forcing left-to-right text in iOS localizations
October 04, 2017
MPMediaItem+CanAddToLibrary.swift
July 19, 2017
Flawless
June 16, 2017
Great British Bee Count 2017
May 19, 2017
Reaction Cam
May 10, 2017
AlcoPath
March 27, 2017
Building tools for Kylo Ben
February 23, 2017
Proposal for an Erase Data Passcode
February 16, 2017
The Checked Shirt #1 - Lost AirPods, iOS 10.3 beta, App Store changes, and Invoicing
January 26, 2017
Syncing Apple Music with Spotify
January 25, 2017
Some thoughts on Apple's new Alternative Tier A and B pricing strategy for apps
January 18, 2017
Sporta 2.0
January 10, 2017
2016
Booktrim for iPhone
December 12, 2016
Don't be the idea person
November 15, 2016
Updates to iTunes Artwork Finder
November 08, 2016
Vortech
October 29, 2016
Kylo Ben
October 27, 2016
Working Remotely
October 12, 2016
MailRoute blacklisting via email
September 15, 2016
Pocket Rocket for iOS 10 (now with an iMessage app)
September 14, 2016
Generating a random colour, with a seed, in Swift 3
September 10, 2016
Tips for Remote Working
August 23, 2016
Brapp: Summer Updates
August 18, 2016
Moonlight tvOS for Apple TV 4
August 11, 2016
The Divide #15 - Virtually Reality
August 05, 2016
Media Library privacy flaw fixed in iOS 10
August 02, 2016
Talking Shop with Ben Dodson
July 20, 2016
Creating passwordless user accounts within iOS apps
July 10, 2016
The Divide #14 - WWDC 2016, 'iTunes with tabs'
June 15, 2016
iOS 10 Wishlist
June 07, 2016
The Divide #13 - Consoles
May 25, 2016
HomeKit, AirPlay, and controlling iTunes with Siri
May 24, 2016
Great British Bee Count 2016
May 19, 2016
Using a physical button (Flic) with HomeKit scenes and triggers
May 18, 2016
Fetching RSS Feeds for Steam game updates
May 17, 2016
AirPlay Alarm Clock with iTunes 12
May 12, 2016
The Divide #12 - Reboots
May 04, 2016
Emoji flags from ISO 3166-1 country codes (in Swift)
April 26, 2016
iPhone 7 headphone predictions
April 23, 2016
Clinix
April 18, 2016
Connecting To Host
April 16, 2016
Thoughts on ringtones
April 13, 2016
'Start Me Up' Interview
April 08, 2016
The Divide #11 - 3D Printing
April 06, 2016
HomeKit, Wink, and Canary
March 23, 2016
The Divide #10 - Let us loop you in. Again.
March 23, 2016
What to expect from the 'Let us loop you in' Apple event
March 21, 2016
Show Me The Next
March 15, 2016
Music Tracker v1.3
March 15, 2016
Brapp 2.0
March 11, 2016
Sunday Isn't Special
March 10, 2016
The Divide #9 - Board Game Tangents
March 02, 2016
Storefront Additions: A simple way to convert SKCloudServiceController store identifiers into country codes
February 26, 2016
Details on the iOS 9.3 Media Library additions
February 23, 2016
The Divide #8 - Drunkstarter: A discussion on crowdfunding
February 17, 2016
Music Tracker v1.1 and Pocket Rocket v1.1 Released
February 16, 2016
Deleting all NSUserDefaults with Swift
February 05, 2016
Calm Radio for iOS
February 02, 2016
The Divide #7 - Mind Missiles and The Internet of Stuff
January 27, 2016
Music Tracker
January 20, 2016
Your music library is a security and privacy risk on iOS
January 13, 2016
Munchkin Report
January 13, 2016
Calm Radio for Apple TV
January 13, 2016
The Divide #6 - The 'JJ Abrams' of game lists
January 13, 2016
Fixing emoji footnote arrow bug in Jekyll
January 11, 2016
Dodo Apps
January 08, 2016
Swift extension to make CALayer borderColor and shadowColor work with Interface Builder
January 06, 2016
The Divide #5 - 'Jar Jar Abrams', a Star Wars special!
January 04, 2016
2015
iOS developers don't work for free
December 22, 2015
Pocket Rocket, read your Pocket articles quickly in Safari on iOS
December 20, 2015
Natural Cycles Apple Watch app
December 17, 2015
The Divide #4 - Getting into code
December 16, 2015
Steve Jobs introduces the iPad at Death Star briefing
December 14, 2015
Using the Siri Remote with the Apple TV Simulator
December 09, 2015
Introducing 'The Divide'
December 02, 2015
HomeKit enabled Christmas tree lights with Siri control
December 01, 2015
Brapp v1.1
November 27, 2015
Chipp'd, an app for sharing personal messages
November 19, 2015
A simple Audio Recorder controller in Swift (for iPhone)
October 20, 2015
HKHealthStore Extension, deleteSamplesOfType
October 06, 2015
HealthKit Radar 22977320
October 05, 2015
The Times They Are A-Changin'
September 25, 2015
Brapp, the rap app
September 25, 2015
AppIndex Interview
September 23, 2015
Microsoft Bridge and the "App Gap"
August 19, 2015
LEGO Scooby-Doo
July 31, 2015
The mobile web
July 28, 2015
Finding the next available driving test with Goutte PHP Scraper
July 24, 2015
TransferWise
July 17, 2015
UK Apple Pay
July 14, 2015
Forcing UIStatusBarStyle for UIImagePickerController
July 10, 2015
Optical media and the pain of Remote Disc
July 10, 2015
Adding Exercise Data To Activity
July 07, 2015
Since, an NSDate Extension in Swift
June 23, 2015
Using an SSD with the Xbox One
June 19, 2015
Glenfiddich Residence Changhi
May 29, 2015
Working out with Apple Watch
May 26, 2015
Using Stripe for In-App Purchases
May 22, 2015
iTunes Artwork Finder Source Code
May 20, 2015
A Month-Year UIPickerView Written In Swift
May 19, 2015
TV for the UK politics fan
May 05, 2015
The Correct Way To Watch Star Wars
May 04, 2015
Great British Bee Count iPhone App
May 01, 2015
Initial thoughts on Apple Watch
April 25, 2015
Developer pre-orders
April 24, 2015
iTunes Artwork Finder updated with app screenshots and videos (including Apple Watch)
April 23, 2015
LOLy 2.0
March 25, 2015
Albums on iTunes Artwork Finder now at higher resolution
February 26, 2015
Introducing "Blind Bags"
February 23, 2015
Three years of WallaBee
February 16, 2015
IAP and icons in the 'Featured' section of the App Store
February 12, 2015
Xcode 6 Essentials
February 08, 2015
2014
SKProduct localized price in Swift
December 10, 2014
Yosemite WiFi Workaround: Airport Express and USB Ethernet Adapter
November 26, 2014
Dishwasher tablets and app competition
November 18, 2014
Speeding up your DNS
October 20, 2014
Issues with Airport Express, Airport Extreme, and OS X Yosemite
October 17, 2014
October LEGO Updates
October 16, 2014
‘No results found’ on iTunes Artwork Finder
October 10, 2014
The problem with Allow Full Access on iOS 8 keyboards
October 07, 2014
Showing TODO as a warning in a Swift Xcode project
October 02, 2014
Donating blood
September 30, 2014
Private lives
September 29, 2014
IslandBreak
September 26, 2014
iOS using internal reference name for IAP
September 25, 2014
How not to deliver a speech
September 24, 2014
The illusion of choice
September 23, 2014
Font Finder Featured
September 03, 2014
Retiring TubeUpdates and WikiLocation
August 19, 2014
Off on honeymoon!
July 23, 2014
LEGO MINI Cooper
July 19, 2014
kontent
July 14, 2014
Blocks Magazine
July 12, 2014
The joys of running your own business
July 11, 2014
Apple TV gains iTunes Extras
July 11, 2014
Awesome Client
July 03, 2014
2013
Dropping non-retina support in iOS 7
October 16, 2013
Dr. Frasier Crane
May 10, 2013
LEGO Super Star Destroyer
May 09, 2013
iTunes Artwork Finder
February 19, 2013
Harry Potter at the Warner Bros Studio Tour
February 18, 2013
‘CACurrentMediaTime()’
January 29, 2013
Syncing the WallaBee Store
January 22, 2013
LEGO: Lord of the Rings (Xbox 360)
January 20, 2013
Disney MyMagic+
January 08, 2013
Freelance availability
January 08, 2013
Passwords and Encryption
January 06, 2013
2012
Dryathlon
December 29, 2012
Cleaning Up My Web Presence
December 28, 2012
iPhone apps on the new iPad
March 16, 2012
iOS 5.1 Location Services Bug
March 14, 2012
The curious case of "the new iPad"
March 13, 2012
Analyzing the iPad 3 invite
March 03, 2012
I've been looking forward to this day for a long time
February 16, 2012
Path uploads your entire iPhone address book to their servers
February 07, 2012
Calling all beta testers
January 31, 2012
What's happening with iOS 5.1?
January 31, 2012
Retina display graphics reappear in iBooks 2
January 30, 2012
A Sneak Peek at Atomix Magazine v2.0
January 29, 2012
BenDodson.com gets an update
January 26, 2012
UK Carrier O2 sends your phone number to every website you visit
January 25, 2012
2011
How not to ask for an iOS app review - A review of Jumpship Thrust Control 2
December 12, 2011
How's the London Underground? Ask Siri!
December 06, 2011
Goodbye Gowalla
December 03, 2011
The API behind Gowalla v4
October 24, 2011
Highlights v1.1 - Gowalla Trips, Last.fm Events, and Translations
August 20, 2011
The inside story on powering Highlights
July 25, 2011
Review: GeoWiz
July 10, 2011
Does iOS 5 finally allow retina display iPhone apps to run unscaled on the iPad?
June 10, 2011
AirPlay Mirroring, TV Out, and the Apple TV as a games console
June 09, 2011
WWDC 2011 Keynote - Predictions vs Reality
June 08, 2011
WWDC 2011 Predictions - iOS 5, Lion, and iCloud
June 06, 2011
WikiLocation adds support for 36 locales
May 28, 2011
One year on: further thoughts on the Gowalla API
May 12, 2011
Font Finder: Now available for Firefox 4 and Safari 5
May 10, 2011
Portal 2 on the new iMac (10.6.6)
May 04, 2011
Review: Worldictionary for iOS
May 01, 2011
iTunes TV Artwork Script
April 13, 2011
Gamification, Social Validation, Gowalla, and moving on from Wallabee - What I learned at SXSW
March 27, 2011
Mobile OS Updates: Android vs iOS
February 11, 2011
Review: WorldCard Mobile for Android and iPhone
January 23, 2011
Enabling any HTML5 Video to work over AirPlay
January 13, 2011
iOS 4.3
January 12, 2011
Thoughts on the Verizon iPhone 4
January 11, 2011
The AirPlay Alarm Clock: Turning an Apple TV or Airport Express into an Alarm Clock with AppleScript
January 10, 2011
The CoverSutra Saga
January 09, 2011
My take on Microsoft's Keynote at CES 2011
January 07, 2011
2010
Contact Forms
November 04, 2010
2009
Why I built an Item Finder for Gowalla
December 05, 2009
The Apple Magic Mouse: Necessary upgrade or expensive luxury?
October 31, 2009
How to pitch an app idea to an iPhone developer
October 16, 2009
Social Beacon: Developing An iPhone App for "The Gadget Show"
October 14, 2009
Gowalla Tools Web App: Find your missing Gowalla items!
October 07, 2009
iPhone 3GS: Review and Speed Test (vs. iPhone 3G)
June 19, 2009
The tale of the "O2 Fail" (starring the iPhone 3GS)
June 13, 2009
Mastering phpMyAdmin 3.1 for Effective MySQL Management
June 11, 2009
TwitterFollowers PHP Class - A Better Way To Track Followers, Quitters, and Returning Followers on Twitter
May 25, 2009
Getting Xbox Live Achievements Data: Part 2 - The AppleScript Solution
May 19, 2009
iPhone 3.0 "push" Notification Testing with AP News
May 18, 2009
Duplicate Messages Bug Fixed on TubeUpdates.com
May 17, 2009
Getting Xbox Live Achievements Data: Part 1 - The PHP Problems
May 12, 2009
Designing for the Social Web
May 08, 2009
Poor Usability on the Web - Part 1: Online Banking
April 28, 2009
London Underground Tube Updates API is live!
April 26, 2009
2008
Updates coming soon to London Underground RSS Feed
December 09, 2008
iPhone 2.1 Firmware Update Released - Fast? Stable? Fixed?
September 14, 2008
How to control a Mac Mini from your iPhone including waking, sleeping, and audio / video
September 08, 2008
Twitter stops sending SMS to UK / Europe / Australia
August 17, 2008
Kampyle - An easy way to get web user feedback
August 04, 2008
Stop! Bug found in "Stop! Hammertime!" Firefox Extension on Windows XP / Vista
July 21, 2008
iPhone 3G, Apps, MobileMe, and iPhone specific sites
July 21, 2008
Does anybody really use RSS Feeds?
July 21, 2008
Website upgrades finally completed
July 19, 2008
New website goes live!
June 21, 2008
RSS Feed of the London Underground Tube Status
March 16, 2008
Firefox extensions updated for Beta 3 compatibility
March 01, 2008
Google extended encoding made easy!
February 28, 2008
Firefox Extensions page will be right back!
February 26, 2008
phpMyOpenID Beta Testers Required!
February 25, 2008