Welcome to Under the Radar, a show about independent iOS app development. I'm Marco Arment. And I'm David Smith. Under the Radar is usually not longer than 30 minutes, so let's get started. So congratulations, Marco. You shipped a big update. Thank you. A big update, which I know you don't use those kind of adjectives without giving them some thought. So it is a big update. You shipped essentially an entire new app.
on one platform so that's no small thing especially given the platform that it is I can tell you from experience It is not an easy platform necessarily to turn things around on. So congratulations on shipping a completely new rebuilt Watch app, which is perhaps the fourth time you've rebuilt the Watch app, I think. I think that's about right. Maybe fifth. I don't know. It's been a while. that I've seen some stuff.
Congratulations on that. Thank you. Anybody who has a watch component to their app, especially if you've been around since the beginning of the Apple Watch, you've probably rewritten your watch app at least three times and possibly more because, you know, the watch kit, the original watch kit had, you know, that was, terrible and then like
Then the new version of WatchKit, then SwiftUI, and now single target and advances in SwiftUI. There's all these different widgets versus complications. There's been so many changes in watchOS since its launch and in how... how we can and should develop software for it. The good thing is, It is much less painful now than it was in the past because the... Simulator is better and when building and running on device, it is faster and more reliable. Now, it is still not fast.
And it's not reliable. It is just faster and more reliable. And that's saying a lot because it came from a pretty rough place in the early days. I have so many superstitions about that, by the way. It's one of those funny things of getting... things like this debugger to connect to the Apple Watch during development. This is a complete aside.
I know we only have 30 minutes, but I just got to get the stories in of the things that I do. I have a particular cable, like a Thunderbolt 5 or 4 cable that I always use to connect my phone to when I'm doing debug sessions on my watch. I don't think that should make any difference. What are you doing? because maybe it'll help. I don't know.
You know, and it's all these little, it's like, oh, if it starts acting funny, it's like reboot everything, turn everything off, turn it all back on. And it's just like, these are these things that I do and it works well enough now that it doesn't get in my way in the way that it maybe once did. But, you know, and maybe it's all my...
collection of superstitions holding it all together that's uh really the key to making making watch development successful for myself these days oh yeah because there's so yeah there's so many cases where like oh now the the trust this computer dialogue has popped up twice one's overlapping the second one so one of them will fail
Then you have to unplug the phone, replud the phone, reboot the watch, reboot the phone. Don't do it in this order. Do it in that order. The cables do help if you can, I think. I've never actually measured this, but I think. If you use a cable compatible, that's USB 3.0 rated. I think it installs to the phone a little bit faster, but that could be wrong. But there's so many hoops you have to jump through to get something running on the watch. But mostly, once you have it working once.
If you then edit the code and hit build and run again, usually it goes pretty well for... subsequent builds and runs on it in that same session. The problem comes when you have to set up a new watch or delete the app and reinstall it. Then you run into all of these problems. Or once the OS version of anything changes, Copying symbols. Copy and cache files. You might as well just go do something else. This is going to take 45 minutes.
Except you can't actually go very far. No. I guess if your watch is on your wrist. Right, exactly. You don't want to interrupt it. If you take it off your wrist, it will lock. And I don't know if that hurts it. So I have sometimes just sat there watching that screen. Like, I don't want to move. I can't go anywhere.
But anyway, this is all very besides- Yeah, developing for the Apple Watch. It's definitely, like, if you are at all unmotivated to do software development that day, Trying or having to do something on the watch is just death.
because there's so many discouraging moments or delays or times when you have to be fighting the tools, which is always, you know, discouraging. That, like, it's... And this is part of why, like, This was very poorly timed for me, this release cycle, because I thought in the fall, I'm going to have all this time after I did the rewrite, launch the rewrite in the summer, in the fall I can do the watch app, and then I'll be all set.
What happened instead was the rewrite took longer than I expected. What a surprise. There were more bugs lasting longer into the fall than I expected there to be. What a surprise. That happens with every rewrite ever in software history. There were a lot of things people didn't like about that I had to address. Again, what a surprise, every ride ever. But,
The result of all that was that I got started on the Watch app later than I thought. And then the restaurant stuff started in the January, February timeline. Then I had to deal with, you know, setting up the restaurant accounts and getting all that stuff going and, you know, doing all my projects there. And so a lot of this stuff got... kind of backburnered for a little while and then i came back to it so what i was coming what i had backburnered was a like Three quarters done. Watch Rewrite.
migration to the SwiftUI lifecycle for the main app, a couple other fairly significant architectural improvements in the iOS app, plus, again, this entirely new watch app. That was all then paused. And then I had to come back to it like three months later and finish it. And that was an absolutely terrible process of like getting getting my brain to unfreeze to get back into the habit of writing code at all
And then to re-familiarize myself with where I had left this project and what still needed to be done and then actually getting myself to do it. And when that thing you need to be unfreezing and getting back into is a three quarters done watch app. that's very difficult. And, you know, and I will say too, like I was, I was getting into this at a time when I was also very discouraged by the feedback I was receiving on the app. The restaurant's been open now for about a month.
And I love going into the restaurant and going over and shaking hands at tables and stuff and meeting people because The feedback I get there is almost universally positive. People in the community are very happy that we bought the place. They're very supportive. Everyone loves the place. They're thankful to us. It's great, and the staff is very happy, and it's going really well.
And then I look on my feedback for Overcast, and everybody hates me. Well, not all, but largely there's a huge percentage of negativity.
people who still don't like the rewrite or who have, like, their one pet request or their one star in me until they get, you know, or they're running into a bug that I don't know how to fix. Like, there are just so many conditions like that where it's like, The feedback I get from software is so much more negative than the feedback I get doing the restaurant stuff that it made it very difficult for me to... push myself back into the software world.
Ultimately, I love writing software. I love working on Overcast. And so I'm going to keep doing it regardless. But there were just all these factors kind of stacking up, like the time I had taken away, what I was working on being a watch app and all the friction that comes with watch apps combined with, you know, the... the pretty large difference in feedback attitudes that I get from these two parts of my life. It was really hard to push myself to get back into it. It was very difficult.
Ultimately, I also do get a lot of satisfaction out of writing software. That's one of the reasons I love doing it. I love the feeling of doing it. I love the challenge. I love the building aspect. And so I pushed myself to get back into it, and I realized, and again, another huge contributing factor to the kind of malaise or brain freeze around all this is The attitude that we're getting from Apple towards developers recently is awful and toxic and just incredibly... Just sour and ugly.
And so, again, that also was kind of a hindrance of, like, in the midst of all these other problems, also I think the relationship between Apple and developers is worse at this moment than it has ever been in the App Store history, which is saying a lot. So even that's kind of like, you know, what am I doing this for? And the answer for me, what I have come to is,
You know, if I'm not doing this for the people in my community, because they don't care about Overcast, like the people at the restaurant, the people in my town, they don't know what I do. They don't care. I'm not doing it for them. I'm not doing it for certainly Apple. Apple doesn't care about me at all. They've made that very clear. Again, there are a few people in the company who might, but certainly at the top, they categorically do not. So I'm not doing it for Apple.
I'm not even doing it for all of my customers, I guess, because so much of the feedback from them is negative. I'm doing it for myself. That's like what I've come to is like, I want to do this because I use this app every single day and I'm doing this for myself. And that's kind of been, you know, that sounds dismissive maybe towards, towards like customer needs and customer, you know, expectations. But what I have realized is that I have been most successful with Overcast. When I have
done something that I wanted it to be. When I've made a change that I wanted, written a feature that I was going to use, That's what has brought me the most success. And it's not because I am somehow magically always right about what customers want. I'm not. Far from it. But it is that when I lean into what I want, then the app appeals more to the core group of customers, which is people who also happen to want what I want. And I know it's kind of self-selecting. Obviously, I see that. But...
That actually works really well for me because when I optimize for what I want, I write those features with heart. I'm indulging myself in kind of edge case features or behaviors or designs that just give me joy or value. And when that lines up with what other people want, Those are like my most passionate customers. And those are the ones that like...
They're not going to just switch to a different app at the drop of a hat because they can't because no other app is designed the way I design my features that I use for myself. So I realize I'm doing it for myself first. and my customers second, and, you know, everyone else, you know, like Apple, a distant third.
It's interesting you're saying that because, like, I think there is a phrase that has come through my head a lot recently. It was just, like, trying to do my best work. And, like, I don't really know. And it's, like, that's just the way that I often think about.
what it is i'm doing here like you and i've been doing this a long time like we've and and there's an element of like what over the course of the last 17 years 18 years whatever it is like long time when have i been most satisfied with the work that I'm doing. as well as made the things that I'm most proud of and what has allowed me to do those things, like what habits and strategies and things that I'm doing in my own work and professional life.
that allows me to do that best work. And I think very often it very much just comes down to like what you're saying. It's like doing things that are interesting to you. And there's a certain intrinsic motivation to that that allows you to make things that are more interesting and things that are better. It's, you know, things that you can do to help, you know, in this case, like unfreezing yourself. There's one part of that is having the right motivation, having the right reason to do something.
and to be doing it for a reason that gets you over the hump because so much of what we do, I feel like there's this There's an exciting beginning when you work on something new. And then it's like, you know, when you, when you, when you describe your, your watchOS update as being like whatever three quarters done, it's like, I am, I know that point very, very well for there's a reason it's three quarters finish.
There's a point that so often will come where you're done with the exciting, the fun, and the easy, and you are left with the... difficult challenging and unsure um and you have to be able something's gonna have to pull you through that that chasm in the middle of like oh how do i how do i get there i need to work on work through this and
I think sometimes it is what you're saying, that you just have to have a good reason. You have to have something else that's getting you there, and it's very difficult for that to be making your customers happy. In some ways, that may be... In some ways, that works, but in my experience, it is challenging because your customers aren't a single person. They don't have a singular perspective. They don't have a singular set of desires.
they can become this like sort of phantom in the back of your mind of a particular thing and it can be very fickle and based on who's the loudest or different motivations, but if you know who you are or you know who the trusted testers or users of your app, who you care about their opinions in a more specific and intangible way.
And so I think that does really help get through that, get over the three quarters part by having a good reason. And I think the nice thing about that approach is that it is not
dependent on the environment and the context and the drama and whatever's going on external to that. I am just as much excited about making apps now than I was years ago because I enjoy making apps and I like making good apps and I like making apps in a way that teaches me something every year and allows me to learn new skills and to get better.
and to grow as a result. And that doesn't change. That's not related to current... situations within the store, within policy, within the community, whatever thing is happening, that aspect of it is somewhat immutable. and that is very helpful to keep you going through. In some ways, when I saw that you had published this update, I was particularly happy because I know it was more of a journey to get to.
than some because you have a lot of other things going on in your life that are competing with this interest and what you're doing is not an easy thing. You know, rewriting and changing Swift to high life cycles and all these things that are going on. Like, these are not small things.
And so it's kind of just, it's nice to see that you got up to the other side of that, you know, of that hill and you are now able to look back and be like, yeah, you did something. You accomplished something. That's cool. And that's, you know, that's, that has.
positive impacts for your customers for sure but there's also an element of it's like a positive impact for you and that you know from my perspective that's the exciting part because that's like the thing that is more long-lasting than just, oh, some users might get some nice features in this update.
Yeah, we've talked before also about inertia. When you're going... you can it's easier to keep going like once you kind of once you have unfrozen your brain after a while away like it once you're going then like so like you know already right now like i just shipped this release I didn't just stop. Now I'm rewriting the CarPlay interface. Because that's something that, like, it irritates me every day when I'm using CarPlay. And so, like, there's, like...
i'm like on a roll now and i'm kind of rolling into And once we get those first developer betas for iOS 19, I'm sure I'm going to have work to do, possibly a lot of work if the rumors of the redesign end up panning out. I want to already be on a roll when we get there. I want to have a rolling start into that race, you know? And it's good, too, because right now I'm motivated to do things, but I'm motivated to do things that are not necessarily UI-related.
I don't think CarPlay is going to have a big redesign in a few weeks. That seems unlikely. I can do stuff there. I can work on architectural stuff. I've done some server work that was kind of building up over time. I had to expand a server and replace another server and do a couple of tweaks here and there.
I'm struck by how much work I have done in the past. And this has actually helped me a lot in motivation and feeling good about my work. Part of my server work was I had to stand up to new servers. And I have a script that does this that I've written over time. And so I type in what I want, the plan size I want, and the role that it serves. And I have all these different configurations. This is a database. This is a web server. This is a backup server. Stuff like that.
At the end of the script, I had a line that says, don't forget to run so-and-so on so-and-so server to update the private net. And I'm like, oh my god, I definitely would have forgotten that. But my past self, my past self who wrote all of this software and all these scripts and everything, knew that my future self could use a little bit of help sometimes remembering things.
So, this script that I wrote to stand up a server, first of all, despite not having started a new server in probably a year, maybe more, it still worked flawlessly. I had to do nothing. I had to change nothing. I had to edit nothing. It just worked. and then my past stuff also reminded myself oh hey by the way do this to run this other script that you might not be remembering
In that moment, I realized, like, I really have built up something here. And... it's easy to get to like when you've been away from it for a while it's easy to kind of start feeling down like man what have i really done like there's so much work to do or maybe i'm not doing enough maybe i haven't done enough and that helped kind of ground me like oh no i i've built a lot up here and it seems daunting to get back into it now when i when most of it has fallen out of my l2 cache in my brain but
I also, like, it's promising that, like, oh, I'm still building on what I have built before. I'm still using what I have built before. I did a lot of work in the past. I have built a huge foundation. And there is still utility in that. And I don't... I don't have to relearn everything from scratch. I don't have to rewrite everything from scratch. I can build upon what I've done in the past, and that's substantial and something that I should be proud of. We are brought to you by Terminal.
And this is that cool e-ink device that is like a status board. So if you've ever opened your phone to do something simple like check the weather and then found yourself doom scrolling 10 minutes later,
There's a single-purpose device that you might want to check out. It's called Terminal. It's an e-ink display that connects with hundreds of popular apps to show you information you want to see without distracting you like a cell phone or a tablet. Most of their hardware and software is open source, and there's no subscription fees. So you just buy the device once and you own it forever.
You don't have to write any code to use Terminal, but they do also have a simple developer platform if you want to with an in-browser plugin builder. Over 3,000 developers have already built over 6,000 custom plugins. I personally, before they were a sponsor, I bought my own terminal. And I actually bought a second one, too.
because I like having things like a weather display. I had a countdown to the date the restaurant was going to open. I had that running all winter long, so we kind of knew how many days are left until this big thing happens. So it's been great.
terminal is also compatible with apple shortcuts they have a few community recipes templates and help docs to get you started basically you can build a plugin by setting up a shortcut to just ping their webhook endpoint and that will generate screens that will show up on your terminal display There's no requirement to host anything yourself. Terminal just turns your Apple product into your own personal server.
Earlier in 2025, they were also given a shout-out by several YouTubers, including Snazzy Labs. They've been sold out until this week, so if you want to help stay focused Without cutting yourself off from the world, check out Terminal. Go to use Terminal. That's spelled T-R-M-N-L. So Terminal without any vowels, basically. Use terminal.com slash go slash radar and use code radar for 15 bucks off your order for one week only.
That's use, T-R-M-N-L dot com slash go slash radar, code radar for 15 bucks off, and then you own it forever, no subscriptions. Our thanks to Terminal for their support of Under the Radar and all of Relay. So some other thing that came to mind is, like, I think I'm so delighted that you're finding, like, reminding yourself coming back into it, you're unfreezing your brain, you're getting back going, and, like, you can remind yourself of, like...
that you build something awesome and it has value and there is something there. And I think something that came to mind to me is how something that a habit that I've gotten into over the years that is in some ways trying to establish a baseline amount of inertia that is separate from the actual work that I'm doing.
and how helpful I think that has been for me for... It's a funny way to say it, but having a supple mind or being able to be responsive to new things. Because one of the things I am most worried about in this... in my career is that I will become too focused on any one thing and lose the ability to be able to learn new things quickly and well.
I think that ties into a lot of these kinds of things. It's useful to continue to have novelty. Sometimes I'm working on stuff that is not exciting, and sometimes I'm working on stuff that is not exciting. Recently, I've been doing a lot of work on paywalls.
which are useful and important for the business, but are not exciting. They are not something that I get excited about. And so instead, like, while i've been doing this in the background i've also been working on a watch app you know like of course you have of course i have right this is what i do and like what i'm doing there it's like i'm working i'm going on this big long hiking endurance challenge expedition next week
And I've been building a purpose-built, I think we mentioned this in the Battery Life episode, but I've been building a purpose-built watch app that is focused around navigation for long periods of time. So like being able to use full-time navigation on an Apple watch with maps for like 20, 25 hours at a time.
And it's been a fun project. And the reason I always try and have one of these things on the go, like I have this side thing that I'm working on that I can invest in. It's not my main time, and I try very hard to not let it overtake. things where I don't look up and I've spent two weeks working on the side project when I should have been working on the real project. I try and very much more like I'll spend an hour or two every couple days working on this thing as it makes sense.
But I think there is something good about keeping some amount of steady state, interesting, fun work that you're doing because you want to, because you're interested in it, because you are... scratching an itch that you have or think you may have or like those kinds of things. And I find that that is super helpful for keeping
I guess trying to keep my brain thawed in the analogy you're having of having to unfreeze your brain. And that is the other side of it. And it doesn't always work. And sometimes I have to come back. You know, life will sometimes just mean that you can't do that. But it's a habit that I've gotten. And I think when I think too about how like in a couple of weeks, I'm going to have to learn a whole bunch of new stuff because Apple will likely dump.
here, this whole bunch of new docs, a whole bunch of new frameworks, a whole bunch of new stuff, and I'm going to have to weed through it and find stuff. the more supple and responsive I can be, the better. And I think what I've found is that, yeah, that sense of inertia is so powerful that if you're always making something, It's easier to make the next thing. It's easier to keep going. Now that you've done the Watch app, it's easier to work on the CarPlay app. It'll be easier to work on iOS 19.
And that inertia either will sometimes come from circumstance, like in your case, working on the watch app was the thing that got you. sort of moving again. And in my case, I needed to have some other project that I was working on in the background, because while I was working, the work I was doing was not the kind of work that was going to keep me engaged and motivated. It was a bit much more...
sort of straightforward kind of grunt work that if circumstances were such that I didn't need to do this, I would always put this kind of work off. But I didn't. I needed to do it. If there was a reason to do it for the business, that's great. But it was a helpful thing for me to keep this background other process that's just running there, keeping me engaged, keeping my mind going.
challenging me with interesting problems that I have to solve. Those are the things that keep me engaged and going and then kind of unfreeze my brain when the situations are such that I have to come back to real work and I have to open up my difficult problem solving or hard decision making. problems. It's a funny thing about the job we have, though, because we have to do those things and make those decisions ourselves. It has to ultimately come from us.
because our circumstances will only to some degree dictate what we actually work on. Oh, yeah. And I found one of the... One of the best ways to spend my time in terms of like bang for the buck for my own personal both mood and also for coding inertia. is to tackle one small thing like like when you're first trying to get back you're first trying to unfreeze your brain we talked about this before like
Tackle one small feature or fix one small annoyance. Tiny, tiny stuff. Like, oh, this tap zone has always bothered me on this button. Or just pick something tiny. and make that thing better or fix that one problem. That is hugely motivating. Even if there's not a lot of commercial value for you to do that. One of the reasons I'm rewriting CarPlay now is because
There are some things about it that annoy me. It's not that there's a huge reason for me to rewrite it. If I look at what's the best bang for the buck, this is not that. This will not be that. And then what am I going to work on after CarPlay? Well, I have some ideas on some features that nobody's asking for, but I want to do. That's what I wanted to do. And after such a long time of not getting releases out there and being used on other projects,
It feels really good to get something out there and to get my brain going. And over time, that will have value in ways that I can actually, like... justify as like commercially relevant like in time the inertia that i'm unfreezing myself to get going again to start building things some of which will be just for me and will just be kind of indulgences or fun side projects
Some of it won't even be overcast. Like when I briefly learned LaTeX to make a template for my Remarkable. There's no direct commercial value to that. But it was satisfying. Or, you know, I have like a shell script to automate certain things in my life that have nothing to do with overcast. Like, great.
Or I can improve something with the restaurant technology. There's all sorts of things I can do to kind of get myself going again that are motivating. And it might not have direct commercial value now or ever, but... Being motivated and getting myself going again, that does have direct commercial value. It just takes some help to get there sometimes.
And I think there is something to do with this. It's that weird thing that so often the commercial value will come from doing interesting things well. If you chase the commercial thing directly, it may feel like you're chasing a rainbow. You're never actually going to get there. You're never going to actually accomplish it. Whereas if you just instead focus on something tangible that you can... It's like, what is an interesting problem that I can solve well?
That is almost certainly a much better path to eventually having a successful or at least sustainable business, which I think is so much of what... ultimately, we want. I just want to have a sustainable business where I can keep solving interesting problems well. That's what I want. And so far, history has shown that if you keep solving interesting problems well and you have do have habits and behaviors that keep you moving forward and growing and learning.
The rest will to some degree take care of itself, and there'll be ups and downs in that process for sure. But ultimately, if we keep moving forward, we keep going to a better place, either in terms of our products or our own personal development. Thanks for listening, everybody. I'm going to talk to you in two weeks. Bye.