PodSearch

Under the Radar

254: New and Different

 

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

00:00:03 ◼   ► I'm Marco Arment.

00:00:04 ◼   ► 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:09 ◼   ► So congratulations.

00:00:11 ◼   ► Thank you.

00:00:13 ◼   ► This is going to be a bit of a weird one because I have made a new app and I'm asking you all

00:00:21 ◼   ► not to go find it.

00:00:24 ◼   ► Please don't use it.

00:00:25 ◼   ► Please don't go searching for it.

00:00:28 ◼   ► If you search, you can find it, but please don't because this is an app that is made

00:00:32 ◼   ► for about 15 people who live around me.

00:00:38 ◼   ► And the reason I made it, I talked last time about just kind of unblocking my mental block

00:00:46 ◼   ► and my developer depression by doing a new fun little project.

00:00:50 ◼   ► And I did it and it's out there and it's being used by about three people so far and I hope

00:00:54 ◼   ► to get about 15 more over the coming weeks.

00:00:58 ◼   ► And all it is is an app for people who live on Fire Island who have driving permits in

00:01:04 ◼   ► the winter to share reports about beach conditions because it matters when you're driving here.

00:01:10 ◼   ► You kind of want to know, like, is the beach passable today or whatever.

00:01:13 ◼   ► And it's a very, very specialized thing.

00:01:15 ◼   ► And I thought it was interesting to talk about, not because I want anyone to find it because

00:01:19 ◼   ► I really don't, really please don't, but because it taught me a bunch of new things and I think

00:01:26 ◼   ► there's value there as discussed last time.

00:01:29 ◼   ► And also, I thought it was interesting because it is very different from everything else

00:01:35 ◼   ► that I have done on iOS so far.

00:01:37 ◼   ► It's like extremely different in so many ways.

00:01:41 ◼   ► And so first of all, I think it's worth clarifying who are these people that want this app.

00:01:49 ◼   ► And it's mostly, again, it's a very small group.

00:01:54 ◼   ► The maximum number of people who even can have a driving permit here is something like

00:01:59 ◼   ► 200.

00:02:00 ◼   ► And it's mostly older people who have been here for a long time or it's contractors who

00:02:06 ◼   ► come on and work here during the day in the winter building houses or fixing things up

00:02:10 ◼   ► or whatever.

00:02:11 ◼   ► And so this is not a technical audience for the most part.

00:02:16 ◼   ► It is an older audience for the most part and it is, I mean, not even all iPhone owners.

00:02:21 ◼   ► There's a lot of Android people, which I'm not serving at all, frankly, because I don't

00:02:25 ◼   ► know how.

00:02:26 ◼   ► I don't want to learn just for this, just for 12 people.

00:02:30 ◼   ► So anyway, that gives context on what this is.

00:02:34 ◼   ► Now the other thing is I have a feature that uses background location and I've mapped out

00:02:40 ◼   ► map segments to say, "All right, these are the two main routes people take."

00:02:44 ◼   ► And I have route segments and I have geofences at different points throughout them so the

00:02:48 ◼   ► app can be woken up in the background and can record automatically whether you're driving

00:02:53 ◼   ► on one of the two known route segments and how fast you're able to do it.

00:02:58 ◼   ► And then it reports to the server in some super privacy-sensitive, anonymous way with

00:03:04 ◼   ► the identifiers that change every 24 hours, like that, "Hey, somebody was able to drive

00:03:08 ◼   ► at this speed on this segment of the route at this time."

00:03:12 ◼   ► And then it reports to other people with green lines on the map, like, "This route's known

00:03:17 ◼   ► to be good right now."

00:03:19 ◼   ► And so that's the basis of the app.

00:03:21 ◼   ► And there's also things where you can add user reports and comments and everything about,

00:03:24 ◼   ► "Hey, the beach is foggy today," or whatever.

00:03:27 ◼   ► And this is what the app needs to be for this very small group of people.

00:03:31 ◼   ► This is all it needs to be.

00:03:33 ◼   ► And it's going to have very, very high value to very few people.

00:03:37 ◼   ► Now, the dynamics of appealing to this group, this is so different from Overcast.

00:03:44 ◼   ► So first of all, every user matters.

00:03:48 ◼   ► Every installation matters because it's such a small, targeted group that I can't have

00:03:54 ◼   ► – like, one of the things I did was I maintained iOS 15 compatibility.

00:03:58 ◼   ► So even though it's a brand new app, after 16 is out, but I know that some of these people

00:04:03 ◼   ► are going to be on older iPhones and iOS 15 is therefore required.

00:04:07 ◼   ► And sure enough, I have, I believe, two or three people using it right now who aren't

