PodSearch

Under the Radar

263: Pedometer++ 5.0

 

00:00:00 ◼   ► Welcome to Under the Radar, a show about independent iOS app development.

00:00:04 ◼   ► I'm Mark Orment.

00:00:05 ◼   ► And I'm David Smith.

00:00:06 ◼   ► Under the Radar is usually not longer than 30 minutes, so let's get started.

00:00:10 ◼   ► So Dave, literally, what, an hour ago?

00:00:12 ◼   ► When did you push the button to release pedometer++ 5.0?

00:00:16 ◼   ► So slightly funny story about that is I didn't actually push the button.

00:00:21 ◼   ► It pushed itself.

00:00:22 ◼   ► When I submitted the app a week ago, I had just like, I don't know why I did this.

00:00:28 ◼   ► I said, "Oh, just release yourself at six in the morning on Wednesday, March 1st," and

00:00:34 ◼   ► completely had forgotten that that's what I was doing.

00:00:36 ◼   ► And so this morning I was expecting to, at some point, I'd get my coffee, sit down at

00:00:41 ◼   ► my office, get my help desk up, get everything ready just the way I like it, and then I'd

00:00:46 ◼   ► hit release.

00:00:47 ◼   ► And instead, I'm blearily eyed, had just woken up, walking downstairs, getting an alert on

00:00:52 ◼   ► my phone that says, from App Store Connect, saying, "Your app is now ready for sale."

00:00:55 ◼   ► And it's like, arrooo!

00:00:57 ◼   ► It is.

00:00:59 ◼   ► So that was the exciting part of this morning.

00:01:02 ◼   ► But yeah, so it's been a couple of hours now.

00:01:04 ◼   ► But yeah, not very long that it's been out in the world.

00:01:07 ◼   ► Well, congratulations.

00:01:08 ◼   ► This is a huge update.

00:01:09 ◼   ► And I would honestly be surprised

00:01:12 ◼   ► if this was only one episode worth of content here.

00:01:14 ◼   ► Because here's what you've done.

00:01:15 ◼   ► You've taken an old app that had a huge user base that you made,

00:01:19 ◼   ► Panometer++.

00:01:20 ◼   ► And you've done a number of things relevant to our audience.

00:01:23 ◼   ► So first of all, you totally rewrote the app

00:01:25 ◼   ► in Swift and Swift UI, before it was UIKit and everything.

00:01:28 ◼   ► So that's its own massive thing.

00:01:30 ◼   ► You also dramatically added a huge feature set to it

00:01:35 ◼   ► that takes it in a totally different direction

00:01:37 ◼   ► from where it was before.

00:01:39 ◼   ► And then on top of that, you have also

00:01:42 ◼   ► added a subscription to an app that didn't have one before.

00:01:45 ◼   ► So these are all massive topics for our show.

00:01:48 ◼   ► So we're probably not going to get to all of it today,

00:01:52 ◼   ► but I would love to start with just-- OK,

00:01:55 ◼   ► Okay, so what prompted you to look at this old app that,

00:01:59 ◼   ► while it has tons of users, I assume it was kind of

00:02:05 ◼   ► cruising along without much input from you,

00:02:08 ◼   ► having to baby it over time.

00:02:10 ◼   ► So what prompted you to say,

00:02:11 ◼   ► "You know what, I'm gonna go rewrite that app."

00:02:13 ◼   ► - I think it didn't start,

00:02:15 ◼   ► it's probably the best place to say is,

00:02:17 ◼   ► I didn't start wanting to rewrite the app.

00:02:20 ◼   ► That I started this process, honestly,

00:02:24 ◼   ► the expectation of writing another app to that I was going to I've kind of been on this, this got

00:02:31 ◼   ► started from this desire to make an amazing, like hiking app for the Apple Watch and iPhone. That

00:02:37 ◼   ► was like something that I wanted for me that when I go hiking, I'm frustrated by all the other apps

00:02:42 ◼   ► that exist out in the world that I've tried. And I just none of them think you work the way that I

00:02:47 ◼   ► work. And so I wanted to make my own thing, my own thing that was, for me better and hopefully better

00:02:52 ◼   ► better for other people.

00:02:53 ◼   ► - That is, by the way, that is how all of the best apps

00:02:57 ◼   ► begin, like part of the luxury of being an indie app

00:03:02 ◼   ► developer is if something about the way some app works

00:03:06 ◼   ► irritates us, or if there's some category that we could

00:03:10 ◼   ► really use that doesn't really exist or isn't really

00:03:13 ◼   ► well served by what's out there, we can make that happen.

00:03:17 ◼   ► Not in every case, of course, but a lot of the time,

00:03:20 ◼   ► something that we can, if we care that badly, and if we're willing to stick that much time

00:03:24 ◼   ► into it, we can just say, "You know what? These apps that are out there to do this,

