00:00:10 ◼ ► As we approach WVDC, I am in a huge time crunch, as I'm sure you are, you know, just trying to get our apps ready, because we know that our summer and our fall and, you know, the rest of our year is about to be at least probably likely derailed.
00:00:34 ◼ ► Yes, redirected and largely affected by whatever happens at WVDC and, you know, especially now, you know, this time that a new platform is so heavily rumored that new platforms seem to be the most effective derailments for developers' plans, with the exception of maybe when the entire OS changes its theme or adds dark mode.
00:01:23 ◼ ► You're doing this at the same time that I'm in the middle of this, you know, huge overcast Swift UI basically rewrite and I spent three days for the last few days trying to fix this little tiny animation bug where I built my expanding cells for the episodes where you tap the cell and it expands to show, like, that row of orange buttons on the bottom.
00:01:49 ◼ ► Not only did I have to get that animation exactly right, but it was whenever the little subtitle shows the little cloud symbol for a streaming episode, the little cloud would flicker by like half a pixel as the animation would go.
00:02:35 ◼ ► You're better off than me. But it strikes me as this is always a huge struggle that I have, that I fight and that I often lose trying to maintain the balance of the amount of time I'm putting into something for the gain it will get me.
00:02:52 ◼ ► And what is a responsible amount of time to spend when I'm in a time crunch? Because right now we are in a significant time crunch in this WBC lead up. This is not a time to be opening up new doors that just lead up out into the weeds.
00:03:19 ◼ ► But sometimes you gotta do that just for your own satisfaction. I would feel crappy if I shipped this app knowing that there was this little tiny animation flicker every time you tapped this icon.
00:03:38 ◼ ► Even though many times things are shipped for much better reasons than that. Like yeah, that person did notice but their boss wouldn't let them fix it because it would take two weeks or whatever the case may be.
00:04:02 ◼ ► And I think this is just like fundamental, it's like fundamentally like the process of design is finding this line is making these trade offs between things be like what level of polish sort of the how many levels of detail are you going to polish your app to?
00:04:23 ◼ ► How many places are you going to try and just make it perfect? Where are you going to spend that effort to optimize something? Where are you going to abandon a behavior if you can't get it quite right?
00:04:33 ◼ ► That's like a path that increasingly I find myself sort of having in the back of my mind. Is getting this feature perfect worth the effort it would take or is there a better way to do this to structure it?
00:05:28 ◼ ► By the way, for the record, honestly, that is usually the right call for things like semicolons. If there's a better way to write this sentence where you don't need these kind of crutches that can harm legibility, you're better off not using them and just rewriting the sentence.
00:05:45 ◼ ► And I think that's exactly the same thing in design so often is the case. It's the sense that in order if I need to do all of this really clever fancy work in order to make it happen and to make it a good UI, is this the best UI?
00:06:01 ◼ ► Am I going down a route where I'm creating something that is going to be brittle and fragile and confusing because it's trying to be clever? And that's this tension that I just always feel. And at the same time, it's also very rewarding work.
00:06:16 ◼ ► On the balancing side, the reason I think you and I continue to do this kind of thing where we take a UI and just kind of want to push it in a difficult direction that requires effort is because when you get it right, when you do hit that magic where it actually works,
00:06:32 ◼ ► and is smooth and fluid and delightful and surprising in the good way, not in the bad way, that's a wonderful feeling and it's really cool. And so you don't want to just completely give up. But it's such this trap.
00:06:48 ◼ ► I can't speak for people who are coming into the Apple developer community now, but I think in the time period where you and I came into it, it was very much a community that loved kind of like lauding this kind of work.
00:07:04 ◼ ► And so this is like the ultimate goal of being a good Apple developer, being a good designer, is all of these kinds of, you know, the insane attention to detail going way beyond what you need to do just because it's beautiful or cool and it's very easy if you do this kind of work to, you know, get the likes on Mastodon or whatever being like, "Yeah, you're doing it. That's great."
00:07:25 ◼ ► But just, you know, doing this work for that reason, because it's easy to get kind of accolades or, you know, sort of you have people like you in the community is not a great reason to do it. It's probably a better reason to do it if it's really going to enhance the user's experience, not just, you know, free for your own benefit in that way.
00:07:41 ◼ ► And so I find it such a tension, though, that there is it's this never ending battle between the straightforward and the, you know, it's like this, there's that next level and it's unfortunately it isn't one of these things where very often that next level is, you know, commit the resulting improvement in your user's experience is not proportional in any way to the amount of time it takes, you know, it is very much the situation that you put it in this is this very, you know, tiny detail will take huge
00:08:10 ◼ ► amounts of time and you could have, you know, built a maybe you could have built a whole feature or a mini feature into the application that would have enhanced the user's experience way more than making this one line look just perfect when it sweeps around a corner.
00:08:22 ◼ ► Like that gets really hard but and it's also like I think something that I run into a lot with my own apps is that sense of, you know, it's like I want, I want to make them, I want to make them good, not just for my users but there is an element of like this is there's a pride in the craftsmanship part of it and, you know, with my vision question understanding the way, like, Apple curves its lines is largely to was at any rate was doing that not even for me.
00:08:51 ◼ ► I was doing that not even for an for an app that I intend to ship right now it's it was just like for my own education and my own ability to be a better developer and like that work is very important but if I do too much of that and just like I'm a better developer who isn't shipping anything and that's bad too.
00:09:07 ◼ ► So, like, yeah, it's a it's like there it's one of these unfortunate topics where there's no right answer there's just a maybe a sense of getting better at finding that line and drawing that distinction over time and being comfortable that sometimes I've shipped things that were not perfect, and I'm comfortable with that.
00:09:30 ◼ ► A few years ago I started referring, I think on the show I started referring to, like that super, you know, awesome design work that maybe is not worth your time but but you know you do it for your satisfaction I started referring to it as indulging in this kind of in design like this is indulgent design work because that I think that's a good way to think about it like you are indulging in this for yourself like it's mostly for your own satisfaction.
00:09:55 ◼ ► And there is value there for sure. But you know, but don't tell yourself that you really need to necessarily do it. And, or that your customers will benefit from it as much proportionally as the time you're spending like I was looking as I was fighting my stupid, you know, cell expansion animation bug.
00:10:12 ◼ ► I was considering all options I'm like you know what, I'm trying to be good and not dive into tons of hacks because at this point, part of the journey of trying to find this bug included basically rewriting vStack using the new SwiftUI custom layout mechanics.
00:10:29 ◼ ► I basically tried to rewrite vStack because when I wrote a really simple vStack debug didn't happen. And so, then it's like all right now I got to tweak to get all this behavior right now you know when the text doesn't fit shrink the views proportionally with their, with their priorities, I've written all this stuff.
00:10:45 ◼ ► It was, it was not going well. And eventually and the fix ended up not needing all that thank goodness and it ended up like I didn't have to use any of that I ripped it all back out went back to vStack and just you know hit like around rounded a value of like in one of the animation parameters and that was it.
00:11:02 ◼ ► But, you know, during all that time I was, I decided let me look around like, you know, I was really, I was really in the dark, I was in a dark place and I was like do I really even need to do this in an animated way, or is there some other way I could present these buttons.
00:11:15 ◼ ► Let me see what other podcast apps do you know I keep I keep like 10 or 15 podcast apps installed on my phone. So I can occasionally refer to them usually with the with the goal of like, I'm doing a new thing, and I don't want to just rip off some other app directly
00:11:29 ◼ ► I want to like have I want to make sure my take on it is, you know, as original as it can be. So usually I go to the other app just to make sure I'm not ripping them off. In this case I was going to their after see like what how did they solve this problem.
00:11:40 ◼ ► And without naming names, there's a lot of really good podcast apps out there that are nicely designed. There's a lot that aren't. And the ones that are really nicely designed aren't necessarily like the really, really high market share ones.
00:11:55 ◼ ► And so I was when I was going through the ones and seeing like which ones have, you know, comparable or better market share to overcast. I was shocked how really basic and sloppy the UIs were in a lot of cases.
00:12:07 ◼ ► And I was trying to see I was trying to compare to what to what they do. So I could, you know, maybe, you know, maybe have a solution arrive in my mind of like, Oh, wait, they, you know, their animation is timed differently, or they don't animate this stage, but they
00:12:20 ◼ ► they animate this stage. Like, that's kind of what I was looking for. And instead, what I found was a whole bunch of apps that didn't waste any time on this at all. And instead, just kind of hacked crap together with, you know, no animation, you know, no fancy tools, like it was, it was interesting to see, you know, in the sense and I'm not saying this to brag, because, you know, obviously, my my design work is not perfect. And there's tons of tons of areas for improvement.
00:12:44 ◼ ► But I'm saying this, that like these apps, some some of which had more market share than I do. They didn't spend all their time doing that. And yet they still have pretty good market share. And so it kind of showed, maybe this is not a good use of my time. Like I maybe I shouldn't be, you know, like what you were saying, like, kind of the, the community that that that we see ourselves as part of, maybe I shouldn't be trying so hard to please that community.
00:13:13 ◼ ► But on the other hand, I want to I want to please that community like and and that's that's the tension. I would love to someday win an ADA that is, in my opinion, that is the highest honor Apple can bestow on developer is an Apple Design Award.
00:13:30 ◼ ► I've never won one. I've never even as far as I know been under consideration for one, because frankly, my design work isn't good enough for one. And over time, I hope to make it good enough for one, but I know I'm not there yet.
00:13:42 ◼ ► And someday I would love to be there. And that would be such an honor. And yet, if you look at, you know, the actual market value of that, what you know, what would that do to my app sales?
00:13:55 ◼ ► Nothing, basically, like, it's not it's not a meaningful thing. Like there's a small amount of PR, and when they announced it at the BBC or whatever, but it's not that's not a massive thing for your business.
00:14:04 ◼ ► It's basically nothing, you're basically doing it for your own honor and satisfaction. And I think there is a place for that. And that's what makes this so tricky is that sometimes you do need to, you know, make the back of the cabinet nice.
00:14:17 ◼ ► Sometimes you do need to actually, you know, make things for your own satisfaction or make things good for your own satisfaction. Like when I designed voice boost to voice, you know, voice boost in overcast is a button.
00:14:29 ◼ ► That's it. It's one button. It's on or off. The actual voice boost system, the actual code is basically a channel strip. Like if you've ever seen in an audio editor, you've ever seen a channel strip?
00:14:40 ◼ ► It's like it's this the stack of effects that you can apply to a track and you can move them around and then anywhere you want. You can adjust all the parameters. You can have different stages in and out.
00:14:49 ◼ ► Voice boost to I built all that that is actually a channel strip effectively this pipeline that you can stack all these different modules, you can control the different parameters. And the way I actually shipped it to my customers is just one preset.
00:15:11 ◼ ► And I built it to do so much more. But I just haven't yet had like the time or the ability to put that in the UI yet. And so on some level, you can say this entire thing was wasted, or at least much of this capability was wasted.
00:15:24 ◼ ► I could have made it so much simpler and spent less time on it. But I wanted to do it for my own satisfaction. And for you know, and maybe in the future, you know, I can expose some of these features if I if I ever get around to making the UI for it.
00:15:37 ◼ ► First after we write the entire UI of the app, but once I once I get there, but you know, that I did that work. For me, mostly that was mostly indulgent work for me. And I think as long as you're not like losing too much of your time to it, like as long as you're still able to ship your software.
00:16:39 ◼ ► Indeed streamlines hiring with powerful tools that find you matched candidates. With Instant Match, over 80% of employers get quality candidates whose resume on Indeed matches their job description the moment they sponsor a job.
00:17:03 ◼ ► Even better, Indeed is the only job site where you only pay for applications that meet your must-have requirements, making it an unbelievably powerful hiring platform, delivering four times more hires than all other job sites combined according to Talent Nest 2019.
00:17:18 ◼ ► Join more than 3 million businesses worldwide that use Indeed to hire great talent fast. Start hiring now with a $75 sponsored job credit to upgrade your job post at Indeed.com/undertheradar.
00:17:51 ◼ ► Yeah, and I think there is definitely something in this that of being aware of why you're doing this kind of work and being like honest and reasonable with yourself about it in the sense that this kind of work or just in general, like really good design. I think it's easy to if you're if you've been in baby in the Apple developer community for a long time, you would potentially come away with the impression that good design is not a good design.
00:18:20 ◼ ► Good design is what makes products successful. Like that is a statement that you might start to believe that it is the design of the thing that will lead to its success and define its success.
00:18:32 ◼ ► And if that were true, the level of design detail and the level of craftsmanship that you express in your work is the like number one thing that you can do to influence the success of your business.
00:18:53 ◼ ► Yeah, it's a good enough design is probably an important prerequisite in terms of to be able to have successful product. It needs to work, it needs to be understandable and do a reasonable job in terms of making sure people can understand how to use it. But beyond that, that is an you know, the beyond that extra work is serving a different purpose is communicating something either to your customer communicating something to your customer,
00:19:22 ◼ ► communicating something to your community of people you care about communicate something to, I don't even know, like to app review or to the Apple app store editorial team, whatever it is, like it is a different thing that you are trying to communicate that is valuable potentially.
00:19:38 ◼ ► I think in terms of thank you and I both intrinsically we value this as something that we find important. And we find in joy, you know, joy and sort of pleasure in creating, but I think increasingly it's the importance of understanding that that work is not going to come back to you likely in terms of the general success number of downloads number of referrals word of mouth, all those kinds of things that is not likely a connection that it is, you know, it is useful in some ways, but it is separate from the success of your app.
00:20:07 ◼ ► Like the success of your app, you can have far more to do with something that solves a problem that people really have in a way that is clear and understandable. And you have some mechanism by which you can acquire new customers on a reliable basis. Like if you have those things, that's much more those are like the 99% of your success of your app, whether it gets traction, whether it has staying power, whether you'll be able to get people to convert to subscriptions, you know, show ads, whatever it is, like, all of those things are far more based on those kind of factors.
00:20:36 ◼ ► And the design of the app is just like, as long as it's good, as long as it's good enough, as long as it's kind of like works in a reasonable way, it's fine. And you I think you can prove this, if you just go into the App Store, look at popular apps, it is not that they are this kind of this very, you know, whimsical, detailed, you know, groundbreaking design with lots of fluid animations and using these things that would have been, you know, that when you see like, wow, that's amazing. It's, you know, groundbreaking. It's like, no, it's like it's not a good idea.
00:21:05 ◼ ► It's like, no, it's like, it's stopped more stock UI, you know, wrapped up in, you know, with solving a clever problem in clever way. It's stock UI, if you're lucky, or it's, you know, it's, you know, react native or like some kind of cross platform. Yeah, exactly. It's like here, this is basically a web view.
00:21:23 ◼ ► And it's like, that's good enough. And that can be good enough. And I think that's, like an important thing to be honest with yourself about that. I do think, like, I used to think that there was a direct connection between the quality of my design and the likelihood of my success. I do not believe that is the case anymore. I think they are related vaguely, but it's like in the in the coefficients of correlation factor or whatever. It's like it is the it is a very small coefficient that is, you know, maybe slightly more
00:21:52 ◼ ► there to be useful. But primarily, that's not that is not a reason to do this kind of work. Do this work because you enjoy it do this kind of work because you think it's fine. It's interesting because it enhances your ability to think it you know, lets you solve interesting problems in a way that keeps you excited. Like, I've been doing this job for 15 years, like I need to find interesting thing problems to solve, and not just you know, find better ways to keep counting people's steps or making their widgets like I would find that very tedious and find it hard to continue to want to do it.
00:22:21 ◼ ► I'm very encouraged to continue to want to do do my job on a day to day basis. And so I invent these little problems. I indulge in that work, and that's fine. And that's, you know, a strategy that I'm using to enjoy my work and hopefully, you know, enhance the experience of some of my users. But you know, I used to sort of deceive myself that this was also furthering the products themselves. And I don't think I have that same feeling anymore that it's it's in it's valuable, but not in actually move my, you know, business my business forward in that way.