00:04:12 ◼   ► me.

00:04:13 ◼   ► At least one of them I know is on iOS 15 because I helped her install it on her phone.

00:04:17 ◼   ► And there was a weird bug with, like, SwiftUI, like, presentation dismissal.

00:04:20 ◼   ► I'm like, "That's weird.

00:04:22 ◼   ► What?

00:04:23 ◼   ► Is something different?"

00:04:24 ◼   ► And I looked.

00:04:25 ◼   ► Let me check.

00:04:26 ◼   ► Is this on iOS 15?

00:04:27 ◼   ► I went and go check.

00:04:28 ◼   ► Yup, this is iOS 15.

00:04:29 ◼   ► All right.

00:04:30 ◼   ► And then I knew I had to go submit an update.

00:04:31 ◼   ► And the other thing is that this is kind of a small social network app in the sense that

00:04:36 ◼   ► there's a strong network effect.

00:04:37 ◼   ► If you are the only person using it, it is not useful to you.

00:04:41 ◼   ► We need people using it.

00:04:42 ◼   ► And so in addition to having to make sure that I get, like, a few key people on this

00:04:47 ◼   ► who, like, drive a lot and everything, I also need to make sure I'm not spreading the word

00:04:52 ◼   ► about it within this community too early.

00:04:55 ◼   ► Because if I tell everyone up front, "Hey, everyone, go use this right now," and everyone

00:05:01 ◼   ► rushes in and tries to use it on day one and sees there's no data there, they will all

00:05:06 ◼   ► bounce out and never go back to it.

00:05:09 ◼   ► So all these considerations, like, "How do I stage this out?"

00:05:11 ◼   ► But it's the same considerations you'd have when building, like, a really big social app,

00:05:17 ◼   ► but on a tiny, tiny scale.

00:05:19 ◼   ► And it's been this really fun exercise.

00:05:22 ◼   ► And again, like, the way I designed the app, you know, it's all SwiftUI, all modern Swift

00:05:28 ◼   ► using a lot of Swift async stuff.

00:05:30 ◼   ► But, you know, I've never used core location in a meaningful way.

00:05:33 ◼   ► I've never used background location and all the permissions therein.

00:05:38 ◼   ► Notification permission, like, you know, all this stuff, like, that I either have never

00:05:42 ◼   ► used or used very lightly or used very differently in the apps I've made so far.

00:05:47 ◼   ► And it's—I use a photo picker.

00:05:49 ◼   ► I use the camera picker.

00:05:52 ◼   ► All these different, you know, different capabilities that I need for this one app that I've just

00:05:58 ◼   ► never used before.

00:06:00 ◼   ► And I have—it's been so fun.

00:06:03 ◼   ► And it's been, like—it's kind of like, you know, when—if you're into fitness,

00:06:08 ◼   ► if you do a workout and you work out some muscle that you've never used before and

00:06:13 ◼   ► you're insanely sore for three days afterwards in some weird spot in your body.

00:06:16 ◼   ► Sure.

00:06:17 ◼   ► It's like, "Wow, I have inner thighs?"

00:06:19 ◼   ► You know, like, there's, you know, weird things that, you know, most people don't

00:06:23 ◼   ► exercise very well.

00:06:24 ◼   ► Like, "Oh, my hip flexor is sore.

00:06:26 ◼   ► I didn't know I had that until yesterday."

00:06:28 ◼   ► You know.

00:06:29 ◼   ► It's kind of like that for iOS developers.

00:06:31 ◼   ► And I've really enjoyed this process even though, you know, it's not—again, it's

00:06:36 ◼   ► not going to be something, "Oh, I use Swift charts even because I made a tied graph?"

00:06:40 ◼   ► Like, it's just—I've used so many things in this that either are new that I haven't

00:06:45 ◼   ► had a chance to use yet, like some of the Swift async stuff and a lot of Swift UI, or

00:06:50 ◼   ► that I've just never had a use for.

00:06:52 ◼   ► And like the process of staging it out to people and like the whole reason I had to

00:06:56 ◼   ► get it in the app store.

00:06:58 ◼   ► The whole reason to do that, this group, because every installation counts, I knew TestFlight

00:07:06 ◼   ► was a no-go.

00:07:08 ◼   ► Because I thought like, you know, if I give this to a couple of beta testers, they put

00:07:12 ◼   ► it on their phone.

00:07:14 ◼   ► And these are like people who I want to be using it, you know, driving every day, giving

00:07:17 ◼   ► good data to the app.

00:07:19 ◼   ► What if the build expires?

00:07:20 ◼   ► What if the, you know, like—or what if they replace their phone and restore their phone?

00:07:25 ◼   ► Like how hard is it going to be to ever get them to install it again?