00:03:29 ◼   ► they are not working for me. Let me make my version of it." And that is, and sometimes,

00:03:34 ◼   ► you're the only person in the world who wants that, and it goes nowhere. But most of the

00:03:38 ◼   ► time, you're not. Most of the time, there's other people who also want to work the way

00:03:41 ◼   ► you do. And so this is a recipe for how almost all of the best apps are made.

00:03:48 ◼   ► Yeah, and I think there's definitely something about chasing, it's like, rather than having

00:03:54 ◼   ► us like, you can be a solution in search of a problem or a problem in search of a solution.

00:04:00 ◼   ► And I feel like, so like, if you're coming at it from like, you have this thing, this

00:04:05 ◼   ► problem that you want to find the solution for, like you, and you know what that is,

00:04:09 ◼   ► because you encounter it, and it's tangible, and you're not kind of this other way around

00:04:13 ◼   ► where you're just like hoping that this can find a market or you're like imagining a user

00:04:18 ◼   ► who theoretically could exist who might benefit from something like it. As soon as you start

00:04:23 ◼   ► to become esoteric and kind of whimsical in that way, like it just very quickly loses

00:04:28 ◼   ► sort of, I don't know, like ground truth and you start like our mate, you're making stuff

00:04:33 ◼   ► up that isn't nearly as productive as, you know, I go out on a walk. What do I want to

00:04:38 ◼   ► to see what is helpful to me. And like that is so instructive for like making something

00:04:45 ◼   ► that hopefully in practice is going to be intuitive and easy to use and all of those

00:04:50 ◼   ► things that sometimes you have to work for if you aren't like the number one user yourself.

00:04:55 ◼   ► If you're working into, you know, I ran into this a bit with WidgetSmith where there are

00:04:58 ◼   ► some kind of aesthetic features and uses of the app that are not things that I do. Like

00:05:04 ◼   ► I've never done the fully custom app icon homepage thing.

00:05:09 ◼   ► It's just never really been something that I wanted to pursue.

00:05:12 ◼   ► And so when I'm building features for that, it's tricky.

00:05:14 ◼   ► But in this case, I've been an avid hiker my entire life.

00:05:19 ◼   ► I love the wilderness.

00:05:20 ◼   ► This is something that I really am a fan of.

00:05:24 ◼   ► And so when I decided, hey, I want to make this app, it was easy to know where to start

00:05:30 ◼   ► and to start building.

00:05:31 ◼   ► But I went down that road and I started building this app as a separate thing.

00:05:37 ◼   ► And then sort of fairly quickly, it could have hit this point where it's like, "You

00:05:41 ◼   ► know, this shouldn't be a separate app.

00:05:42 ◼   ► I'm just asking for trouble if I go down that road."

00:05:45 ◼   ► And I've done this before where I've launched 60 different apps over the years and it's

00:05:50 ◼   ► like at a certain point, it's worse.

00:05:54 ◼   ► Because I have an app that does step counting, that's related to hiking, they're not like

00:05:58 ◼   ► direct overlap, but there's a very strong Venn diagram intersection there. It was like,

00:06:04 ◼   ► this should just be part of Pedometer++. This should just be a feature that is added into

00:06:09 ◼   ► that rather than a new thing that I have to try and build a new user base for and kind

00:06:15 ◼   ► of establish a brand around and all of those things that are going to be so difficult.

00:06:19 ◼   ► This makes so much more sense to put it in there. And that's the point where suddenly

00:06:23 ◼   ► it's like, "Oh, that's going to be tricky." Because do I want—all of this new stuff

00:06:29 ◼   ► was going to be in Swift and SwiftUI. That was just sort of a given for me. I think that

00:06:33 ◼   ► is clear. The writing is on the wall that that is—any new feature I build should be

00:06:38 ◼   ► written in Swift and SwiftUI because that's where all the effort inside Apple's platforms

00:06:43 ◼   ► and things and the skills I want to develop and the kind of quality of my code, that is

00:06:48 ◼   ► where I should be putting that effort. And so now I'm stuck in this place where I have

00:06:53 ◼   ► these new features in Swift and SwiftUI doing some pretty interesting things that I think

00:06:57 ◼   ► that are in some ways only possible in SwiftUI, like the things I'm doing with live activities

00:07:02 ◼   ► or on the Apple Watch. It's only possible if you use SwiftUI. And so that for sure has

00:07:08 ◼   ► to be the case, but I really didn't like the feeling of jumping back and forth between

00:07:13 ◼   ► Objective-C and UIKit and Swift and SwiftUI. You can make it work. I could do a lot of

00:07:21 ◼   ► wrapping things up and doing UI view representable and making it happen in that way, but very

00:07:27 ◼   ► quickly I was like, "No, this is the time." This app's been around for almost 10 years.

