Podcast Search

Under the Radar

196: Not-So-Secret Plans

Select a time to play from there. The line being spoken is highlighted as the audio plays.

0:00:00Welcome to Under the Radar,

0:00:02a show about independent iOS app development.

0:00:04I'm Mark O'Arment.

0:00:05- And I'm David Smith.

0:00:06Under the Radar is never longer than 30 minutes,

0:00:08so let's get started.

0:00:09- So here we are about almost halfway through the summer,

0:00:12which is kinda scary, depending on how you define it.

0:00:15You know, we have a lot of work to do,

0:00:18and it's tempting a lot of times

0:00:20to keep what we're doing very secret,

0:00:23because we might be working on a brand new app

0:00:25or a major update to our existing app

0:00:27to take advantage of all the new Apple functionality

0:00:29that they give us in the next OS version.

0:00:32And a lot of developers keep those secrets

0:00:36until they're ready to release.

0:00:37A lot of developers are much more public about them

0:00:40and just say like, "Hey, yeah, I'm working on all this stuff

0:00:42"hope to have it done by September," or whatever.

0:00:45Where do you fall on that?

0:00:46Like, what are you working on?

0:00:47Are you willing to tell us what you're working on,

0:00:49and then how do you fall on that decision?

0:00:51- Sure, so I've definitely taken both approaches

0:00:55for the various apps that I've launched.

0:00:57Like the most recent app I launched, WatchSmith,

0:00:59was very much, like, it was relatively secret.

0:01:02Like, not in concept, like I think I had talked

0:01:04a little bit about what it was and where it was going,

0:01:07and certainly having a venue like a podcast

0:01:09is a great place to kind of talk about things

0:01:11before they're public,

0:01:13but without being quite as public about it.

0:01:16But I've also gone the other approach

0:01:17where I've just like, you know, talked openly

0:01:19and as much as I could about what I'm working on

0:01:21ahead of time.

0:01:22And I think this summer, I'm leaning towards

0:01:25the less secretive approach,

0:01:26and I don't know if exactly why,

0:01:29but it's like I am starting to like talk about

0:01:32in Twitter or blog posts or here

0:01:34about the things that I'm working on.

0:01:35It's like my main thrust for the summer

0:01:37is going to be the obvious updates to my existing apps,

0:01:40and then I'm also currently planning

0:01:42to launch two apps this fall.

0:01:44So I'm working on a widget-based version

0:01:46of WatchSmith, essentially.

0:01:48So like a highly customizable, configurable,

0:01:51schedulable widget system called WidgetSmith,

0:01:54and then I'm working on an update to an old app of mine

0:01:56called Check the Weather, which--

0:01:58- Oh!

0:01:59- I am thinking of bringing back as a test case

0:02:04for me to get really confident

0:02:07at multi-platform SwiftUI work,

0:02:11because I, like well, you know,

0:02:13Check the Weather was this app,

0:02:14one of my early apps like from years and years ago,

0:02:16and eventually it just didn't work out financially.

0:02:20That, you know, the difficulty with the weather system

0:02:22is that it requires an ongoing sort of subscription

0:02:25in order to pay for its data sources,

0:02:28and at some point Check the Weather just never kind of,

0:02:31it became financially not viable.

0:02:33But what's interesting now is that like,

0:02:35now we're in a world where rather than one-time payments

0:02:39are the norm, like subscriptions are much more the norm,

0:02:41and like I already have kind of an established

0:02:43subscription base from WatchSmith

0:02:45that I would expect with any of these things

0:02:47that there's kind of, in some ways,

0:02:48a bit of a shared subscriber system there,

0:02:51so that if you're subscribed to one of my apps,

0:02:53you'll have access to them all,

0:02:55and like the existing subscriber system base

0:02:57is such that I could easily support Check the Weather,

0:02:59and so I'm like planning to build an app called

0:03:02Check the Weather, it's gonna be different visually,

0:03:04'cause things are, you know,

0:03:05Check the Weather was designed for, I think, an iPhone 4?

0:03:09Screen, an iPhone 4? - Is it that old?

0:03:13Not even the 5?

0:03:14- It's very old. - Yeah, wow.

0:03:18- I remember when it was a big deal

0:03:21that they introduced Control Center,

0:03:24because, let's just get a sense of how old this app is,

0:03:27because one of its original conceits