00:07:29 ◼   ► How hard—you know, it's going to be a mess.

00:07:31 ◼   ► And like, you know, I can't deal with that.

00:07:34 ◼   ► So I just need to get it just in the app store.

00:07:37 ◼   ► And then, you know, just do my best to test it.

00:07:40 ◼   ► Sure enough, I had a couple of bugs.

00:07:42 ◼   ► I submitted an update, fixed them.

00:07:43 ◼   ► I still have more bugs.

00:07:44 ◼   ► I'm going to fix them soon too.

00:07:46 ◼   ► And it's been so much fun.

00:07:50 ◼   ► And it's been a massive distraction but in a really good way because, you know, I've

00:07:55 ◼   ► used, you know, from high level things, you know, the APIs I was just talking about, to

00:08:00 ◼   ► low level things that I hadn't used before.

00:08:02 ◼   ► Like I hadn't used Swift coding, like encodable/decodable.

00:08:06 ◼   ► I hadn't used that, like the JSON serialization stuff built in now to the language of the

00:08:10 ◼   ► coding keys, enum, and all that stuff.

00:08:11 ◼   ► Like there's been so much advancement in that area in the last few years.

00:08:16 ◼   ► And now I'm thinking like, you know, I can actually really use this with Overcast and

00:08:21 ◼   ► with my other stuff.

00:08:22 ◼   ► And, you know, as I'm thinking about how to transition Overcast over to CloudKit for

00:08:26 ◼   ► user data and, you know, how to architecturally do that at the low levels, like I'm learning

00:08:32 ◼   ► so much stuff.

00:08:34 ◼   ► All the async stuff, wow, is the async stuff good.

00:08:39 ◼   ► And I still only have a very basic understanding of it but it's really good.

00:08:43 ◼   ► The main actor stuff, using SwiftUI for a non-trivial thing here.

00:08:47 ◼   ► You know, I mean, well, it's trivial but, you know, I'm using SwiftUI for also like

00:08:52 ◼   ► all the permission screens and I didn't use it for the map.

00:08:56 ◼   ► I wrapped the map in, you know, the view representable stuff because I didn't know until after I

00:09:02 ◼   ► had done all the work that there is a SwiftUI map control now.

00:09:05 ◼   ► >> No, you want to wrap it still.

00:09:07 ◼   ► Just put your mind at ease.

00:09:09 ◼   ► It's not ready yet.

00:09:10 ◼   ► >> Okay, thanks.

00:09:11 ◼   ► That's good to know.

00:09:12 ◼   ► And even the map kit, you know, UI kit map is pretty basic.

00:09:16 ◼   ► It doesn't offer a lot of control so that's good to know.

00:09:18 ◼   ► But yeah, that's the only bit of UI kit in the app that I've explicitly coded.

00:09:23 ◼   ► The rest is SwiftUI.

00:09:25 ◼   ► And it is--I've learned so much.

00:09:29 ◼   ► I've done so much more SwiftUI now than I ever have before.

00:09:32 ◼   ► Mixing SwiftUI with the Swift async stuff is also really fun and I've--my skills have

00:09:40 ◼   ► leveled up so much in all these new APIs and new technologies way more than they ever would

00:09:46 ◼   ► have just trying to maintain overcast like at a regular pace.

00:09:51 ◼   ► And so this has been not only incredibly helpful to a very small number of people in my community,

00:09:57 ◼   ► myself included, but also it's just been immensely valuable in my coding, you know, both in skill

00:10:04 ◼   ► development and in, you know, mood improvement and motivation and--what's the--anyway.

00:10:10 ◼   ► >> I mean, yeah, I think the reality is it is as someone who has talked to--

00:10:18 ◼   ► >> Inertia, that's what I was thinking of.

00:10:21 ◼   ► It's early.

00:10:22 ◼   ► >> It's early.

00:10:23 ◼   ► It's fine.

00:10:24 ◼   ► But as someone who has been talking to you every two weeks for, I don't know, for years,

00:10:28 ◼   ► but more specifically than it'll be like the last several months, it is--there is a tangible

00:10:34 ◼   ► change in the way you are talking about your work as a result of this project that is meaningful

00:10:40 ◼   ► and awesome, that is really just cool to hear that, you know, you were working on overcast

00:10:47 ◼   ► previously but I didn't get a--you know, you very rarely got the vibe that you were excited

00:10:51 ◼   ► about it, that things were going awesome, that you were learning, that you felt like

00:10:54 ◼   ► you were, like, using your ability as a developer in a way that is, like, awesome and tangible

00:11:00 ◼   ► and, you know, to its greatest degree, that has been missing.

