Issue #89 - Dan O’Leary and Tunde Adegoroye
Happy Monday, everyone!
We made it to Issue #89! Thank you to everyone who read last week’s issue ❤️
The indie dev interviews are all being done by Chris Wu this month! I’m super excited to to read these and see the new perspective and network he is bringing into Indie Dev Monday 😊
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 Dev
📆 Today I’m featuring Dan O’Leary and Tunde Adegoroye.
👉 Please make sure to follow them or support them anyway you can! 😇 I’m excited to share their indie dev stories.
Airline pilot and creator of Run Roster, 737 CSFF, and Tyre Myles.
1) What is your name? Where do you live?
Hello, my name is Dan O’Leary and I live in a town called Rosemount, Minnesota. It’s about 25 miles (40km) south of Minneapolis, Minnesota.
2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?
I am 44 years old and have a Bachelor of Science degree in Aeronautics. I am married with two children ages 17 and 20. My wife is a school teacher in the St. Paul Public School system.
I graduated from the University of North Dakota in the year 2000 and have been working professionally as an airline pilot ever since. Currently I am flying a Boeing 737 for Alaska Airlines. Formerly I flew an Airbus A320 for Virgin America and before that I flew a De Havilland DHC-8 Q400 for a regional airline called Horizon Air.
When I’m not flying or coding you can find me out on a run. But that sounds a lot more ambitious than I really am. I run enough to stay in shape and have run a few half marathons and 5 and 10k’s. I love watching movies and enjoy good coffee. I make time for gaming on my PS5. Currently I am playing Horizon Forbidden West and Grand Turismo 7.
My tech interests aside from software development include the potential of Augmented Reality as well as the future of computer vision particularly what Tesla is doing with their Full Self Driving Beta software. I’m very excited to see the progression in both of those areas.
I am currently working on a new app which has both iOS and macOS components. I am trying to use Photogrammetry to incorporate AR into the buying and selling of used cars person to person. There are a lot of hurdles to overcome but stay tuned…
3) Have you ever considered yourself an indie developer?
Yes. After I published my app Run Roster I felt like I was truly an indie developer. Even though I consider my development work a hobby, it’s a serious hobby. Even though that app (or any of my apps) hardly see any downloads I still consider the work I do to be meaningful and I certainly enjoy it. So even though my app’s don’t “pay the bills”, I’m doing the same work as any other indie dev.
4) What got you started/interested in creating your own applications outside of your “normal” job?
For my entire life I have always been into airplanes and computers. I have always been a fan of Apple with my first computer being an Apple IIc. While I had never done any actual programming until Swift was introduced, I had always been interested in software development but never knew how or where to start. Flying took up a lot of my time and mental capacity as well. But when Apple introduced Swift I knew that was my signal to get started on something I had always been curious about. So I began learning.
5) You’re one of the people I’ve always related to the most because you have a day job completely different from iOS development and have been doing it as a passion project. What made you want to start writing apps?
Part of the motivation aside from what I mentioned above about creating apps, is that I have always felt the need to create something and keep my mind busy. I truly love my flying job and even after 22 years flying professionally I still feel joy getting people where they need to be. But flying doesn’t give me the fulfillment of “creating” something. I have done other things in the past that fill that void but building and maintaining functional software truly satisfies my personal need to create and build.
6) Run Roster - I love that you made Run Roster for your wife and it’s been interesting watching it evolve. Can you tell us about how the app came about and how it has grown in functionality?
My wife is a very serious runner. She has done 26 marathons to date and is still going strong. She uses various training plans depending on what she is working on at the time, but as I watched her keep track of her training plans on paper I thought there had to be an app that would help her keep track of her training progress. And of course there is! There are 100’s if not 1000’s of running apps on the App Store.
The unique thing about Run Roster is it also incorporates a few other features like saving your finishing time and a finishing photo (using CoreData and CloudKit) while giving you a training plan for whatever event you have coming up. I use the app myself nearly every day and am really happy with it. The app will truly never be finished as I have more plans for it and I am always trying to think of ways to help it stand out a bit more in the sea of running apps on the store. Visibility is a huge challenge for that app.
7) Run Roster - I’ve been particularly interested in watching you add Apple Watch support. Any tips for developers that haven’t made this jump yet but are interested?
I love developing for Apple Watch and encourage anyone remotely interested to do it. The small screen size and limited interaction times really make you focus on functionality. Run Roster exists on watchOS primarily for the workout functionality it provides. But I also use watch complications to show training progress to hopefully provide motivation to get out and run.
The biggest tip I’d say is to truly consider user interaction times of only 3 to 4 seconds. Your UI shouldn’t be any more complicated than that. Unless of course you’re building a watchOS game. I’m looking at you @emin_ui, outstanding job with un:safe!
8) 737 CSFF - I’m not going to pretend that I understand what this app is about but it looks fascinating. Can you tell us why you wrote it? Have you received feedback from the airline or other pilots?
That app is extremely specific to Alaska Airlines pilots flying the 737. That airplane has a particular sensitivity to frost on the top of the wings and there are certain allowances for when a small amount of frost is or is not allowed. When I was in training for the 737 I had a hard time remembering all the parameters and looking it up was cumbersome. I had the idea for the app as an easy way to check the parameters. I wanted the app to be absolutely fool proof so a pilot wouldn’t make a mistake and get the wrong answer for a given scenario. So the UI is very basic but the app serves its purpose.
The app isn’t sponsored or supported by the airline, which is why I market it as a “study guide” and why it is free. I have gotten great feedback from other pilots about its usefulness and I was in brief discussion with someone at the airline on the tech side about selling the app to the company. But that seems to have fizzled out, at least for the time being. Either way it’s a useful app to me, which is the ultimate goal after all.
Since the app is so specific I have it only listed on the US and Canadian app store. So other readers may not see it in their app store depending on region.
9) Tyre Myles - This is one of those “I didn’t realize I needed it until I saw it” apps. What was your inspiration for writing it?
So you’re the one who downloaded it! ;-)
Living in Minnesota I have a set of winter tires and a set of summer tires for my car. I wanted a way to keep track of exactly how many miles were on each set of tires so I was aware of the wear over the years. Of course I could have done this with a piece of paper or a simple spreadsheet, but what fun is that? I created Tyre Myles pretty quickly and I have been happy with the functionality so far. To my surprise a search for a mileage tracker app for car tires yielded zero results! The app has seen a few downloads but it is starting to gain some traction recently… I only have it on the US store right now but I’m shortly pushing an update for the rest of the world. I’m just hoping the metric world will understand if I still use “Myles” in the app name.
10) I’ve seen you post pictures of your laptop and Xcode in airports, hotels, coffee shops, etc. When you’re traveling for work do you code in small spurts where you can or do you prefer longer coding sessions no matter where you are?
I get a lot of positive feedback from those photos but I sort of stopped posting them because I didn’t want it to look like I was bragging about my travels. If it wasn’t for work I wouldn’t be doing so much moving around the country. I should post those again more, it’s fun for me too.
I try to code every day. Some days with work and life at home it’s not possible, but ultimately I’m most productive if I can get at least 3 to 4 hours straight of uninterrupted coding done. That is not always possible of course so I take what I can get and if that means I’m working in the back of an airplane or the corner of a coffee shop then I’m happy to be able to make progress on my apps.
11) What’s been the hardest part of being an indie dev? What’s the most fun part of being an indie dev?
The hardest part for me is marketing my apps. With Run Roster I did a lot of building in public and sharing my struggles and triumphs. This was fun for me and I got a TON of help from the Twitter community when I ran into problems I couldn’t find a solution for.
With my current project I haven’t been doing very much public sharing of my work because in a way building in public feels like I’m trying to market my app to my followers. Which is not my intention. I love the Twitter community and the people are nothing but friendly and helpful and encouraging. I don’t want to diminish that by turning followers into a revenue stream. The App Store is a vast sea of nearly every app imaginable and getting noticed on my little buoy has been a struggle.
The most fun part is I get to do whatever I want. When SwiftUI was introduced I dove straight in and haven’t looked back since. For my new app I need a database and I got to explore various options. I was looking into using MongoDB and was enjoying learning a new environment, but ultimately I switched to CloudKit since I use it on a small scale for both Run Roster and Tyre Myles. These decisions I got to make on my own with no meetings, conference calls or emails required.
12) Is there anything else you’d like to tell the indie dev community about you?
I had the opportunity in 2020 to work with a small team (remotely) on a workout app that had a video component. It was an incredible opportunity where I got to be one of three iOS developers where we worked in 2 week sprints and had a design team to coordinate with as well. I was very fortunate to have that opportunity and I strongly encourage any indie developer to seek out work like that with even the smallest team. The lessons I learned were invaluable and the work was very rewarding. That app never made it to market and would have been Sherlocked by Fitness+, but it was an invaluable experience.
13) Do you have any other indie devs that readers should follow / lookout for?
Keep an eye on @selftaughtstph on Twitter and YouTube. She just started a YouTube channel and as of this writing her first video is extremely well done.
Also watch @tundsdev on Twitter and YouTube.
He has some excellent content on SwiftUI.
Finally @tryswiftworld puts on great talks on a wide variety of development topics. I have done a few sessions over the past year or more and while yes you do have to pay for them they are well well worth it!
1) What is your name? Where do you live?
My name is “Tunde Adegoroye”, but a lot of people call me by my nickname “tunds”, which is where my YouTube channel name tundsdev came from. I was born in England, Manchester. Which the best way to describe is it to think of it as a miniature version of London, which is why I love my hometown so much.
2) Introduce yourself. Education? Background? Main job? Interests outside of tech? Interests inside of tech?
I studied all of my Education in England, Manchester. But growing up I didn’t even want to be a developer or even thought of doing it as a career. I kind of feel into this world in high school when in my careers meeting my dream of being a football manager and ice cream man was shot down by my mentor, who then suggested a career in IT.
I decided to study computer science in college but completely flopped. I couldn’t get my head around stuff like binary code, so I decided to drop the course in college and instead study sociology. It wasn’t until my final year of college, I started getting more and more interested in media so I decided to apply for a course in university called “Multimedia And Internet Technology”.
Whilst I was in university I worked in a phone shop and I grew curious about the way people put apps onto iPhone’s. At the time iOS development wasn’t something that my course taught me. So I remember buying the course Design+Code by Meng To.
This was my first experience with iOS development, and at the time it was right when Swift got announced and it was brand new. I remember not knowing whether to choose Swift or Obj-C. But I decided to go with Swift purely because it was easier for me to understand and I knew that there would be jobs in the future once I was ready to apply for them which required knowledge in Swift.
At first, I flopped again lol. I really struggled at the start and this was because I wasn’t thinking logically and breaking down the problem into smaller chunks/tasks. Once I started to do that things started to click and the cogs started moving.
I then decided to build my first ever app “Clime” which was a weather app, and this helped me land a role as an IOS Developer at an agency in Manchester. And ever since then I’ve worked my way up the company and now I’m a lead app developer on the team.
In terms of my downtime, I really enjoy trying new things that I haven’t done before. More recently I’ve competed in two hot wings challenges and beat both of them, also I’ve travelled to a new country every month also. When I’m just trying to chill chill, you’ll catch me watching anime to unwind. At the moment I’m currently watching jujutsu kaisen.
3) Have you ever considered yourself an indie developer?
I would say so yes, I have a mindset where I create tools for myself that help me and also as well I’m always thinking about how I can become more and more independent, whether that be finding ways to create new content to help other people get started in iOS development.
4) How do you balance your time between friends/family, work, hobbies, and indie dev?
I plan my whole life, in my calendar. I assign slots to things that I want to do. So every thing I do has a slot in my life to make sure it gets done. I feel like right now this is working great for me and allows me to get a lot of what I want to do done.
5) Clime - When I was looking at your indie apps and asked you about them you mentioned that Clime helped get you your first iOS job. Can you elaborate on that?
Yep so like I mentioned previously, I built that app after learning how to build apps via the Design+Code course. After building the sample app on the course. I decided to challenge myself and build a Swift weather app for my final year project in university. The main concepts that I wanted to cover in this final year project were:
- Setting up an Xcode project
- Understanding MVVM
- Working with an API and decoding JSON
- Working with third party libraries
- Working with table views
- Uploading an app to the App Store
For me personally a lot of the things above are things that I look for in a junior when we’re hiring, and back then I did research to see what is actually relevant to companies. It’s funny because the role I applied for was for a senior IOS Developer role. I did this by accident lol, since when I was looking for a job I just applied for anything and everything, the company decided to open up a role for me.
6) As someone who loves consuming SwiftUI content I’ve enjoyed watching your YouTube videos. What was your motivation to start producing content on YouTube?
Lol so not to make this sound like a sob story, I’m over it now. But my apartment was burgled, they took most of my PS5 which at the time was so rare and hard to get. So I was bored one day and just thought to myself, why don’t I start a YouTube channel since I was bored and wanted to fill some time. So I decided to make videos to share my knowledge and insights and it just kicked off from there. It’s something that helped me keep my mind of what happened to me and also as well it’s a great way for me to solidify my understanding of topics too.
7) Can you tell us more about SwiftUI Sessions and who is it targeted towards?
Sure so SwiftUI Sessions, is a new free course that I’ve recently started on YouTube. Right now it’s the beginners topics but I have loads of videos planned and recorded for intermediate and also advanced topics in SwiftUI, since I’m now uploading a new video every day.
In terms of who it’s for it’s for everyone. If you’re new to SwiftUI development and want to get started, if you’re a complete beginner who wants to learn how to build apps using SwiftUI, if you’re someone who needs a refresher on the topic then this is for you.
It covers everything from the controls available in SwiftUI, app architecture, how SwiftUI works in terms of state and data flow, modifiers, creating modifiers, new iOS 15 features and passing data between screens.
You can view the playlist below.
SwiftUI Sessions https://youtube.com/playlist?list=PLvUWi5tdh92w0BP5gwJxgSJ12wKmYK9Y8
8) As someone who has “made it” as lead app developer what advice would you give to people that are just starting their journey? Anything you wish you would have known when you started?
I think the main thing that I can say is being ok with not knowing everything. I think there is an expectation from people who get started in tech that they need to know everything and also need to know how to sort out any problem given to them. Being realistic unless you have yearssss of experience this just isn’t realistic.
One of the main things you should do if you’re just starting out in iOS development is work on the fundamentals and understand them really well. Not only study the Swift language. But also start studying how to read documentation, how to break down a problem into plain English so you have a set of instructions you can follow and then translate this into code.
But the main thing is it’s ok to fail, I’ve flopped twice before my job and even in my time as a dev I’ve made some big f*ck ups, one involving me messing up prod. But that’s ok, for me it’s a learning curve and any company that you join that doesn’t help support your learning isn’t the right company for you.
9) I can’t wait to see what videos you’ll produce about the new SwiftUI features that will be introduced at WWDC. Anything in particular you’re hoping to see get added?
So some of the key things for me
- Introducing compositional layouts in SwiftUI
- Improved Async Image with caching
- Better CloudKit, I really want to use it but seeing all the complaints make me reconsider
- New database/storage that slowly starts to phase out CoreData something similar to realm
- Router navigation, an actual way to manage navigating between screens. Something similar to the coordinator pattern would be nice, where you have a routing manager than returns screens.
10) I have to ask you about the video that you made with Dave Jacobsen. It’s proof that sequels can be better than the originals. How did you two end up pairing up on this project?
Haha I just got a message from Dave out of the blue around if I wanted to collaborate with him, I had flashbacks of me acting as young scrooge in my primary school play. So I thought why not for fun and it was great collabing and bouncing ideas of one another. Also Dave is a great guy. It’s a shame we’re in two different countries or else I would of bought him a pint by now haha.
11) Is there anything else you’d like to tell the indie dev community about you?
It’s crazy but I’ve just been nominated for the Rising Star award on Hacking With Swift. I mean the fact that I even got nominated for this award is crazy, since I’m not really an analytics guy so I had no awareness if people actually knew who I was in the community. But if you want to vote for me and any of the other creators, you can do so here by using a google form - https://forms.gle/J5LcEgjUEySuo7WF8
If you didn’t know already, I run a YouTube channel tundsdev https://www.youtube.com/c/tundsdev where you can learn all things iOS related. Also you can follow me on twitter @tundsdev. I have a lot of free courses I’m planning out and creating atm with best practises, also I’m currently working on a secret side project that I don’t want too give too much away about now. But it’s a fully built SwiftUI app I can tell you that much.
12) Do you have any other indie devs that readers should follow / lookout for?
One of the main guys is Jordi Bruin, you can follow him on twitter @JordiBruin. To see all of the great work he does. The guy is a machine in terms of pushing out new app ideas so you should defo check him out.
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 😜