00:07:33 ◼   ► I launched it back in 2013, and so it's been around. It's got a lot of miles on it. There

00:07:40 ◼   ► are a lot of files in this that have been around for 10 years. And it's like, at some

00:07:46 ◼   ► point, that old Objective-C code is going to just weigh me down to a point that I'm

00:07:51 ◼   ► not going to be able to take advantage of something. And so this was like the moment

00:07:54 ◼   ► where I was like, you know, I'm just gonna, it's never a great idea sometimes, you know,

00:07:59 ◼   ► sort of conceptually to rewrite something. But eventually, I think, you know, a codebase

00:08:03 ◼   ► reaches that tipping point. And I was like, you know, this is that point. And so I'm just

00:08:07 ◼   ► going to buckle down and rebuild things.

00:08:10 ◼   ► And some of that was a struggle, some of that was a joy.

00:08:12 ◼   ► It's been a bit of a journey to get to where I am now, but it feels amazing that I've rewritten

00:08:18 ◼   ► essentially all of the user-facing code in Swift and SwiftUI.

00:08:22 ◼   ► And there's still some model logic that's Objective-C just because it didn't make any

00:08:27 ◼   ► sort of difference or sense to change that, and it's been very battle-tested.

00:08:31 ◼   ► And I could refer you back to a very old episode of Under the Radar where I talked about how

00:08:35 ◼   ► complicated counting steps is.

00:08:39 ◼   ► The last thing I wanted to do is crack open that code.

00:08:45 ◼   ► Everything from that level up is completely forbidden.

00:08:47 ◼   ► It just feels great now that I have an idea for a feature, I have something I want to

00:08:50 ◼   ► do, I can implement it in SwiftUI.

00:08:53 ◼   ► So often it takes no time at all.

00:08:56 ◼   ► It's just kind of like I feel like I'm running down a hill.

00:08:59 ◼   ► You imagine the little kid who's running down a hill with his arms on the side, big smile

00:09:05 ◼   ► on his face, like that's what it feels like now, rather than I feel like, you know, the

00:09:09 ◼   ► Objective-C days where I have previously had to go and do a feature or make a change, it

00:09:13 ◼   ► felt like I was like, you know, sort of loading on a weight vest and like crawling up a hill

00:09:17 ◼   ► on my hands and knees because it's just so different and so sort of, you know, contrary

00:09:23 ◼   ► to the way I think and the way that I develop now.

00:09:25 ◼   ► Oh my god, you have no idea how much this is speaking to me, but the problem is I'm

00:09:29 ◼   ► still in the, you know, the burden phase and I'm not being the look you're running

00:09:33 ◼   ► the hill yet. The hill seems really far away from me still.

00:09:37 ◼   ► But the only way you'll get there is if you start driving, right?

00:09:40 ◼   ► I know, I know. Alright, we are brought to you with this episode by ISSU. Whether you

00:09:46 ◼   ► work for yourself or you're part of a team, it's time to get creative. Make your online

00:09:50 ◼   ► presence and your business stand out from the rest with ISSU. ISSU is the all-in-one

00:09:54 ◼   ► platform to create and distribute beautiful digital content, from marketing materials

00:09:59 ◼   ► and magazines, to catalogs, portfolios, and so much more.

00:10:03 ◼   ► There is no need for endless scrolling through PDFs.

00:10:05 ◼   ► Issue features your digital content

00:10:08 ◼   ► in an easy-to-view way on every device.

00:10:10 ◼   ► You can make it once and distribute it everywhere

00:10:13 ◼   ► without reformatting.

00:10:14 ◼   ► Your content's automatically optimized for engagement

00:10:17 ◼   ► and ready to share, which saves so much time.

00:10:20 ◼   ► Issue also works seamlessly with the tools

00:10:22 ◼   ► you already use and love, like Canva, Dropbox, MailChimp,

00:10:25 ◼   ► InDesign, and more.

00:10:27 ◼   ► Content on Issue can be published however you need it to be.

00:10:31 ◼   ► Public or private, for instance, and private there only allows users with a shared link

00:10:34 ◼   ► to view it.

00:10:36 ◼   ► Public content will be available for your audience, and it'll be available for others

00:10:39 ◼   ► to discover on the Issue platform.

00:10:41 ◼   ► This is cool.

00:10:42 ◼   ► So the platform also provides statistics on how your content's being consumed, so you

00:10:46 ◼   ► can learn more about your audience with data on impressions, clicks on the content, duration

00:10:50 ◼   ► spent reading, pages viewed, and so much more.

00:10:54 ◼   ► Issue helps creators, marketers, designers, and really anyone who wants to make content

00:10:58 ◼   ► that stands out.

00:10:59 ◼   ► Get started with Issue today for free or sign up with an annual premium account and get

00:11:03 ◼   ► 50% off with you.