00:11:04 ◼   ► And sometimes it does.

00:11:05 ◼   ► We talked about this last week.

00:11:06 ◼   ► Sometimes it's there, sometimes it's not, but it's really kind of a bummer when it's

00:11:10 ◼   ► missing and it's really cool to hear that you found a way to unlock that.

00:11:15 ◼   ► And whether it's an app that's used by 15 people or if it's an app that's used by no

00:11:19 ◼   ► people, like, that doesn't--that is far less important in many ways than getting that process

00:11:25 ◼   ► flowing again, getting--you know, enriching yourself and your ability to make things and

00:11:31 ◼   ► to enjoy that process, to get out of the funk and, like, get back on the road and be able

00:11:36 ◼   ► to do things.

00:11:37 ◼   ► And I think that is so exciting, just--both--just, you know, as a friend of yours, to hear that

00:11:43 ◼   ► is just super cool and I love it and it's exciting.

00:11:47 ◼   ► And I think, you know, professionally, I think it's also just really cool as well that you

00:11:51 ◼   ► found a way to get there and, you know, it's really, I think, one of the challenges of

00:11:57 ◼   ► something like Overcast being as sort of established as it is.

00:12:03 ◼   ► You know, it reminds me if I--if, you know, if you were working at Apple, say, like, we

00:12:09 ◼   ► hear these stories of these developers where it's this tricky thing that after a certain,

00:12:12 ◼   ► you know, the people who originally made whatever the big fancy new thing is, at some point

00:12:16 ◼   ► get tired and sort of stuck maintaining it and retention becomes really difficult.

00:12:23 ◼   ► Or you have to invent new projects, you have to make big things for them to, you know,

00:12:26 ◼   ► new exciting projects for them to work on because if you're a, you know, a sharp smart

00:12:31 ◼   ► developer, you want to be learning, you want to be solving interesting problems, you want

00:12:34 ◼   ► to be solving new problems.

00:12:35 ◼   ► Even if they're not like these big earth-changing things, like, you now know how to do maps,

00:12:40 ◼   ► you know, how to do locations and do stuff that isn't, you know, audio and RSS parsing,

00:12:45 ◼   ► which is like the crux of Overcast.

00:12:47 ◼   ► These are new things.

00:12:49 ◼   ► And new just fundamentally is exciting and is interesting and is great.

00:12:53 ◼   ► I mean, this is, you know, my--in some places, like, my whole development story is being

00:12:59 ◼   ► maybe too far down this road where I just am constantly making new things.

00:13:04 ◼   ► And I've gotten a little bit out of that, you know, early in my career.

00:13:06 ◼   ► I would just keep--I kept making--you know, I'd make like 10 apps, 20 apps a year, and

00:13:11 ◼   ► it got a little out of hand.

00:13:13 ◼   ► But, you know, I've settled down a bit, but now I just like, you know, I'm building apps

00:13:16 ◼   ► inside of other apps instead, which, you know, is a different approach.

00:13:22 ◼   ► It's the next logical progression.

00:13:24 ◼   ► Yeah.

00:13:25 ◼   ► That's like how I'm solving this problem is it's like I'm just going to build new tools

00:13:28 ◼   ► for Widgetsmith or, you know, these types of things where I'm going down directions that

00:13:33 ◼   ► aren't necessarily core to the primary experience but make it exciting, interesting, help me

00:13:38 ◼   ► learn, give me an opportunity to try something, et cetera.

00:13:41 ◼   ► And it's just really cool that you found that thing.

00:13:44 ◼   ► And I'm excited to see what this now means for Overcast.

00:13:49 ◼   ► That you know, there is--from my own experience, I know that there is--there's never wasted

00:13:54 ◼   ► learning maybe is a good way to say it.

00:13:56 ◼   ► Like the learning that you have from this is going to find a home in your main projects,

00:14:02 ◼   ► in your--in any work you do in the future, you now have rather, you know, as before you

00:14:06 ◼   ► may have only had, you know, like the old thing where I'd say if all you have is a hammer,

00:14:11 ◼   ► everything's--everything's a nail.

00:14:12 ◼   ► It's like now you have both a hammer and a screwdriver.

00:14:15 ◼   ► And so now you can choose which is the better solution for this.

00:14:18 ◼   ► Try, you know, stick with the Swift Async stuff or should I go or just keep with what

00:14:22 ◼   ► I'm doing with, you know, Grand Central Dispatch or whatever it is.

00:14:25 ◼   ► Like you have choices and those choices are sort of powerful in terms of what it allows

00:14:31 ◼   ► you to do.

00:14:32 ◼   ► And so like that's just cool.

00:14:33 ◼   ► And that's such a fun place to find yourself.