0:03:29was that you would swipe up from the bottom

0:03:31to get the radar map, you'd swipe left to get hourly,

0:03:36you'd swipe right to get daily,

0:03:38and swipe up from the bottom to get the radar map,

0:03:40and then they introduced Control Center,

0:03:41and suddenly I couldn't have my upward swipe,

0:03:43because that was taken over by Control Center,

0:03:47and I was like, that was a big deal,

0:03:48and like, I mean, Control Center, I feel like,

0:03:49has been with us a long time,

0:03:51and this is, you know, a pre-iPhone 10's Control Center,

0:03:55where now it's in the top right corner,

0:03:56but like, for a long time, it was, you know,

0:03:58the bottom of the screen, but anyway,

0:03:59so it's been there for a long time,

0:04:01and so it's kind of fun to redesign it and work on it

0:04:05and build it in SwiftUI, and then be able to take in,

0:04:08you know, to sort of build something

0:04:10that I think works well from the Apple Watch

0:04:14all the way to the Mac, so that I can, you know,

0:04:16build something that works, like,

0:04:18naturally and natively in all those places,

0:04:20'cause increasingly I feel like that's gonna be

0:04:22an important aspect of my, like, skill set to develop,

0:04:26and my other apps don't really work as well with that,

0:04:29like, you know, a lot of my apps are very watch-focused

0:04:31or very iPhone-focused, because they're health and fitness,

0:04:33and so they require, like, you know, step counting,

0:04:36for example, like, I don't think the Mac

0:04:37is ever gonna get step counting,

0:04:39even if it has Apple Silicon inside of it,

0:04:41it's never gonna be, you know,

0:04:42you're not gonna be looking around your laptop

0:04:44counting steps, so anyway, so I'm working on

0:04:47Check the Weather, and I'm just reusing the name,

0:04:50but it'll be at sort of a different app this summer,

0:04:53and then, like, but I think for me,

0:04:55I've decided that, like, secrecy doesn't make

0:04:57as much sense this summer, and I think it seems like

0:05:01largely I've kind of ended up on that place,

0:05:04because if anything, these are, like,

0:05:07a, building a weather app is nothing, like,

0:05:09new or novel, and usually secrecy's primary benefit

0:05:12is to, like, to protect your novelty,

0:05:14to, like, slow down people being able to copy

0:05:17or sort of imitate it, and, you know,

0:05:20a weather app is a weather app, in many ways,

0:05:22so while I like my approach to weather,

0:05:24it's still just a weather app, and then, like,

0:05:26with Widget Smith, like, it's nothing,

0:05:29like, I've, like, the secret sauce or the approach

0:05:32or whatever is, like, way out of the bag with WatchSmith,

0:05:35and it's, like, it's basically the same app,

0:05:36just with a different end result of what you're scheduling

0:05:40and what you're displaying onto the screen,

0:05:41and if anything, I have the active desire

0:05:44to, like, scare off people, like, if someone else was like,

0:05:48huh, I wonder if I'm about making something like WatchSmith,

0:05:52but for widgets, like, I would hope that there would be

0:05:57less of an interest in doing that,

0:05:59if they know that I'm gonna do it too,

0:06:00because then you're, like, it's like,

0:06:02you're gonna have a tough time out underscoring underscore,

0:06:05like, I am, you're not, you're never gonna have

0:06:08as many widgets, you're never gonna have as many options,

0:06:10like, this is what I do, so, like,

0:06:13I kind of wanna stake my claim and say, like,

0:06:15this is what I'm working on, this is how I'm gonna make it,

0:06:18like, good luck trying to keep up, so,

0:06:21that's sort of where I ended up on secrecy this summer.

0:06:24- I think that's the most you've ever flexed in public.

0:06:26- Yeah. (laughing)

0:06:28- That's awesome, no, and well-deserved.

0:06:31I, I, just, sorry, can't get over that.

0:06:34No, I think I'm falling in a similar way here, like,

0:06:41we've talked about this a little bit before,

0:06:42but, like, I have, I have long since given up most secrecy

0:06:47for, like, what I'm doing, because what I'm doing,

0:06:51like, I used to think that it was super important for me

0:06:54to not let my competitors, A, know what I was doing,

0:06:58or B, beat me to, like, a good idea or a good feature,

0:07:03and over time, I eventually realized that