00:11:05 ◼   ► Go to issue.com/podcast and use promo code radar.

00:11:10 ◼   ► Issue is spelled I-S-S-U-U.

00:11:12 ◼   ► So there's no E. I-S-S-U-U.com/podcast.

00:11:17 ◼   ► Use promo code radar at checkout for your free starter account or 50% off an annual

00:11:21 ◼   ► premium account.

00:11:22 ◼   ► one more time, that's issueissuu.com/podcast,

00:11:26 ◼   ► promo code radar.

00:11:28 ◼   ► Our thanks to Issue for their support of Under the Radar

00:11:30 ◼   ► and all of Relay FM.

00:11:33 ◼   ► So you decided to rebuild the whole app,

00:11:36 ◼   ► Swift and Swift UI, and part of that was

00:11:39 ◼   ► that you had this pretty significant new feature set

00:11:42 ◼   ► that you were adding on with the hiking, tracking,

00:11:44 ◼   ► and the widgets, and the workout modes, and the watch.

00:11:47 ◼   ► Like there's so much you were adding here.

00:11:49 ◼   ► And I know you just talked about the decision making

00:11:52 ◼   ► of why you kept it in this app

00:11:54 ◼   ► and didn't just make a new app.

00:11:56 ◼   ► But I'm curious, are you concerned

00:11:59 ◼   ► that people won't know to look for this in this app?

00:12:02 ◼   ► 'Cause it's really hard to take an existing app,

00:12:05 ◼   ► you added this whole massive new feature set to it,

00:12:07 ◼   ► but part of what makes Podometer++ itself

00:12:11 ◼   ► is its root screen, it's iconic,

00:12:14 ◼   ► just nice bar graph root screen

00:12:16 ◼   ► that everyone has been looking at for almost a decade now.

00:12:20 ◼   ► And so how do you balance, like you're adding this massive new feature set to an app that

00:12:27 ◼   ► is known for its simplicity, and how do you balance not eating into that simplicity too

00:12:32 ◼   ► much while also making sure people actually know about the features and might have a chance

00:12:36 ◼   ► to use them?

00:12:37 ◼   ► Yeah, and I think that is definitely a concern that I had.

00:12:41 ◼   ► And it's this thing in the back of my mind of what I really didn't want to do is—and

00:12:47 ◼   ► And it's honestly too early at this point to know for sure, but I don't think this is

00:12:51 ◼   ► what happened.

00:12:52 ◼   ► It's like what I didn't want to have happen is I make this change, I add some features,

00:12:55 ◼   ► I rebuild the app, I do some visual design changes, and then suddenly it turns out the

00:13:00 ◼   ► reason the app was successful, the reason people used it was because of the thing that

00:13:04 ◼   ► I just changed.

00:13:05 ◼   ► Like the thing that I just took away was the linchpin that was holding everything together.

00:13:10 ◼   ► And so if I take it away, like the whole thing falls apart.

00:13:13 ◼   ► that's the terror in the back of my mind that that was going to happen. And I think, because

00:13:19 ◼   ► I had that terror there that I don't think is actually true, that I think is much more likely

00:13:23 ◼   ► that people like it for a variety of reasons. And I can keep the essentials of what they like,

00:13:28 ◼   ► without, you know, while making changes to other things. I think, because I had that terror, I went

00:13:33 ◼   ► as I go about this, everything that I've done is kind of had been filtered through this idea of,

00:13:39 ◼   ► if you're an existing user, what would you expect? What would you like? What would make sense to you?

00:13:45 ◼   ► And I'm trying very hard to structure things around that, that I'm not trying to kind of

00:13:52 ◼   ► confuse people or they, you know, they, like, I mean, I'm sort of, even myself, when I really

00:13:58 ◼   ► don't like it when, you know, an app update happens, and suddenly I can't find anything,

00:14:02 ◼   ► and everything's like backwards and turned around. And, you know, things are very confusing suddenly,

00:14:08 ◼   ► like that is a terrible experience and a feeling as a user because as a user, it takes effort

00:14:15 ◼   ► for me to develop kind of, I don't know, like sophistication, expertise, whatever you wanted

00:14:21 ◼   ► to say it was about, you know, this app that I'm learning how to do it, I'm becoming an

00:14:25 ◼   ► expert in it. And if you know, as an app developer, if we take that expertise that someone has

00:14:30 ◼   ► learned and kind of just like discard it and throw it away, like that's, that's hurtful.

00:14:35 ◼   ► Like that's not a nice feeling for these users who have put time and energy into understanding

00:14:40 ◼   ► how your app works and what they should expect from it.

00:14:43 ◼   ► And so I tried very hard in this update to leave things very similar.

00:14:47 ◼   ► Like that main root home screen where you have been for a long time is communal.