00:14:37 ◼   ► And I think it's--one of those things that I can sometimes hear, you know, sort of diminishing

00:14:41 ◼   ► that's like, "Oh, it's only for 15 people."

00:14:43 ◼   ► It's like that is--and from my perspective, maybe it's for you, someone who's driving

00:14:48 ◼   ► it, that's the part that's, you know, there's 15 people who you want on it.

00:14:52 ◼   ► But it's like for me, it's like if no one used this, well, that would be disappointing

00:14:55 ◼   ► in some ways.

00:14:56 ◼   ► It would still be super exciting that you went through that process of file a new project,

00:15:00 ◼   ► submit to the App Store, went through the whole thing from beginning to end and had

00:15:04 ◼   ► success and like I love success.

00:15:07 ◼   ► >> NICK WALSH.

00:15:09 ◼   ► That's a good--yeah.

00:15:11 ◼   ► Like and it's--and you know, and so much because I hit file a new project so infrequently and

00:15:17 ◼   ► because I submit them to the App Store even less frequently, like there are just parts

00:15:21 ◼   ► of the process that I had either totally forgotten about or that have changed since I last did

00:15:27 ◼   ► it because it was so many years ago and that you don't have to do.

00:15:31 ◼   ► The process of submitting a new app to the App Store, you're no stranger to it.

00:15:35 ◼   ► But you know, because I hadn't done it really in years, you know, I was amazed how many

00:15:41 ◼   ► steps there now are to do it.

00:15:43 ◼   ► You have to cover things like the whole privacy checklist.

00:15:46 ◼   ► I had to, in my case, make a video to show app review how different parts of my app worked

00:15:52 ◼   ► because they couldn't test certain location-based things that require you to be here or that

00:15:59 ◼   ► are only useful if you're here.

00:16:01 ◼   ► And there are so many little tricks and gotchas and metadata and you know, pricing and availability.

00:16:08 ◼   ► Like there's so--the privacy policy, the privacy survey, so much of that stuff you have to

00:16:13 ◼   ► do now.

00:16:14 ◼   ► And I think largely that's a good thing.

00:16:15 ◼   ► You know, most of those are there for good reasons.

00:16:19 ◼   ► But it was quite a process.

00:16:21 ◼   ► I was also--I was very pleasantly surprised.

00:16:23 ◼   ► You know, Overcast started, I think it was--back then it was still the Shoemaker era of the

00:16:32 ◼   ► App Store with that person who was running it who I think was probably not very good

00:16:37 ◼   ► for developers.

00:16:39 ◼   ► And that was back when review times were still like, you know, three to seven days.

00:16:46 ◼   ► And you know, over time that shrunk down to--for Overcast to about a day.

00:16:52 ◼   ► And--but meanwhile Overcast has a watch app, an iPad app, a widget and CarPlay.

00:16:58 ◼   ► And so there's all these different extensions and especially CarPlay that has to be tested.

00:17:02 ◼   ► And I would imagine that gets some scrutiny.

00:17:04 ◼   ► There's in-app purchase.

00:17:05 ◼   ► There's an auto renewing subscription for in-app purchase.

00:17:07 ◼   ► So Overcast updates, you know, they take about a day maybe to get through, maybe 36 hours

00:17:11 ◼   ► to get through app review.

00:17:13 ◼   ► And this app--I did a bug--you know, the first one I had to give the video that took a bit

00:17:18 ◼   ► of time.

00:17:19 ◼   ► But I did a bug fix update and it took--I literally--I submitted to the App Store and

00:17:24 ◼   ► I took a dog walk and I came back and it had been approved within 15 minutes.

00:17:29 ◼   ► It's amazing.

00:17:30 ◼   ► And so it's like, oh, this is what it's like to have a new app that doesn't do that much,

00:17:37 ◼   ► that has no purchases, no money anywhere.

00:17:40 ◼   ► Okay.

00:17:42 ◼   ► So that I was very pleased to see like, wow, like I thought Overcast was getting approved

00:17:47 ◼   ► quickly by being 36 hours and this is approved in less than 36 minutes.

00:17:53 ◼   ► That's pretty good.

00:17:56 ◼   ► So yeah, I'm--this has been a wonderful project.

00:18:00 ◼   ► You know, if you're looking for something new, we are brought to you this week by Volley

00:18:05 ◼   ► Games.

00:18:06 ◼   ► Volley Games is now hiring a lead iOS developer.

00:18:09 ◼   ► Volley makes the most popular games on Amazon Alexa and Google Home.

00:18:13 ◼   ► Now they're bringing their award-winning voice-controlled gaming to iOS.