0:07:07most of my competitors don't try to beat me to features,

0:07:11like, it's not really that kind of race in most industries,

0:07:14like, you know, everyone has their own customers

0:07:16and their own roadmaps, and they're all doing

0:07:18their own thing, and occasionally, somebody will, like,

0:07:21launch a feature that's so compelling that it starts

0:07:23stealing users away from someone else,

0:07:25and then everyone else will start implementing that idea

0:07:26because they have to, because they're losing customers

0:07:28to it, but for the most part, that's not most features

0:07:30or most ideas, you know, most features and most ideas

0:07:34for apps don't really shift customers back and forth

0:07:37between them so much that everybody is desperate

0:07:40to, like, quickly copy things or to beat someone to market,

0:07:42like, that's usually not how things go for most things,

0:07:46and also, you know, most apps that are based upon, like,

0:07:51being the first to an idea, that is such a flash in the pan

0:07:56thing that even if you nail it and, like, quote, win,

0:08:00which that's not, you know, that's a pretty big if,

0:08:03if you're the first person to market with some great idea,

0:08:05like, the market, first of all, you might not be first,

0:08:07you might not even realize it, it might not be

0:08:09a great idea, you might not realize that either

0:08:12until it launches, it might not resonate with the market,

0:08:14you know, et cetera, et cetera, but even if it does,

0:08:17best case scenario, you have a big hit,

0:08:20you're gonna get ripped off in, like, two days.

0:08:22It's gonna take no time at all for all the people

0:08:25in the app store who look specifically to do this,

0:08:29to, you know, find what's, like, what's really hot

0:08:31and trending and rip it off as quickly as possible.

0:08:34Like, you can't beat those people, and so even if you succeed

0:08:39in, you know, quote, winning at the secrecy side of things,

0:08:42those victories are short-lived, so it's not really worth

0:08:45worrying too much about that, but I've always found, like,

0:08:48I, my app lives or dies based on what I do,

0:08:54not what my customers do in the vast majority of cases.

0:08:58This isn't always true, like, you know,

0:09:00if your customers are free and you're not, that hurts,

0:09:03right, but as far as, like, feature decisions

0:09:06or, like, you know, release planning and everything,

0:09:09you generally don't have to worry too much

0:09:11about what your competitors are doing,

0:09:12'cause for the most part, your customers will, you know,

0:09:15come or go based on what you do,

0:09:18not what everyone else does.

0:09:20So secrecy is largely overrated, and it's a thing

0:09:23that we all think instinctively that we should be

0:09:26super careful about so that no one else sees,

0:09:28but, you know, just like in real life, like,

0:09:30everyone always thinks that everyone else is thinking

0:09:33about them a lot more than they are,

0:09:34but everyone's too busy thinking about themselves

0:09:37to worry about everyone else for the most part,

0:09:39and that applies to apps, too, like,

0:09:42you don't have to worry so much about your competitors

0:09:44or strangers coming and ripping you off immediately

0:09:46with the loss of some secrecy,

0:09:48because that doesn't usually happen in practice,

0:09:50and if you're in that kind of business,

0:09:51it's gonna happen anyway, and you're gonna lose that race.

0:09:55- Yeah, 'cause I think, too, it's like,

0:09:57if your hook is purely about novelty,

0:10:02about something being new or different,

0:10:05like, that is a very tenuous place

0:10:08to build a sustainable business on,

0:10:11because sort of, by definition, as soon as you have launched

0:10:16your novelty has disappeared, and so,

0:10:20like, that can never really be,

0:10:21there is no path to a sustainable app

0:10:23that is purely based on novelty.

0:10:25Like, there is sometimes maybe, like, what is it,

0:10:27like, the first mover advantage,

0:10:28that you have, like, some advantage to that,

0:10:31but even then, like, it's, I feel like

0:10:34that is much more likely to be a short-lived benefit,

0:10:37and is, like, if anything, the harder challenge

0:10:42that we face as sort of small developers

0:10:44is just being, having people aware of your work

0:10:47or, like, knowing what you're doing in the first place.

0:10:51Like, that is a much bigger problem

0:10:53than being worried about, you know, sort of the,

0:10:55what you're building is being ripped off,

0:10:57and, like, I'm expecting to probably do,

0:11:00like, I might do public betas for these apps and things,

0:11:03like, trying to expand the audience

