Happy Monday, everyone!
We made it to Issue #103! Thank you to everyone who read last week’s issue ❤️
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 Ben Callis.
This is such an amazing app! I’m not a runner but I’ve run a few 5Ks in the distant past and training for them has never been fun. I’ve been intimidated by all the running apps and programs I’ve tried. But Watch to 5K is the app I wish I had used in the past! Its just so beautiful and easy to use 😊 I love the running plan, the achievements, and that I don’t need to bring my phone with me! It’s really the perfect running app for me 💯 I would highly recommend downloading Watch to 5K today if you are getting into running!
👉 Please make sure to follow them or support them anyway you can! 😇 I’m excited to share their indie dev stories.
1) What is your name? Where do you live?
Hey 👋 My name is Ben Callis. I’m originally from Morecambe, a small seaside town in northern England. I now live up in Glasgow, Scotland.
2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?
I first became interested in computers as a kid when watching my dad play the original Doom on Windows 3.1 Then, in high school, a friend and I set up a cashback site in the UK which incentivised users to shop online and complete offers. Back then, I didn’t touch any of the code (I left all the scary PHP to my friend). Instead, I primarily focused on the UI/UX side of things, as well as marketing and customer engagement. We ran this for a good few years, and it gave me the appetite to get into coding and making user-facing software!
When I left school, I decided to move to Glasgow to study Mobile Software Engineering at The University of Glasgow. The first two years of the course followed the standard Software Engineering path, which introduced me to Python, Java and C. Then, in my third year, I got introduced to lovely square brackets of Objective-C and built my first app for iOS 4.
Fast forward several years, I now have a few apps on the App Store and work professionally as an iOS Developer for a mobile software consultancy based in Scotland.
Outside of work, I love travelling and exploring new places. Unfortunately, international travel has been a bit restricted over the last few years, so I have gotten into doing some hill walking and exploring some of the islands around Scotland. I’m also a big fan of cask ale and like nothing more than going on a long scenic walk and visiting a Real Ale pub with friends!
3) Have you ever considered yourself an indie developer?
Although I’ve had apps on the App Stores since 2012, I’ve never really considered myself an Indie Developer. Instead, I saw my app development as a mixture of a hobby and a way to up-skill my development. However, this has changed over the last couple of years due to the successful launch of Watch to 5K. I’d now consider myself an indie developer outside of my primary professional iOS job!
4) What got you started/interested in creating your own applications outside of your “normal” job?
I actually released my first app DealPad before getting my first “proper” software development job. DealPad was initially released for Android and started life as some self-defined coursework for one of my uni modules!
After seeing sense (and getting annoyed with Java and Eclipse), I built DealPad for iOS with a totally new UI that followed the new iOS 7 flat style. DealPad has seen many updates over the years and provided a great app to learn new iOS frameworks. I brought it to the iPad, so I could get a better understanding of Auto Layout and sizes classes. I even dipped my toe into WatchOS 1 by making an Apple Watch extension for Dealpad.
To learn Swift, I decided to build a new app called FanAds. This app allows users to view their Facebook Audience Network Revenue Reports without using the cumbersome non-mobile-friendly website.
I still use both of these apps daily, and although they were primarily built to solve a need I had (and to improve my development skills), they have also been installed and used by thousands of users worldwide, which is pretty amazing! Seeing positive reviews and happy users makes indie app development worthwhile and definitely helps keep me motivated.
5) How do you balance your time between friends/family, work, hobbies, and indie dev?
This is definitely tricky!
When working on new features for my indie apps, I often allocate whole evenings or weekends to do focused development, which often results in programming into the early hours of the morning (without noticing). After working on a major feature, I usually take a couple of weeks/months away from indie programming and allocate a few hours per week to marketing my apps and user support.
This approach is working well and means most of my weekends are free to see friends/family, visit new places and sample new restaurants and pubs!
6) Watch to 5K - Congrats on your recent big version 3 release!! I saw the announcement multiple times in my Twitter timeline. It kept catching my eye and I knew that I had to feature you 😀 What is the origin story for Watch to 5K? How has it evolved into what is now in version 3?
Thank you! I’m really happy to get V3 into the hands of users so they can look at their run history and track their progress to their first 5K.
During the coronavirus pandemic, I decided to take up running to improve my mental and physical health. So I began looking for a simple running app for beginners that worked independently on the Apple Watch without the need to carry my iPhone with me. I soon discovered that most apps couldn’t work without an active connection to your phone and often required expensive ongoing subscriptions. So I decided to build a 0 to 5K app from the ground up for the Apple Watch. I opted to build this primarily in SwiftUI so I could get some real-world experience with it. So, after a few months of hard graft, I completed my first 5K and launched my first Independent Watch App!
The first version was a standalone Apple Watch app that included a nine-week running plan, displayed all relevant workout health data and worked alongside other music apps on the Watch while prompting you when to walk or run. Completed runs were stored in Apple Health Kit so you could view all your previous workouts in the Apple Fitness App.
Since the initial release, many new features have been added to the app, including workout route recording, warmup/cooldown walks, and, most recently, a brand new iPhone companion app! The new companion app allows users to track their progress, view completed runs and keep motivated by earning achievements as they progress through the 5K plan.
7) Watch to 5K - I’m so amazed at everything that this watch app can do! I just started making my first watch app a few weeks ago and I can’t imagine making an app as good as Watch to 5K 😅 What have your experiences with watchOS been like? What are some of the biggest successes and struggles with making the watch app the main app?
Initially, I wanted to build the app entirely in SwiftUI, but I soon found out that the first version of SwiftUI was missing many required features on WatchOS (such as Now Playing controls and the ability to scroll in ListViews), so begrudgingly, I had to build some of the apps UI in WatchKit. Thankfully SwiftUI is much more fully-featured now, so I have gradually been able to migrate the older WatchKit parts to SwiftUI.
The biggest struggle was getting Xcode to run and debug independent apps on the Apple Watch. It used to be highly frustrating! Random Xcode errors would greet you every time you hit build and run. To make these errors disappear, you would restart your Mac, your iPhone, your Watch or sometimes all three in the hope that Xcode would successfully install and debug your code on the Watch. Thankfully, over the last few Xcode releases, these problems seem to have gone away and deploying and debugging to the Watch now works flawlessly - most of the time.
The biggest success has definitely been the overwhelmingly positive response to Watch to 5K! Knowing that thousands of users have successfully built up to running their first 5K with just my app and their Apple Watch is an amazing feeling.
8) Watch to 5K - I love the simplicity of Watch to 5K! It’s so well done and really makes it easy to train. I haven’t made it up to a 5K yet but what is the suggestion for users after the reach the 5K? Have you thought about other kinds of running plans into the app?
As developers, it’s so tempting to add a lot of customisation to apps and overcomplicate things which can lead to a bloated, cumbersome experience for most users. I really focused on keeping the Watch app light and easy to use, so I’m glad you like it!
I hope you get to your first 5K soon! Keep at it 🏃🏃♂️
I always suggest that new runners who have just completed the plan enter a local 5K race. You get a fantastic buzz when running with others and completing your first 5K race is an outstanding achievement.
UK readers should check out ParkRuns, which are free 5K races that take place around local parks. I’m sure other countries have similar things 😀
Watch to 5K currently builds you up to running for 30 minutes without stopping (which will be around 5K for many users). For many people, two or three 30-minute runs per week is about as far as they want to go; they get all the health benefits without taking up too much of their time. For users who wish to go further, I suggest increasing their running time by up to 10% per week. This gradual increase is usually manageable and helps to avoid injury. A fair amount of users have asked for additional runs to be added to the Watch to 5K to guide them to 10K, so I may look to add this in the future.
9) Watch to 5K - Your App Store screenshots are so 💯 It’s so easy to make screenshot just be a visual list of features but yours seem to be designed to tell a story. I actually read them like I was reading a book 😛 I don’t really have a question but take this 🏆 for really pulling me in with your screenshots!
Thank you! I spent a lot of time trying to get these right. I found it really tough to show that the app works independently on the Watch and also has an iPhone companion app. I plan to continuously tweak the screenshots and use the App Stores A/B testing functionality in the hope that I can continue to continue increasing conversion rates 📈.
10) Watch to 5K - I don’t know if this is a common thing for people to think about but… how do you go about testing your app? 😇 Do you test it by taking runs? Do you have some special debug mode when taking your watch on runs to analyze on your computer? Or do you simulate the runs with automated tests? I’m really interested for some reason 🤷♂️
Yeah, testing an Apple Watch fitness app is undoubtedly a challenge 😂 Thankfully I was doing the 5K plan when developing the MVP so I could test the app with real runs.
In terms of stimulating runs, it is possible to simulate HealthKit workouts in the simulator so I can do a fair amount of testing (and debugging) whilst sitting at my desk without having to over-exert myself!
For some features, such as the route workout map recording, I do have to go outside to gather the required test data. This usually involves going for a walk/run and then returning to my computer to analyse the data and debug logs! The Scottish weather doesn’t always make this the ideal development cycle, but at least it keeps me fit☔️🏃♂️
A couple of years back, I fractured my ankle, which added some extra complexities to testing the app 🤣 🚑
Over the last few years, I have built up a fair amount of HealthKit data from the app, and I now have a couple of iPhones and Watches with different data sets. These devices have been extremely helpful when developing the companion app, allowing me to test and debug whilst keeping warm and dry 🏡 🖥.
11) Watch to 5K - What’s next?! Do you have any future features that you can share with us?
Good question! I’m taking a short break from the coding side of things and focussing on marketing the app and improving the in-app help/guides.
I do have a backlog of user feature requests that I plan to revisit and prioritise, so I think there will be a few smaller user experience enhancements releases before the next major update… 🏃♀️
12) What’s been the hardest part of being an indie dev? What the most fun part of being an indie dev?
I’d say the most challenging part is maintaining a good work-life balance. It’s so easy to get sucked into doing the day job and then working all evening on your indie apps.
Watch to 5K is my first upfront paid app, and it’s doing pretty well. What I hadn’t anticpated was the volume of support and feature requests I would receive from users. I currently answer all queries, but it certainly takes a lot of time. To try and reduce the hours I put into support whilst still helping users, I’ve made help and guides a significant focus of the Watch to 5K companion app (it’s directly accessible from the apps tab bar). This section contains video guides and frequently asked questions, allowing users to find answers to common queries instantly.
The most fun part is being in total control of your products and where you take them next. It’s also super rewarding to see all the positive feedback from your app users. And I guess it goes without saying, generating some side income from products you have created is hugely satisfying.
13) Is there anything else you’d like to tell the indie dev community about you?
I don’t think so, but I just want to say, don’t burn yourself out by spreading yourself too thinly. Remember to make time to see friends and family and give yourself some thinking time away from the computer. I have found running to be a great way to clear my head whilst exploring new places and burning some calories. If you are new to running, don’t worry… there is an app for that 😄
14) Do you have any other indie devs that readers should follow / lookout for?
I have to say that I’ve not been that active on Twitter. I’ve recently got more involved with it, and I can be found @bencallis. My favourite three iOS resources are iOSDevWeekly, SwiftBySundell and UnderTheRadar (podcast).
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 😜