00:18:17 ◼   ► Top Volley Games include The Price is Right, Jeopardy, and Song Quiz, a name-that-too music

00:18:21 ◼   ► tribute game with millions of users.

00:18:24 ◼   ► This is where you come in.

00:18:25 ◼   ► Volley is hiring a lead developer to bring its top games to iOS.

00:18:29 ◼   ► Are you a creative and knowledgeable developer who wants to work on something new, different,

00:18:32 ◼   ► and challenging?

00:18:33 ◼   ► Hey, that sounds familiar.

00:18:34 ◼   ► Have you ever thought about voice-controlled games on your phone?

00:18:38 ◼   ► Volley's iOS app is built in Swift and takes advantage of cutting-edge technologies, including

00:18:42 ◼   ► real-time speech recognition, video chat, and a cross-platform model layer.

00:18:46 ◼   ► They're also adding ARKit features soon for even more fun live gameplay with your friends.

00:18:52 ◼   ► Volley offers top-tier compensation, benefits, and unlimited in-office Super Smash Brothers.

00:18:58 ◼   ► This lead iOS developer role can be based out of their San Francisco office or hybrid

00:19:02 ◼   ► or remote.

00:19:03 ◼   ► So essentially, wherever you're based, this role could work for you.

00:19:06 ◼   ► So if you're interested in working on the cutting edge of voice interfaces and gaming

00:19:09 ◼   ► on iOS, please apply now at volleygames.com/radar.

00:19:15 ◼   ► That's Volley, V-O-L-L-E-Y, games.com/radar.

00:19:20 ◼   ► As Volley's newest lead iOS developer, you'll be working on games with millions of users

00:19:23 ◼   ► on day one and building the software and tools to bring them to millions more.

00:19:28 ◼   ► Go there now, volleygames.com/radar, to learn more about becoming Volley's lead iOS game

00:19:33 ◼   ► developer.

00:19:34 ◼   ► Thanks to Volley Games for their support of this show and Relay FM.

00:19:36 ◼   ► Yeah, and it's, I think, oh yeah, so it's like starting something new is so important,

00:19:44 ◼   ► I think.

00:19:45 ◼   ► Maybe it's trying to think of like where to sort of wrap the, or make your experience,

00:19:50 ◼   ► which is so wonderful and so encouraging, to make it more generalizable.

00:19:54 ◼   ► And I think, I'm just so stuck on the value of new, of trying something that's different

00:20:02 ◼   ► than what you've done before, finding a way to do it, a time to do it.

00:20:06 ◼   ► You know, it's like the importance of having a side project if you work a nine to five,

00:20:11 ◼   ► that it could be a useful thing that is just, you know, there is something, just time and

00:20:16 ◼   ► time again I have found, that expanding your ability in ways that are slightly uncomfortable

00:20:22 ◼   ► to start but become comfortable as you do them is such an important part in having a

00:20:28 ◼   ► sort of a long, meaningful career in development.

00:20:31 ◼   ► I'm sure there are some people who enjoy just being an expert at one thing and being,

00:20:36 ◼   ► you know, it's like you could imagine the sort of canonical, like the COBOL developer

00:20:40 ◼   ► who's been working on some big financial mainframe for their entire career and that's

00:20:44 ◼   ► what they do, they're an expert and they're super kind of like in there and they know

00:20:49 ◼   ► what they're doing.

00:20:50 ◼   ► Great.

00:20:51 ◼   ► If that's you, you know, rock out.

00:20:52 ◼   ► It's very unlikely you're a listener down to the radar, I would say.

00:20:56 ◼   ► If you're someone who wants to make things, who is excited about being independent or

00:21:01 ◼   ► about, you know, sort of just the creative side of software development, find something,

00:21:06 ◼   ► always be finding something new to make.

00:21:08 ◼   ► If you feel like you're doing the same thing over and over again, I think it's such an

00:21:13 ◼   ► important thing to take a step back and say, "What is something that I would be excited

00:21:17 ◼   ► to try?

00:21:18 ◼   ► What is something that would be cool to do?"

00:21:21 ◼   ► Whether it has an audience like your thing where even if it's a small audience, there

00:21:25 ◼   ► is some audience, some community, something that you care about, or even if it isn't,

00:21:30 ◼   ► like, just something new.

00:21:32 ◼   ► I've written many apps that never got shipped.

00:21:34 ◼   ► Some of them I use, some of them I don't.

00:21:36 ◼   ► Some of them are just things to explore.

00:21:39 ◼   ► Some of them are ideas I have that you go halfway down and you realize it's a bad idea,

00:21:44 ◼   ► but the process of getting from zero to bad idea is sometimes just as instructive as from

00:21:48 ◼   ► getting from zero to good idea.