00:14:52 ◼   ► None of the code you're seeing is the same as the old code, but visually it's almost

00:14:57 ◼   ► identical.

00:14:58 ◼   ► Like I tried very hard to, like there may come a point in the future where I can evolve

00:15:04 ◼   ► that, where I could change it, where I could tweak or adjust it in a way that might be

00:15:08 ◼   ► interesting. Like, I don't know, that may be something that makes sense in six months,

00:15:12 ◼   ► you know, a year from now. But for this update, when I'm changing so many other things, my

00:15:16 ◼   ► goal was to keep it exactly the same, to change only what I have to, rather than to get kind

00:15:24 ◼   ► of carried away in one of these just like, you know, graphic design, vision quests, where

00:15:30 ◼   ► where you start coming up with these new ideas and these things and kind of like this radical

00:15:34 ◼   ► re-imagining of something. It's like, "No, no. This is the, you know, the rebuild is

00:15:38 ◼   ► for me and for my ability to technically do this. And visually for the user, I want you

00:15:43 ◼   ► to be as happy as can be with that." Some users may even think like nothing changed,

00:15:48 ◼   ► that if you just like, "Oh, huh," you know, the app just looks slightly different. There's

00:15:52 ◼   ► not even any kind of big obvious thing there. And then these other features, these new like

00:15:56 ◼   ► workout modes and things are kind of, I'm not, I'm intentionally not trying to be in

00:16:02 ◼   ► your face about them, that I want you to discover them when you're at the point where you might

00:16:07 ◼   ► be interested in looking rather than, you know, it's not this kind of update where I've,

00:16:13 ◼   ► you know, and I've experienced these in some other apps where you have the sense of like,

00:16:16 ◼   ► this new update comes and then now every time you launch the app, there's like a pop up

00:16:19 ◼   ► that's like, "Hey, hey, hey, have you seen our new stuff? It's awesome. You know, come

00:16:22 ◼   ► Come over here, check this out.

00:16:24 ◼   ► I have a little link at the top of the home screen now, just to be able to play the videos.

00:16:29 ◼   ► It's like a 30-second video, essentially, like, here's what's new in version 5.

00:16:33 ◼   ► But that's the extent of it, and once you've seen it, it goes away and it won't come back.

00:16:38 ◼   ► I'm trying to be as thoughtful as I can about making this something that hopefully, I mean,

00:16:45 ◼   ► both for the existing user and the new user, that your initial core experience, the thing

00:16:49 ◼   ► that hopefully has gotten you to download Pedometer++ in the first place and you are

00:16:53 ◼   ► using it is still there, is still great, and now there's this other place that you can

00:16:58 ◼   ► go that, you know, "Huh, counting my steps is great, but what if I could track, you know,

00:17:03 ◼   ► the walks I do to get my steps?" And if that's a thought you have, then now I have a way

00:17:08 ◼   ► to address that, and that hopefully is kind of a logical next step. And, you know, similarly,

00:17:14 ◼   ► it's like, "Huh, now I'm going on these walks. It'd be great if I could, you know, look at

00:17:18 ◼   ► a map while I do that, or look at my, you know, track my walk on my lock screen using

00:17:23 ◼   ► live activities, like, wouldn't that be cool? Or on my Apple Watch, I'd love to have a map.

00:17:27 ◼   ► Like these are these kind of extension features that I'm trying hard trying to kind of structure

00:17:31 ◼   ► things with this graduated sort of disclosure that I think hopefully will make that transition

00:17:37 ◼   ► sort of easier for people that it's not turning things around not doing anything dramatic

00:17:41 ◼   ► and radical, and kind of just keeping it the same as much as I can.

00:17:46 ◼   ► So I'm curious, you built a pretty substantial feature here that involves being able to track

00:17:54 ◼   ► hiking or walking workouts with just an iPhone without an Apple Watch.

00:17:58 ◼   ► Because as you mentioned in the blog post, 70% roughly of your customer base does not

00:18:02 ◼   ► have an Apple Watch paired to their phone.

00:18:05 ◼   ► And I would imagine that's probably a pretty average number for the iPhone as a whole.

00:18:10 ◼   ► So it might even be greater than that, depending on what kind of app usage you have.

00:18:15 ◼   ► But anyway, so I'm curious, what made you decide to build that particular feature as

00:18:21 ◼   ► somebody who was so into the Apple Watch yourself?

00:18:23 ◼   ► And do you frequently go out and test that without your Apple Watch?

00:18:27 ◼   ► And what's the market impact of that, do you think?

00:18:31 ◼   ► 'Cause I think this is a, as far as I know, fairly untapped or underserved market of people

00:18:36 ◼   ► who want some kind of active workout role with their iPhone who don't have an Apple

00:18:42 ◼   ► watch and will be solely using the iPhone to track that. How do you, like, what are

