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]