00:21:51 ◼   ► Like find something to do because inevitably that journey, it will make you better on your

00:21:57 ◼   ► next journey.

00:21:58 ◼   ► It's like you're just kind of continuing to, I almost think of when you're playing an RPG

00:22:03 ◼   ► or something like that, where you're in a game where it's like, as you add experience points

00:22:09 ◼   ► and increase your equipment and all of the capabilities of your character, that's you

00:22:14 ◼   ► just in real life.

00:22:18 ◼   ► If you just stay in the home zone of the game and never go out on adventures, you'll never

00:22:23 ◼   ► get better.

00:22:24 ◼   ► You'll never find new equipment.

00:22:26 ◼   ► You'll never find new experience points.

00:22:27 ◼   ► You'll never learn new skills, etc.

00:22:29 ◼   ► That is true in the game, but it's also very true in life.

00:22:33 ◼   ► Yeah.

00:22:34 ◼   ► I feel like it's so easy to, if you are, really, my position with Overcast is very fortunate.

00:22:42 ◼   ► I'm very fortunate to have this app that is my main business and income that has sustained

00:22:49 ◼   ► itself for all these years.

00:22:51 ◼   ► I made it in 2014.

00:22:53 ◼   ► So it's been a while.

00:22:55 ◼   ► It's been eight years going.

00:22:59 ◼   ► Because I've been doing this, and it basically provides infinite work, anytime I want to

00:23:06 ◼   ► spend programming, there is something that I should be doing or could be doing for Overcast

00:23:10 ◼   ► that would be beneficial for it.

00:23:13 ◼   ► It can absorb an infinite amount of work and time.

00:23:17 ◼   ► Because of that, and it's justified.

00:23:22 ◼   ► It makes good enough money that it's justified, and I feel like I should be doing that.

00:23:25 ◼   ► In fact, I feel anti-motivated, demotivated to do anything else.

00:23:30 ◼   ► Because any time I'm spending doing anything else, I'm feeling like I really should be

00:23:33 ◼   ► working on Overcast instead.

00:23:35 ◼   ► But it's so easy if you're in that pattern, which again, it's a fortunate position to

00:23:39 ◼   ► be in in general, it's so easy to get stuck and to then never explore anything new.

00:23:44 ◼   ► To never look at any APIs that aren't relevant to your app.

00:23:49 ◼   ► But to mainly stay in large code-based maintenance mode and not new, clean start mode.

00:23:57 ◼   ► And as we talked about the last couple episodes, that can be really a rut that you get stuck

00:24:02 ◼   ► in.

00:24:03 ◼   ► And it's very hard to get out of that.

00:24:06 ◼   ► And when you do have some kind of side idea or side project, that can be so, so valuable

00:24:13 ◼   ► in not only professional development, but in just keeping your interest and keeping

00:24:18 ◼   ► those juices flowing.

00:24:19 ◼   ► And that's what I found with this.

00:24:21 ◼   ► And even though, again, please don't go find it, because it's not going to be useful to

00:24:25 ◼   ► you.

00:24:26 ◼   ► And if everybody goes and pokes around, it will be bad.

00:24:27 ◼   ► So please don't do that.

00:24:28 ◼   ► But this is not about this app.

00:24:31 ◼   ► This is about, it's really great to have side projects and to try new things.

00:24:37 ◼   ► And it really does help tremendously.

00:24:41 ◼   ► And now, I'm going back to Overcast now with just a huge amount of inertia and motivation

00:24:48 ◼   ► and a huge list of ideas on how to take it forward, how to deal with this massive legacy

00:24:54 ◼   ► code base, what directions to go.

00:24:57 ◼   ► And I'm also now just way better at things like SwiftUI.

00:25:04 ◼   ► It's very hard for me to experiment much with SwiftUI and Overcast, because not only is

00:25:09 ◼   ► it a giant established code base that has almost no SwiftUI anywhere in it, but it's

00:25:14 ◼   ► also much higher stakes that if I mess something up, that's going to be seen by way more people.

00:25:19 ◼   ► And it could even get bad press or bad user reviews on my main app that matters a lot

00:25:25 ◼   ► to me.

00:25:26 ◼   ► And so the stakes are too high there to do a lot of experimentation.

00:25:30 ◼   ► Whereas when I'm doing side projects or things just for me or little exercises, I can do

00:25:37 ◼   ► whatever I want and the stakes are much lower.

00:25:40 ◼   ► And I can use that as a place to safely learn outside of the spotlight and outside of user

00:25:45 ◼   ► reviews that matter.

00:25:47 ◼   ► And I can just learn and experiment and try different directions.

00:25:52 ◼   ► And I can have embarrassing bugs.