0:11:05and get people aware of them and make them known,

0:11:07so that, like, when it does actually come to public launch,

0:11:09there's just a broader base of interest,

0:11:12and, like, that seems much more useful

0:11:13and much more beneficial to me

0:11:15than, like, trying to start that process in September.

0:11:20Like, that's, it's much better off using whatever audience

0:11:25or whatever platform or voice that I have now

0:11:27to kind of get that ball rolling now.

0:11:29It's gonna benefit me way more this fall

0:11:33than if I try and wait out now,

0:11:34'cause obviously, like, when we talk about secrecy,

0:11:36whenever we're not necessarily talking about complete secrecy

0:11:39we'll try and talk to people in the press,

0:11:41or maybe we'll reach out to the app store,

0:11:43there's, like, you know, there's that black box email

0:11:45that you can email for the app store editorial team.

0:11:49Like, we're talking about it, but it's,

0:11:51I think the best thing we can do is to just, you know,

0:11:53tap into all possible avenues for promotion,

0:11:56and also I think there's also a value in a little bit

0:11:59about talking about things ahead of time

0:12:02to get a sense of what the problems, confusions,

0:12:05questions that you're gonna get about your app is

0:12:08ahead of time, so that it's, you know,

0:12:10you're exposing it to, if there are gonna be issues

0:12:13or problems that come down the road,

0:12:15you can potentially identify them, like, ahead of time.

0:12:18You don't wanna go too far down that road

0:12:19where it's, like, designed by committee,

0:12:20and, like, anytime someone on Twitter comments

0:12:22on something that you post and says, like,

0:12:24oh, it should be different,

0:12:25or they have an idea for a design change or whatever,

0:12:27like, you don't wanna get too wrapped around that,

0:12:29but it's still very useful to be, like,

0:12:31if you mention a feature or talk about something,

0:12:33like, if that creates excitement

0:12:35or if that creates confusion, like, useful to know.

0:12:38- Oh, totally, and it really is helpful

0:12:40to have that feedback early in the cycle,

0:12:41rather than thinking you have everything right in,

0:12:44you know, in your head, and the way that you do,

0:12:46the way that you're designing and implementing everything,

0:12:48your own choices and your points of view,

0:12:51and never showing it to anybody until it's out and,

0:12:53quote, done, because the market will give you feedback,

0:12:57and the market, you know, whether you think they should

0:12:59or not, like, they will, and there will be things

0:13:02you didn't get right in your first guess,

0:13:04and if you haven't shown anybody until your big launch,

0:13:08your big launch will probably be less successful,

0:13:11because not only will people not be excited about it yet

0:13:13'cause you didn't show anybody

0:13:14and nobody was beta testing it or anything like that,

0:13:16but then any design or business choice

0:13:20or functionality choice you got wrong,

0:13:22anything about your app that's confusing to people,

0:13:25that's all gonna affect your launch

0:13:27instead of being ironed out in the beta process

0:13:29where it should have been.

0:13:30- Yeah.

0:13:31- So, and so that's what you're doing, that's good.

0:13:35- Yeah, what are you doing this summer?

0:13:36- What I'm doing is very boring.

0:13:39I'm doing what I usually do this summer,

0:13:41which is being a huge procrastinator and slacker

0:13:45for the first half of the summer.

0:13:47So I have done almost nothing to adapt my app to iOS 14.

0:13:53Instead, I've been doing other projects.

0:13:56I finished up some things on the ATP CMS

0:13:59that had to be done, that is now,

0:14:00I think as of a few days ago, I think that's now done

0:14:04in the sense that I don't have to touch it now for months,

0:14:07for a long time, so that's good.

0:14:10I've cleared the way there.

0:14:11So I switched back to Overcast work,

0:14:14and I've been doing server-side problems.

0:14:17I've been addressing server-side problems

0:14:19for this last few days, and that's been

0:14:23absolutely productive, but not incredibly productive.

0:14:25What all this is really doing is,

0:14:27I'm a huge procrastinator, and what procrastinators know

0:14:32is that to get us to do something requires for it

0:14:36to be the second most important thing that we have to do.

0:14:39(laughs)

0:14:40The most important thing we have to do,

0:14:41we will procrastinate forever on,

0:14:44and we will instead look for side work

0:14:46that quote has to be done.