00:18:46 ◼   ► the capabilities you can and can't do with that? How does it compare to the watch? And,

00:18:50 ◼   ► you know, how do you find, like, do you actually end up using it a lot to test it out? And,

00:18:55 ◼   ► you know, I would imagine for you leaving the house without a watch is like leaving

00:18:58 ◼   ► the house without pants. Like, how do you feel?

00:19:01 ◼   ► Yeah.

00:19:02 ◼   ► Like, how do you feel?

00:19:03 ◼   ► I'm wearing at least one Apple Watch. Maybe two, maybe three. Yeah, like, I think the,

00:19:10 ◼   ► Honestly, it's one of these things where I was,

00:19:13 ◼   ► earlier I was saying how I'm building a feature

00:19:15 ◼   ► for myself, for a lot of this.

00:19:19 ◼   ► The iPhone aspect of it, the part of it that is for me

00:19:24 ◼   ► is the map-based version of that.

00:19:26 ◼   ► That's something that I find I will use

00:19:29 ◼   ► when I'm going on a, I'm out on a hike

00:19:31 ◼   ► and I wanna see where I am, I wanna follow a route.

00:19:34 ◼   ► Having that on a nice big screen is great

00:19:36 ◼   ► in a way that I will, it's amazing and I love

00:19:39 ◼   ► I can put a map on my Apple Watch and I will use that every time I'm going on a proper

00:19:43 ◼   ► adventure I will have it on my Apple Watch. Having it on my iPhone is useful there. But

00:19:48 ◼   ► I think it definitely feels like a feature that so many people can benefit from, like

00:19:54 ◼   ► at least 70% of my user base currently can't do this in Pedometer++ and now they can. And

00:20:01 ◼   ► And I wanted to bring that into, sort of onto the iPhone as a result.

00:20:09 ◼   ► And I think I use it more now especially.

00:20:12 ◼   ► When I first started building this app, when I started thinking about this, we didn't have

00:20:16 ◼   ► live activities or the Dynamic Island or any of those things.

00:20:20 ◼   ► Those are sort of new arrivals since I was working on this.

00:20:23 ◼   ► And I think they have especially made it much more compelling on the iPhone to track a workout

00:20:29 ◼   ► because one of the reasons that on the Apple Watch, tracking a workout is so compelling

00:20:35 ◼   ► is when you're in a workout, your metrics take over the watch, you know, the screen,

00:20:42 ◼   ► and you don't see your watch face. All you see is your workout metrics. And live activities

00:20:46 ◼   ► aren't quite that, like it's not like they're taking over your lock screen in a way that

00:20:50 ◼   ► like the, you know, if you started driving directions in the Maps app, it actually kind

00:20:55 ◼   ► of like takes over the lock screen. You know, live activities aren't quite that big, but

00:20:59 ◼   ► it now puts that data somewhere that is immediately obvious and visible and you can quickly reference

00:21:05 ◼   ► without having to unlock, you know, take out your phone, unlock it, you know, swipe up and then

00:21:10 ◼   ► you'll see it. It's being able to just pick it up, you know, glance at it and look at it. Or even if

00:21:15 ◼   ► you have it in, you know, a case or something where it's visible externally, you can just glance at it

00:21:20 ◼   ► and look at it. And I think that really was one of those things where when live activities were

00:21:26 ◼   ► announced, I was like, Oh, this is perfect. Like this is suddenly turning it into something

00:21:30 ◼   ► that is super useful for me. And especially in a world where, while like I do all my,

00:21:38 ◼   ► you know, I love the Apple Watch Ultra, and its battery life is amazing. So if I'm going

00:21:42 ◼   ► for a very long hike, it's still going to be fine. Not everyone, you know, likes that.

00:21:47 ◼   ► And I think having even if you have an Apple Watch, you might sometimes want to track a

00:21:51 ◼   ► a long walk, like if you were going for a 20-mile walk, you might struggle to capture

00:21:57 ◼   ► that in a Series 4 Apple Watch. That might just be a struggle for you just from a pure

00:22:01 ◼   ► battery life perspective. And so doing it on your phone is much easier. You can actually

00:22:06 ◼   ► charge your iPhone while you're walking. You can plug it in in a way that you can't easily

00:22:10 ◼   ► do with your Apple Watch. You can run a charging cable up under your wrist or something. I

00:22:17 ◼   ► don't know. That seems like you're blocking the heart rate sensor. I don't even know if

00:22:20 ◼   ► that would work.

00:22:21 ◼   ► it would remain in the locked mode the whole time because it would think it's off your

00:22:24 ◼   ► wrist the entire time.

00:22:25 ◼   ► Yeah. Like, it just doesn't work great. And so I think those kind of things have made

00:22:30 ◼   ► that a much more compelling, like being able to do live activities. And really the main

00:22:34 ◼   ► downside is you don't get heart rate tracking. I think other than that, you know, there's,

