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: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: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: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: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:16
◼
►
That's what Town Painter was.
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: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: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