Issue #107 - Shaun Donnelly
Happy Monday, everyone!
We made it to Issue #107! Thank you to everyone who read last week’s issue ❤️
Year Two Anniversary Celebration Reminder
Just a small reminder that Indie Dev Monday celebrated its Year Two Anniversary last week 🥳 To celebrate this... I've released two more shirt designs on Cotton Bureau!
- Year Two App Icons - Chaos Sort designed by me
- Year Two App Icons - Rainbow Sort designed by Heidi Helen Pilypas
All profits ($6 from each product) will get donated to Girls Who Code.
And huge huge huge thank you everyone who has already purchased a shirt to support Girls Who Code! 🥰
Deep Dish Swift is a brand new conference being held in Chicago April 30th to May 2nd in 2023. The conference aims to bring togethe Swift and iOS developers of all experience levels and backgrounds in an inclusive environment to share knowledge and experience from a diverse set of speakers. The first day is focused on indie development and and the next two are focused on Swift and iOS!
Today’s Spotlighted Indie Devs
📆 Today I’m featuring Shaun Donnelly.
👉 Please make sure to follow them or support them anyway you can! 😇 I’m excited to share their indie dev stories.
Engineering manager at Duffel and creator of Personal Best and Taylor’s Version
1) What is your name? Where do you live?
Hey, I’m Shaun 👋 I’m from Manchester in the UK, but I’ve lived in London for the past 11 years.
2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?
I’ve had a pretty straightforward tech journey. I scraped through a Computer Science degree at uni, then became a front-end web developer at a couple of small companies. After that I worked at Skyscanner for a few years, mostly focusing on the design system, and a year ago I moved to a travel startup named Duffel where I work as an engineering manager on UX stuff.
Outside of tech, I love to cook, I’m a big football/soccer fan (I support Man City), and I’ve recently got into woodworking too. I wanted some garden furniture during lockdown and all the shops were out of stock, so I just ended up making it myself. It’s quite relaxing in a way, as it feels like the opposite of building software; you don’t need to worry about edge cases or supporting old browsers/OSs, but if you make a mistake you can’t just make a pull request to fix it, you just have to start again from scratch.
3) Have you ever considered yourself an indie developer?
I’d always loved the idea of being an indie developer, so pretty much the moment I had an app on the App Store I updated my Twitter, Linkedin etc to say that I was one 🙈
4) What got you started/interested in creating your own applications outside of your “normal” job?
I’d been wanting to make my own apps for years, but I really struggled to get my head around UIKit, I just couldn’t make it fit my mental model. When SwiftUI came out I took a course on raywenderlich.com and at that point everything just clicked for me. I’ve spent most of my career doing web development in React, and SwiftUI followed a similar philosophy which really helped me to pick it up.
5) How do you balance your time between friends/family, work, hobbies, and indie dev?
Not well! One thing I struggle with a lot is feeling guilty when I’m at home and not working on my apps. Without getting on my soapbox too much, I think ‘hustle culture’ has conditioned us to always be working, and that all our hobbies should be monetised in some way. It’s a constant struggle to tell myself that it’s ok to spend a few nights playing FIFA or seeing friends.
6) Personal Best - I’m so in love with Personal Best! It’s the perfect way to view my workouts and keep motivated to keep working out 💪 When did you get started making Personal Best and what inspired you?
Thanks so much! I got started on Personal Best in April 2020. It was during the UK’s first lockdown and I was really bored in the evenings, so I decided to use my newfound SwiftUI skillz to make an app. I went with a workout tracker for two reasons. Firstly, I didn’t want to run any servers and building on top of HealthKit meant I could use that as the app’s back end. Secondly, during the first lockdown I was doing a lot of exercise because it was one of the only reasons we were allowed to leave the house, and I wanted a way of tracking my progress.
There are so many great indie developers out there who I’m inspired by every day. I listen to ATP every week so hearing Marco, Casey and John talk about their apps was a big inspiration to get started. David Smith’s apps are also a huge inspiration for me, I don’t know how he finds the time to make so many! The same applies to Shihab Mehboob too, he seems to release a new app every month! Curtis Herbert from your previous issue too – his Slopes Diaries series is so great. Taiwo Omisore (another Londoner) makes some really unique apps too, and he graciously gave me lots of advice when I first got started. Becky Hansmeyer’s YarnBuddy is an amazing example of an indie app that covers a niche interest and does it really, really well. You too of course – as I write this you released Playpen as a public beta yesterday, I have no idea how you built that alongside your regular job, writing this newsletter every week, and having a young family!
7) Personal Best - There is so much to like about Personal Best but I think I really really like the achievements section. I don’t know if I’ve seen this in many apps but it feels like such a great way to motivate app use while also teaching users about features in your app they might not know about. This is just so smart! Did you have achievements in Personal Best from the start? Do you know if they’ve helped drive users to use features they might not have otherwise? How do you decide what should be an achievement?
I think I’ve had achievements in there for about a year now. I had so much fun building that feature, especially coming up with silly names for all of them. My favourites are:
- Judi Hench – complete a strength training workout
- Scrum master – complete a rugby workout
- Getting your exorcise in – work out on October 31st
I’m quite light on analytics so I haven’t actually been tracking if it’s caused more feature adoption (maybe I should get on that..) but I’ve had some good feedback from users about it. As for deciding on achievements, I just sat down one day and came up with a huge list. I haven’t actually added any new ones since I shipped the feature though so maybe I should try and think of some new ones.
8) Personal Best - The custom leaderboard feature is so cool! It’s so nice being able to control what type of workouts are most important to me. The defaults of “Furthest distance”, “Longest duration”, and “Most energy burned” are also great! I do pretty boring workouts so these almost cover my personal use cases but what are some of the leaderboards that you create or your users have created?
Thanks! I think I can definitely do more to expose the custom leaderboards and make them more useful, like suggesting ones to people that they might like. A lot of people make leaderboards for tracking specific distances, so for example they’ll make a leaderboard of runs between 4km and 6km so that they can track their 5km times without runs of other distances messing up the leaderboard. One I use a lot is ‘fastest swims over 2km’, so when I do a long swim I can track my progress. Building the engine for custom leaderboards took me a long time, so I’m really happy that people have found creative uses for it and enjoy making them.
9) Personal Best - I instantly changed to the “Make Me Suffer” app icon! It looks like it was made in about 5 seconds and it’s so perfect. This isn’t a question but have this trophy for best app icon 🏆 Also… the “Surprise Me” button that randomly chooses an icon is amazing! Just take another 🏆 for that too!
I’m going to print those trophies off and keep them on my desk at home 😜 I love apps that have a bit of subtle whimsy (I think Tweetbot is the king of this) and I wanted to put that into Personal Best, with things like the ‘surprise me’ button and the confetti cannon. With the ‘Make Me Suffer’ icon I actually went out my way to make it as ugly as possible to annoy my designer friends, I even subtly changed the kerning between some of the letters so that it would look slightly broken 😂
10) Personal Best - What is one of the coolest things you’ve learned working on Personal Best? What’s been one of the hardest problems you’ve come across?
I think the coolest thing was playing with Core Graphics and particle effects for the confetti cannon. As somebody who’s primarily worked as a web developer it’s something I’ve never done before, and I really love how iOS has great APIs you can drop down to for almost anything. If I were doing this in React on the web I’d need to import about twelve sketchy npm packages to build something similar 🙈
The hardest part is definitely marketing. I really suck at selling myself and getting the word out, and I know I need to lean in to get better at it. I spoke to some great people from Apple at WWDC this year who gave me some tips, and once I get my big iOS 16 update out I’m hoping to spend more time on the marketing side of things.
11) Taylor’s Version - I remember when you announced this app! I thought it was absolute madness but also pure genius. Updating Spotify playlists from the old Taylor Swift version to new one is just so cool. How did you come up with this idea and how hard was it to make? Do you think Taylor Swift used this app herself to convert her playlists? 😇
I’m a huge Taylor Swift fan – my Spotify Wrapped last year put me in her top 0.05% of listeners – and I wanted a way to quickly replace her songs across my playlists with the re-recorded versions. Instead of spending ten minutes doing that like a normal person, I spent five weeks building an app for it. I probably spent longer on it than was necessary, but I really liked the idea of making something really polished for such a niche, specific thing, so I spent a lot of time adding little details like the Taylor Swift quiz when your music is loading, and all the custom app icons based on each album of hers. Building it wasn’t too difficult, the main thing was making sure that it worked well with the Spotify API and could handle failure states well if the API failed to load. One cool thing is that it’s server-side driven, so when Taylor releases new re-recordings I can just edit a file from my phone and users can update the new songs instantly, no app update required.
If Taylor used (or even heard of) my app I think my brain would just stop working, I wouldn’t be able to process the fact that she’d seen my work!
12) Personal Best and Taylor’s Version - What’s next?! Do you have any future plans that you can share with us?
I have sooo much I want to add to Personal Best! The biggest feature I want to add is goals, so you’d be able to set a goal like “5 workouts each week” or “3,000 calories burned per month” and the app would keep track of it and motivate you with widgets and helpful push notifications. I don’t think any other apps are doing this so it would be fairly unique. I’m also working on lots of updates for iOS 16, so in September you’ll see a UI refresh, lock screen widgets, and a lot of small polishing of things.
Taylor’s Version is mostly done at this point, but I would like to add Apple Music support in the future as it’s the number one request I’ve had. Apple Music’s API works a little differently from Spotify’s though which makes things difficult. I have some workarounds in mind but my attention has been on Personal Best lately so I haven’t had time to build them.
13) What’s been the hardest part of being an indie dev? What is the most fun part of being an indie dev?
The hardest but also most fun part is that I’m responsible for everything. In one sense it’s liberating as I have complete freedom over what I make, but on the other hand it’s nice to have other people you can rely on. For example, in my day job I work with a design team, but when it came to making icons for my apps I had to figure out how to make them myself. You’ll notice that all my apps use a lot of geometric shapes and gradients in their icons, because I don’t know how to make anything more complex than that (that doesn’t look terrible).
14) Is there anything else you’d like to tell the indie dev community about you?
I really love chatting to other indie devs, feel free to drop me a DM if you wanna talk!
15) Do you have any other indie devs that readers should follow / lookout for?
I mentioned a lot in the ‘inspiration’ section already, so I’m just going to mention one person here: Majid Jabrayilov, because his website Swift with Majid has given me so much help over the years. Although if I mention Majid I should probably also mention Paul Hudson, the 🐐 of SwiftUI. Hacking With Swift is basically the official SwiftUI documentation at this point!
Newly Released and Updated Indie Apps
Here are some newly released and newly updated apps from this past week! If you would like to possibly see your app in this list, please submit your app to the look at me form 👀
Thank you to everybody who made it to this footer! You either spent the time to read or took the effort to scroll 😊
Make sure to visit https://indiedevmonday.com/subscribe to get an email of future issues!
And go to Twitter and give @IndieDevMonday a follow… or multiple follows if you manage more than one Twitter account 😜