00:22:40 ◼   ► it can do all of the, you know, the speed estimation, the, you know, the stuff that

00:22:44 ◼   ► I can write into health, you'll get a record of it with a route tracking and all like,

00:22:49 ◼   ► much the only difference between a workout that's tracked on your wrist and a workout

00:22:53 ◼   ► that's tracked on your phone is going to be that there's no heart rate data, obviously.

00:22:57 ◼   ► And so I think that's turned into a feature that I think is actually much more compelling

00:23:02 ◼   ► than I would have thought. And as someone who, you know, I am first and foremost, you

00:23:06 ◼   ► know, an Apple Watch fanboy, like I love my Apple Watch, like so much of this actually,

00:23:12 ◼   ► this concept for this app, like I feel like so often when I'm developing, there's a feature

00:23:18 ◼   ► I kind of get sort of stuck on and I decide like, if this is possible, if I can do this,

00:23:24 ◼   ► then suddenly like it's much more worthwhile to do. And for me, it was once I got like

00:23:29 ◼   ► mapping built for in SwiftUI for the Apple Watch was just like, Oh, this is cool. Now

00:23:37 ◼   ► I need to now I need to make this app. Because the engineering side of that was a really

00:23:42 ◼   ► tricky, challenging problem, but once I cracked it,

00:23:45 ◼   ► it was like, oh, this is amazing.

00:23:47 ◼   ► And so, that was kind of the, you know,

00:23:50 ◼   ► the Apple Watch is so important for me in that way,

00:23:53 ◼   ► but like, turns out this feature, I think,

00:23:55 ◼   ► is gonna be, you know, it's much more useful,

00:23:57 ◼   ► and it's like, any time you can build a feature

00:23:59 ◼   ► that benefits the 70 rather than the 30 side

00:24:02 ◼   ► of your user base, like, you're definitely on a right path.

00:24:06 ◼   ► - That makes a lot of sense.

00:24:07 ◼   ► It's funny, like, I forgot until halfway through

00:24:10 ◼   ► your answer to the question,

00:24:12 ◼   ► I've actually written an iPhone workout myself.

00:24:14 ◼   ► (laughs)

00:24:16 ◼   ► That's what Town Painter was.

00:24:18 ◼   ► - Yeah.

00:24:19 ◼   ► - And I never even made the Apple Watch version.

00:24:20 ◼   ► And like what you've done here is pretty much

00:24:23 ◼   ► all of the work that would be required

00:24:24 ◼   ► if I ever wanted to make Town Painter as a watch app.

00:24:28 ◼   ► (laughs)

00:24:29 ◼   ► But anyway, no that's really cool to look at it that way.

00:24:32 ◼   ► And you know, and we've all had those moments.

00:24:35 ◼   ► Like you know, my moment of like, you know,

00:24:38 ◼   ► the engineering made me wanna do something

00:24:40 ◼   ► badly was when I first made smart speed and voice boost prototypes. In the old app that

00:24:45 ◼   ► I, it was called Castaway Prototype because I didn't have a good name yet. And I was

00:24:48 ◼   ► like, "Oh man, I should make a podcast app around these features. These are really compelling."

00:24:53 ◼   ► And there's been, you know, stuff over time I've done like that as well. And that's

00:24:57 ◼   ► a great feeling when you get some kind of prototype and you're like, "Oh wait a

00:25:00 ◼   ► minute, this actually works." Like I actually, this is kind of a spoiler, but I'm actually

00:25:03 ◼   ► about to sort of release something that's sort of a game, but it's not as big of a deal

00:25:11 ◼   ► as it sounds at all. It's not even a separate app, it's just a part of Overcast, but you'll

00:25:16 ◼   ► see. But anyway, I had a similar feeling there of like, "Hmm, this is an interesting thing

00:25:21 ◼   ► to do here." But it's not a big deal, don't get too excited. It's a very small deal.

00:25:28 ◼   ► But I think too with that though is the sense of like the engineering win though is such

00:25:33 ◼   ► a powerful thing in terms of like I've had so many of these in this this app in particular

00:25:39 ◼   ► I've had to learn something new like I've had to learn how like map tiles work I've

00:25:44 ◼   ► had to learn all these geo like geometric algorithms and these things that are just

00:25:48 ◼   ► really like I feel like I'm a better developer as a result of that and so I think like it's

00:25:53 ◼   ► always cool to just if you can find a problem that you think is interesting to pursue it

00:25:58 ◼   ► and tackle it because that engineering solution

00:26:00 ◼   ► can be so motivating to make you want to keep going.

00:26:04 ◼   ► - Totally, and that's, I think, one of the best things

00:26:07 ◼   ► about being a nerd like us.

00:26:10 ◼   ► There's a lot of people who make apps who are in it,