00:25:55 ◼   ► And I can just quietly fix them and not have to deal with it, not have to deal with the

00:26:00 ◼   ► fallout from lots and lots of people.

00:26:03 ◼   ► So that's also very good.

00:26:06 ◼   ► And again, it's a fortunate place to be and where you have that many people looking

00:26:08 ◼   ► at your work, but it's important to keep that balance.

00:26:13 ◼   ► And even if you work for a company, you probably have the same issues of you have much higher

00:26:19 ◼   ► stakes with your apps.

00:26:22 ◼   ► It makes it hard to experiment and hard to try new things.

00:26:26 ◼   ► And I think it speaks a lot to, I know in our last episode we were talking a lot about

00:26:31 ◼   ► the self-care mental health aspect of this.

00:26:33 ◼   ► And I think that lowering of stakes is such an important part, I think, in having a well-structured

00:26:44 ◼   ► self-view in terms of yourself as a developer.

00:26:47 ◼   ► That if everything you do is super high stakes, super dangerous, has that sense of stress

00:26:54 ◼   ► and danger, that is fundamentally going to wear on you.

00:26:58 ◼   ► It's going to sap the joy and excitement and passion from your work, and it's adding

00:27:07 ◼   ► stress.

00:27:08 ◼   ► It's like if every time I walked down the stairs in my house, there was no handrail,

00:27:13 ◼   ► and so suddenly it's a little bit dangerous, a little bit scary.

00:27:16 ◼   ► It's like, "I'm not going to spend as much time going up and down the stairs."

00:27:20 ◼   ► And I think there's a similar aspect that it just slowly wears on you, and then at some

00:27:25 ◼   ► point you realize, "Wow, I am stuck."

00:27:28 ◼   ► That's the experience that I have had many times.

00:27:32 ◼   ► Especially when I found when, as my apps had some amount of traction, and suddenly you

00:27:37 ◼   ► start to think of each of the downloads as a person, and you think about if those people

00:27:42 ◼   ► were in an arena, and I was standing in the middle, and I was about to give each of those

00:27:46 ◼   ► people something.

00:27:48 ◼   ► In some ways that's what's happening when I'm shipping an app update, and it's like

00:27:52 ◼   ► I'm handing this thing out to thousands of people, and I hope it works.

00:27:57 ◼   ► That could create this stress that is not nice, and probably best not to think about

00:28:02 ◼   ► in a lot of ways.

00:28:03 ◼   ► And so I think there is definitely something about finding ways to have low-stakes work

00:28:09 ◼   ► to improve yourself and to balance out a bit of the self-care and taking care of yourself

00:28:15 ◼   ► so that you can have opportunities to do the work that you enjoy.

00:28:20 ◼   ► The reason that both of us, I think, got into development is because we enjoy it.

00:28:24 ◼   ► I'm fortunate to have some skill and aptitude in it, but it is certainly something that

00:28:30 ◼   ► I can enjoy, and that there are parts of it that are actually things that I enjoy doing,

00:28:35 ◼   ► that I'm not sad that I'm a developer.

00:28:38 ◼   ► But that's certainly not the case all the time.

00:28:40 ◼   ► And I think if I'm not careful, that can become the case most of the time, that I'm

00:28:44 ◼   ► not enjoying it.

00:28:45 ◼   ► But if I take the appropriate steps as I'm going, I'm able to find that hole.

00:28:49 ◼   ► I'm just so glad you found it, and it's very cool.

00:28:52 ◼   ► I love the app.

00:28:53 ◼   ► I have it.

00:28:54 ◼   ► I went and looked for it.

00:28:56 ◼   ► I think I have permission, even though, if I'm honest, I've never been to Fire Island.

00:29:01 ◼   ► But I have it there, and I'll, of course, make sure that I'll rate and review, give

00:29:04 ◼   ► it five stars, just because I know it's awesome.

00:29:07 ◼   ► Thank you.

00:29:08 ◼   ► All right.

00:29:10 ◼   ► And thanks to everyone else out there.

00:29:13 ◼   ► We've talked a little bit about these motivation challenges and self-care needs for developers

00:29:18 ◼   ► over the last couple of weeks, and we've heard from a few people in great support of

00:29:23 ◼   ► that.

00:29:24 ◼   ► And so I wanted to thank everyone out there as well for knowing that you aren't alone

00:29:28 ◼   ► and for telling us that we aren't alone.

00:29:29 ◼   ► So thank you for that.

00:29:31 ◼   ► And yeah, thanks for listening, everybody, and we'll talk to you in two weeks.

00:29:34 ◼   ► Drive safe.

00:29:35 ◼   ► [BLANK_AUDIO]