0:14:48This is one of the reasons why I'm the person in the house

0:14:50who cleans the kitchen, because there's always work

0:14:52to be done cleaning the kitchen in every house forever.

0:14:55Even when a meal hasn't happened in hours,

0:14:56there's always something you can do to clean the kitchen.

0:14:58And so that's me, because it's usually the second most

0:15:01important thing I have to do right then.

0:15:03So I'm really good at that.

0:15:04I was doing some office changes

0:15:09for some various home office needs,

0:15:11and I was really good at that these last few weeks.

0:15:13And doing some house logistical stuff,

0:15:17had to do all that, really good at that.

0:15:19But overcast work I knew was this big, scary, awful thing

0:15:23that I have to really dive in heavily with Swift and SwiftUI

0:15:27and jump forward, not only from iOS 13 stuff,

0:15:30but from iOS 12 stuff, 'cause I'm still based on iOS 12.

0:15:33So jump forward from that, adopt all this new stuff.

0:15:36It's a huge undertaking.

0:15:37And the upside of putting it off until very recently,

0:15:42or rather, I haven't even started yet,

0:15:44I'm gonna start probably tomorrow.

0:15:46(laughs)

0:15:47The upside of putting off the actual Xcode side of my work

0:15:51is that it's given us time to have beta two,

0:15:54and possibly even beta three by the time I actually start.

0:15:58And so every summer I benefit from this,

0:16:00where I'm never the first person to start discovering

0:16:04the new APIs, I'm never the first person to be filing

0:16:06all the early bugs.

0:16:07I'm thankful for all those people who do all that,

0:16:10but I'm not one of them, and I probably never will be.

0:16:13When I jump in, it is significantly more stable.

0:16:17Many of the biggest problems have been ironed out,

0:16:19many of the biggest bugs are gone,

0:16:21many of the beta rough edges are gone,

0:16:24and so I'm able to jump in, and even though I start late,

0:16:28I'm able to start faster and have fewer problems.

0:16:31And so I don't necessarily recommend this

0:16:34as a productivity course of action for anybody,

0:16:37because ultimately I do lose a lot of time

0:16:40doing side tasks and second priority things,

0:16:44but ultimately this is how I like to work,

0:16:48where I was able to do house stuff,

0:16:52'cause that was separate at any time,

0:16:53I was able to do server side work,

0:16:54'cause my server side stack is really mature and stable,

0:16:57and I knew exactly how everything worked,

0:16:59and I had to make a few changes and improve a few things,

0:17:01fix a few things, and that's been,

0:17:04I can go at full speed then.

0:17:06And then now when I land finally back at Xcode,

0:17:10I can really blast through it, I can work really fast

0:17:14and just get a ton done in a small amount of time,

0:17:17as opposed to slowly trickling out work

0:17:20throughout the entire summer

0:17:21and hitting a lot of roadblocks along the way.

0:17:23So that's where I'm hoped to be,

0:17:25I'm gonna begin that final part of that process

0:17:28probably in the next day or two.

0:17:30And so what I plan to do with Overcast,

0:17:32once I finally start working on it,

0:17:35is I'm gonna jump directly to requiring iOS 14

0:17:39for a branch of the code.

0:17:42And I'm not necessarily going to release it

0:17:45any time near day one, but I am gonna jump forward

0:17:49and skip 13 and go right to requiring 14

0:17:52and go right into heavy adoption of Swift and Swift UI.

0:17:56And I'm not gonna rewrite the entire UI,

0:17:58because frankly, that is just a ton of work,

0:18:01and none of my customers are asking me for that.

0:18:03But I am gonna rewrite a lot of it,

0:18:05and I think I'm gonna start out with the Watch app,

0:18:06as I originally planned last year when I said,

0:18:09I'm finally gonna learn Swift UI now, now is the year.

0:18:12(laughs)

0:18:13I said that all a year ago,

0:18:15and I'm gonna do the same thing this year.

0:18:17I'm gonna say that now, and I'm gonna hopefully

0:18:18actually do it this time,

0:18:21because my Watch app is kind of on fire.

0:18:25It's not in a good state, as it usually isn't,

0:18:28but it's in a particularly bad state right now

0:18:30for some of its customers.

0:18:32I basically made it a lot better for most of its customers

0:18:36and a lot worse for some,

0:18:37so I need to fix that.

0:18:39- Sure.