00:26:13 ◼   ► kind of what you were saying earlier,

00:26:14 ◼   ► who are in it for business reasons.

00:26:17 ◼   ► They know there's a market here,

00:26:21 ◼   ► they want to do it for business reasons,

00:26:23 ◼   ► they might not necessarily get the same nerdy satisfaction

00:26:27 ◼   ► that a lot of programmers get out of solving a nerdy problem. And as a result, people with

00:26:33 ◼   ► those priorities tend not to tackle very difficult problems or tend not to make it – not to

00:26:40 ◼   ► think it's worth the time to tackle those big problems. Whereas nerds like us, one of

00:26:44 ◼   ► our great downfalls is that we will pour infinite time into something we think is a cool problem

00:26:50 ◼   ► to work on, even if it's not even worth it. Like that's – we go the opposite direction.

00:26:54 ◼   ► We spend too much time doing things that are not worth it.

00:26:57 ◼   ► But I think ultimately, much of the time, that can result in some really cool stuff.

00:27:02 ◼   ► Even though if you actually chart out your hours for what you spent on it, it's like

00:27:07 ◼   ► my wife makes a lot of art and a lot of art projects and art products.

00:27:11 ◼   ► And art is one of those things where you really shouldn't start budgeting out your hours

00:27:15 ◼   ► and seeing, "What's my equivalent hourly rate here?"

00:27:18 ◼   ► Because a lot of times it's terrible.

00:27:20 ◼   ► It's like, if I budged them at my hourly rate out here for what I'm going to make

00:27:24 ◼   ► on this, it's like below minimum wage, you know.

00:27:27 ◼   ► But nerds like us are willing to do that a lot of times to our own detriment often, but

00:27:30 ◼   ► we're willing to do that a lot of times because we want the cool outcome.

00:27:33 ◼   ► And I feel like that is, there's so much of that in your work.

00:27:39 ◼   ► And I love that.

00:27:40 ◼   ► Like, you'll find some nerdy thing, like, you know, your recent post about the gradients

00:27:43 ◼   ► around the square.

00:27:44 ◼   ► Like, you'll find some nerdy thing and you'll dive deep on it and find, like, the

00:27:48 ◼   ► right solution or the most pragmatic solution at a level of detail or for a feature entirely

00:27:54 ◼   ► that most people wouldn't have noticed or cared about those details. But it's worth

00:27:59 ◼   ► it to you. And I love, you know, because I have those things myself and I love that part

00:28:03 ◼   ► of the nerd outlook.

00:28:04 ◼   ► Yeah, and I think there's an element too of that's how you can make things that are

00:28:11 ◼   ► distinctive. Like being distinctive doesn't always mean that you'll be successful. But

00:28:16 ◼   ► I think it's much easier to be successful if you are distinctive. If you're doing something

00:28:20 ◼   ► that took effort, that if someone else can reproduce your work trivially in a short amount

00:28:27 ◼   ► of time, that's not a great place to be. Whereas a lot of what I've been doing with some of these

00:28:34 ◼   ► updates and these algorithms, it's like, "Sure, it's not like I'm doing something that's impossible.

00:28:39 ◼   ► It's not like this wild genius thing. I'm building on the shoulders of others and I'm putting

00:28:45 ◼   ► together a variety of different algorithms and things that are very well known, but there's

00:28:50 ◼   ► a difficulty there. If you want to put a map in a live activity, good luck. It's going

00:28:56 ◼   ► to take a while. It is not a trivial thing to be able to do. And so that's like, you

00:29:04 ◼   ► call it a moat, you could call it a barrier, or you could call it just like a bit of distinctiveness

00:29:08 ◼   ► that hopefully helps you to set apart from everyone else. And that's a wonderful place

00:29:13 ◼   ► to be.

00:29:14 ◼   ► I call it craft.

00:29:16 ◼   ► To me, that's like being able and willing

00:29:18 ◼   ► to occasionally tackle hard stuff

00:29:20 ◼   ► to make a high quality outcome.

00:29:22 ◼   ► That's our craft.

00:29:23 ◼   ► And I think we're lucky to have the time

00:29:26 ◼   ► to be able to do it.

00:29:28 ◼   ► We don't have a boss telling us,

00:29:29 ◼   ► you aren't allowed to spend eight hours on this feature,

00:29:32 ◼   ► like you have to have it done in 30 minutes.

00:29:34 ◼   ► We can sometimes take those times,

00:29:36 ◼   ► and that's my favorite part of the job.

00:29:38 ◼   ► - Absolutely.

00:29:39 ◼   ► - Anyway, congrats on the release.

00:29:41 ◼   ► I hope it's going well for you,

00:29:42 ◼   ► and we will talk about it more next episode. Thank you everybody for listening. Talk to you in two

00:29:47 ◼   ► weeks. Bye.