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]