0:18:40- And I'm finally gonna really do it right.

0:18:43I kind of did it like half right this last update.

0:18:46Now I'm gonna do it fully right.

0:18:47I'm gonna actually bring over a local sync,

0:18:50or direct sync, rather,

0:18:51like where it syncs directly to the cloud

0:18:52and not through your iPhone, stuff like that.

0:18:55So it's gonna be a big job,

0:18:57and I also intend to rewrite most or all of the UI

0:19:00in Swift UI, which is also gonna be a big job,

0:19:02but this will teach me Swift UI, hopefully.

0:19:06- Yeah.

0:19:06And you went through a similar thing

0:19:09where you learned Swift UI first on the watch.

0:19:12Does that work?

0:19:12Is that a good path to take to learn it?

0:19:15- Yeah, I think so.

0:19:16I think what is,

0:19:17so my experience was I wrote the WatchSmith Watch app

0:19:22completely in Swift UI,

0:19:23and that was my first experience with Swift UI

0:19:26in any context,

0:19:27and I think what is most important,

0:19:31what I think from my experience in Swift UI,

0:19:32is the understanding that it is a complete cognitive shift

0:19:36in terms of how you build an app,

0:19:38how you structure it,

0:19:39the way in which you program,

0:19:40the way in which you have to think about programming.

0:19:43It's a different mindset that you have to be able to adopt,

0:19:47and I think it was the kind of development

0:19:50where there's a certain minimum amount of time

0:19:54that you have to spend with it

0:19:55before you will kind of click,

0:19:57and you'll see the matrix,

0:19:58and you'll kind of be like,

0:19:59"Oh, okay, I see what's happening now."

0:20:01At least that was my experience.

0:20:02And so I think the watch was a good place for this

0:20:06because if you think of it,

0:20:10in most, in sort of Swift UI,

0:20:12at its most basic sense,

0:20:14is about sort of breaking up your interface

0:20:16into smaller and smaller views

0:20:18that have sort of their own self-contained logic

0:20:21inside of them.

0:20:22That's sort of conceptually what you end up doing a lot of,

0:20:24is you break it down,

0:20:25and you have this view that has a few inputs

0:20:28and a few things that it displays,

0:20:31and then you compose your interface of many of these.

0:20:34And what's nice with the watch

0:20:36is that even your most complicated,

0:20:39largest UI that you're gonna build

0:20:42is relatively simple,

0:20:43is relatively small,

0:20:45like is a few hundred by a few hundred pixels at most.

0:20:48Like there's only so many things you can do in that space,

0:20:51and so it was a really nice constraint to learn in

0:20:56that now that I've now,

0:20:57like I'm building all of WidgetSmith in Swift UI,

0:21:01and like I'm essentially rebuilding a lot of the UI kit

0:21:04that I had done in WatchSmith on the iPhone app,

0:21:07and some of these views are very complicated.

0:21:10Like I have my crazy 24-hour clock scheduler system,

0:21:14where you can drag different wedges around

0:21:19and schedule things and adjust the start and end time

0:21:21of when you want a widget to show and all this.

0:21:23And it's pretty like,

0:21:25many hundreds of lines of UI kit code to make happen,

0:21:30and I've rebuilt that in Swift UI,

0:21:32and I had the confidence to tackle it

0:21:34because I've done so much work on the watch.

0:21:37And so I definitely recommend,

0:21:39it is a great place to start,

0:21:40and I think it's a smart thing for you to,

0:21:41to start in an area of your app,

0:21:44like if you're gonna be doing any kind of conversion work,

0:21:47where a part of your app is going to become Swift UI,

0:21:51it feels like starting in a place that has less visibility

0:21:55is a great sort of thing to go with,

0:21:57where if there are rough edges,

0:21:59if there are issues,

0:22:00both in terms of with the platform,

0:22:01which is less the case now,

0:22:03like Swift UI seems relatively stable now,

0:22:05but if there's rough edges in your understanding,

0:22:08and as a developer,

0:22:10the first time I built a lot of,

0:22:12like if I was going to go back

0:22:13and rewrite a lot of the WatchSmith Swift UI work,

0:22:17it's like I would write it differently now.

0:22:18I have a better understanding of how to use the APIs.

0:22:20I know what's gonna ultimately catch me out

0:22:22and what are gonna be the problems.

0:22:24And so being able to leverage that going forward

0:22:29is a good place to do it on the watch,

0:22:31which has fewer users whose interactions

0:22:34are gonna be more lightweight

0:22:36than messing around with your main podcast list screen

0:22:40or something where it is like 80% of the use of your app.

0:22:44So if something is funny or problematic

0:22:46or not quite how you like it,

0:22:48it will show off in a much bigger way.

0:22:50So I think that seems like a great place

0:22:51to sort of camp out and spend time learning.

0:22:55And I think also it means that you can do things

0:22:58that are just not possible in WatchKit.

0:23:00So if you wanna make a good watch app,

0:23:03you have to use Swift UI,

0:23:04so you may as well go there and sort of get started.

0:23:09- Yeah, that's good advice, thanks.

0:23:10Yeah, 'cause I do face this kind of roadblock

0:23:14in my motivation and in my mind of like,

0:23:17I want to tackle Swift UI in the main app,

0:23:20but that's so intimidating

0:23:21because I don't know it at all yet.

0:23:24And so it's like the idea, my main root screen

0:23:28and the whole framework that does like the three column stuff

0:23:31I would love to tackle that right now

0:23:33because that would directly make the Mac app easier to make.

0:23:38But I know that like I just am nowhere near

0:23:42that level of skill yet to do that.

0:23:44Like if I was building a brand new app from scratch,

0:23:46that would be different.

0:23:47But I'm like taking apart this app

0:23:49and putting it back together like mid-flight

0:23:52in the middle of a surprisingly complicated app.

0:23:55Most people who would suggest like,

0:23:57oh, just rewrite the whole UI.

0:23:58Like I don't think you understand

0:23:59how much UI there is in a podcast app.

0:24:02There's way more than you think.

0:24:03There's way more than I thought

0:24:04when I started making one, that's for sure.

0:24:07Yeah, and so there is just, there's so much UI.

0:24:11And that's part of the reason why I want to do this

0:24:13because my UI is this massive amount of like code liability

0:24:18and technical debt and bloat in my app

0:24:22that I'm trying to make lighter.

0:24:23I'm trying to make it easier for me to deal with my UI.

0:24:27And so ultimately adoption of 50Y should do that.

0:24:29But in the meantime, the road to get from here to there

0:24:32has to start somewhere.

0:24:34And learning how to use SwiftUI

0:24:37to do something very complicated at first

0:24:39is probably not the best idea.

0:24:40So yeah, I think I will start with the watch app,

0:24:43bring over all the data layer stuff,

0:24:46and then tackle the UI side of things.

0:24:49And hopefully that should be a simple enough problem set.

0:24:53I mean, you know, it's like a three painless view.

0:24:55Like how hard could that be?

0:24:57So it should be a simple enough problem set

0:25:00that should give me some familiarity and comfort

0:25:04with using SwiftUI.

0:25:05And then I'll be able to think about what parts

0:25:08of the main app to tackle with it and in what order.

0:25:12- Yeah, and I think too that you have the benefit

0:25:13of coming at, like coming at watch development

0:25:18with SwiftUI this summer is gonna be a lot less painful

0:25:22than it was last summer.

0:25:24It's come a long way in terms of capability,

0:25:28in terms of structure and reliability.

0:25:30And I think also, like Apple has been very specific now

0:25:35about how to lay out your app

0:25:39and what it should do and look like.

0:25:41And they got rid of contextual menus.

0:25:42And with that, they've sort of changed the,

0:25:45it's like their human interface guidelines

0:25:47a lot around the watch.

0:25:48And so there's, in many ways, like a lot of things

0:25:51are easier because they've kind of, Apple has explicitly said

0:25:55they want everything to be obvious and intuitive.

0:25:57And you just like, if you wanna have a button,

0:25:59you put it here.

0:26:00And it feels much more prescriptive now,

0:26:02which in some ways I think is a nice benefit

0:26:04rather than kind of feel like you have to find

0:26:06all that stuff out for yourself

0:26:08and kind of invent what a watch app is.

0:26:10I feel like this summer Apple has made a much clearer vision

0:26:13of like, this is what a standard watch app should be,

0:26:19how it should behave, what your controls should look like

0:26:22and that type of thing, which I think is just a very big help

0:26:25in terms of also, like it's a,

0:26:28you have a much stronger starting point doing it now

0:26:31than you would have if you'd tried to do this,

0:26:35this list last summer.

0:26:36And I think too, it's a good time,

0:26:39generally just as like, you're gonna have to learn SwiftUI.

0:26:44And I don't see you ever tackling it

0:26:46in the iOS app for a while.

0:26:47And so you gotta, I think you either have to start it

0:26:49on the watch or you have to start it on the Mac.

0:26:51And it feels like starting it on the watch

0:26:53because it's gonna be the most different anyway,

0:26:55whereas once you start working on the Mac,

0:26:57that code would need to sort of naturally flow back

0:27:00into the iOS app probably, whereas I don't expect

0:27:03a lot of overlap necessarily between the watch

0:27:06and the iPhone app.

0:27:07So like you have a little bit more flexibility there.

0:27:10- And it seems like, my approach usually is to work

0:27:13from the bottom up as opposed to the top down

0:27:16in design and code structure.

0:27:18So usually I do things like I'll write a very,

0:27:21very rudimentary UI and then really flesh out the data layer.

0:27:25And the data layer is where I put all my time

0:27:26and the audio layer.

0:27:27Like I love doing all that stuff.

0:27:29And then eventually I'll build the UI

0:27:31to be a little bit more functional on top of that.

0:27:33But for the most part, my heart is not in the UI.

0:27:37Like I don't love making UI stuff.

0:27:40And it weighs me down conceptually and psychologically.

0:27:44And so going this direction is smart,

0:27:46but yeah, I think you're right.

0:27:48Starting on the watch is so much easier.

0:27:49And I'm glad to hear that you think it's gonna be easier

0:27:52this year because similar to how the old app review quote

0:27:57of running to the press never helps is hilarious

0:27:59'cause running to the press always helps.

0:28:02Similarly, like procrastination doesn't pay in theory,

0:28:05but actually it seems like in reality procrastination

0:28:07is a really good idea on pretty much

0:28:09any new developer technology.

0:28:11(laughs)

0:28:12- Yeah, well I feel like it has exactly the same,

0:28:15there's this like, it's a graph where it pays,

0:28:19it pays, it pays, and then suddenly

0:28:21like it catastrophically does not.

0:28:23- Yeah, well that's the pattern of every procrastinator.

0:28:25Like we're used to this.

0:28:26We can do this.

0:28:28Do nothing, nothing, nothing, nothing,

0:28:29and then do it all at once.

0:28:30Like that's how we work.

0:28:32(laughs)

0:28:32- Yeah, and so you just gotta find that sweet spot

0:28:34where your procrastination has not overcome

0:28:37the volume of the work that needs to be done.

0:28:41Like as long as you can find that sweet spot

0:28:43where you've procrastinated enough for things

0:28:45to stabilize underneath your feet,

0:28:46but not so much that there's now this giant mountain

0:28:49you have to climb.

0:28:50Like as long as you can find that sweet spot,

0:28:51you're in a good place.

0:28:52- Yes, sadly that's a very hard thing to do.

0:28:54And that's typically where people like me fail.

0:28:57(laughs)

0:28:58Because we're very good at the do nothing for a while part.

0:29:01Yeah, we'll get to it.

0:29:02We'll start soon.

0:29:03We'll start next week.

0:29:04We'll start tomorrow.

0:29:05We'll start soon.

0:29:06And then, yeah, then we do fall off the mountain at the end.

0:29:08But it also can be argued that it might not necessarily

0:29:12matter how fast you are to market with certain things

0:29:14we said earlier.

0:29:15(laughs)

0:29:16- Oh, sure.

0:29:17I think whether or not you have your,

0:29:18when exactly your watch app is ready

0:29:20is a more minor point than the fact that it starts

0:29:23to improve it in general.

0:29:25And honestly, I think it's much more about,

0:29:27it's less about how this will benefit Overcast

0:29:30and more how it will benefit you.

0:29:32And how it will make you feel more confident

0:29:34about going into SwiftUI, which clearly is something

0:29:37that at some point you're gonna have to tackle.

0:29:39So like it's a personal development rather than

0:29:41an app development sort of priority in that way.

0:29:43Fully agreed.

0:29:45Thanks everybody for listening.

0:29:46And we'll talk to you in two weeks.

0:29:48- Bye.

0:29:49[BLANK_AUDIO]