Podcast Search

Under the Radar

129: Lightning Round IV

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

0:00:00- Welcome to Under the Radar,

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

0:00:04I'm Marco 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:10- So continuing our spring quiet period of developer news,

0:00:13I figured, we figured that we would do a little more Q&A,

0:00:16'cause when we asked for questions a couple weeks ago,

0:00:19we got tons of really good ones.

0:00:22And we have enough now for one or two more episodes,

0:00:24so we're gonna try to knock these out,

0:00:27and some of them are really good questions

0:00:29that I really wanted to address.

0:00:30So, we're gonna start with Boz the Developer, who asks,

0:00:35if you start working on a new app,

0:00:36what do you do before you start writing any code?

0:00:40So for instance, do you write out all the classes

0:00:42and details on paper, or do you just draft

0:00:45a general overview of how all the classes

0:00:48relate to each other?

0:00:49So, what do you do for this, Dave?

0:00:51- Very little, if anything.

0:00:57So I have done the kind of project,

0:01:01I mean, this was, and it's literally academic for me,

0:01:04where in school, I would have to do, build the big,

0:01:07what's it, UML diagrams of your classes

0:01:10and your class hierarchies and all that type of thing

0:01:14beforehand, and I've only ever done it

0:01:16in an academic setting.

0:01:17And in a practical setting, what I find is most useful

0:01:21is to get something working more,

0:01:24as quickly as you possibly can.

0:01:26And for me, that means to just start writing code.

0:01:29And I worry less about having things structured

0:01:33or organized in this most optimized way possible,

0:01:38or anything like that, at the start.

0:01:41Because the reality is, I know the least

0:01:44about the problem I'm trying to solve

0:01:47when I sit down to write for the first time.

0:01:50And so, any decisions or choices or structures

0:01:54that I'm going to create at that point

0:01:56are sort of necessarily the least informed

0:01:59and probably worst versions of that that I could.

0:02:02And so, I'd rather dive into the problem,

0:02:05start trying to solve it as best I can,

0:02:08and from there, as I develop more and more,

0:02:10from understanding of the problem domain,

0:02:12understanding how things are actually gonna work

0:02:14in practice, that's when I start to have a bit,

0:02:18not ever formal in my sort of class hierarchy or structure,

0:02:22but as I go, I will develop and move things

0:02:25to the structure that makes sense for the long term.

0:02:29The initial kind of quick spurt, maybe not necessarily,

0:02:32is even as worried about following good practices

0:02:36and structure around the way I'm relating things

0:02:39or those types of things.

0:02:41I'm just trying to get something working

0:02:42so I can better understand the problem.

0:02:44And once I understand the problem,

0:02:45then I can actually make choices about how to do things.

0:02:48But I never really write it all down.

0:02:50I mean, the only thing I've heard sometimes

0:02:51that I'll write down ahead of time

0:02:53is gonna be like sketching out a UI quickly

0:02:55or something like that, just to play with it.

0:02:57But I never really get into the sense of,

0:02:59writing things down on the code side,

0:03:02I've never really found to be particularly useful.

0:03:05- All this time, I thought I was just lazy and undisciplined,

0:03:09but you've now given me justification

0:03:11for why I also don't do any of these things.

0:03:15I think your point is excellent about how

0:03:18when you design on paper, you know the least

0:03:21about what it's actually going to take, really.

0:03:24To me, software development is a really big field,

0:03:28and there's lots of different ways to do it.

0:03:30There's lots of different situations

0:03:31in which you might want or need to do things

0:03:34in a more formal or planned-ahead way than others.

0:03:37I don't think iOS app development is one of those things.

0:03:41I don't think you need this level of formality I'm planning

0:03:44for what most people listening to the show

0:03:46are actually working on.

0:03:48I think you can build software like you build a bridge,

0:03:53like you design the entire thing first,

0:03:57and people have built lots of bridges before,

0:03:59so they have a really good idea

0:04:00of what it takes to build bridges these days,

0:04:02and you can sketch it all out,

0:04:05and then build it from the ground up,

0:04:06and then you reach the top,

0:04:07and then you can drive a car over it,

0:04:09and you know it'll work, because you plan everything out,

0:04:11and everything is like known problems,

0:04:13known conditions, known requirements.

0:04:17Software is rarely that way,

0:04:19and especially the kind of software that we write.

0:04:21It is rarely that established, that known in advance,

0:04:26or that repetitive.

0:04:29What makes software planning so hard

0:04:31is that most of the time,

0:04:32no one has ever done what you're doing

0:04:34in the exact way you're doing it before,

0:04:36and that's why it's so hard to estimate time,

0:04:39and estimate budget, and everything.

0:04:41And so the way I build software

0:04:44is not the way you build a bridge,

0:04:46where you sketch everything out first.

0:04:48The way I build software is how you would build

0:04:50the most dangerous, worst bridge project in the world,

0:04:52which is like you have somebody hold a board

0:04:55across the water first,

0:04:57and somebody rides a tricycle over it,

0:04:58and sees if it works,

0:05:00and then slowly you replace the temporary parts

0:05:03that you've made with the real thing

0:05:05that could actually be a little bit better,

0:05:07and support things properly.

0:05:09That's kind of how I make my software,

0:05:10is I try to get something working as quickly as possible

0:05:14that's terrible,

0:05:15and then if it's a thing that I think is a good idea,

0:05:18or that has legs, no pun intended,

0:05:20then I will start making it correct,

0:05:24and start building it right,

0:05:26and build out parts of it that were special case

0:05:29just to get the prototype working,

0:05:30and add UI, and polish things,

0:05:32and make it more robust.

0:05:34That's how I build software,

0:05:36and all of that is happening just by doing the code.

0:05:39It's all jumping right in and starting right in the code.

0:05:41There's no planning or anything,

0:05:43and I don't think,

0:05:45I mean, in an academic sense,

0:05:47certainly I would like to be more disciplined,

0:05:50and more planned, and everything like that,

0:05:53but A, I can't do that,

0:05:56and just my personality and my work style is not that,

0:05:59and B, I don't think for the kinds of apps

0:06:01that most of us write,

0:06:02that that level of formality is necessary.

0:06:05To me, that's a lot,

0:06:06it's just a lot of overhead,

0:06:08and you know, for the way I work.

0:06:11If the way that you work is more that way,

0:06:14if you benefit from designing things ahead of time,

0:06:19writing things ahead of time,

0:06:19that's a different story.

0:06:21That's a different work style,

0:06:22but for me, I have never found that useful.

0:06:25- Yeah, and I think what you just said there, though,

0:06:26is a very important point,

0:06:27that I have worked with people back

0:06:29when I used to work in a more,

0:06:31in an actual office environment,

0:06:32and I had a good friend of mine who,

0:06:35the way that I think about a problem

0:06:37is that I write code to explore it.

0:06:40That was the way that I do it.

0:06:42That initial 20, 30% of the work

0:06:45is me in Xcode writing code,

0:06:47and that's how I think a problem through.

0:06:50I had a friend who,

0:06:51he would think a problem through

0:06:53by exploring it on a whiteboard,

0:06:56and he would draw class diagrams,

0:06:57and that was, you know,

0:06:59that initial bit of time,

0:07:02that's how he could think through the problem best

0:07:04and understand it most.

0:07:06He wasn't coming at it from a sense of,

0:07:08he wasn't trying to be academic about it.

0:07:10He wasn't trying to be complete or comprehensive,

0:07:13but there is certainly,

0:07:15finding whatever is that best tool for you

0:07:17to gather as quickly as possible

0:07:19the maximum amount of information about the problem,

0:07:22and you're understanding

0:07:23what you think your solution to it might be.

0:07:26Whatever that form that takes, that's great,

0:07:28but I think it's probably important,

0:07:29moreover, to just remember that

0:07:32that initial work is entirely speculative,

0:07:35and you are trying to understand something better

0:07:39so that you can make better choices down the road,

0:07:41rather than trying to make a lot of choices upfront

0:07:45and then sort of holding yourself to those

0:07:47or expecting those choices to be good down the road.

0:07:51- Lou Brothers asks,

0:07:53"How do you decide which ideas you won't work on?"

0:07:57- In some ways, it's--

0:08:00- I love this question.

0:08:01- It's like, I think,

0:08:04so it's a decision,

0:08:05I think we have to make a lot, is something.

0:08:08I think one of the,

0:08:09as soon as you find yourself in a position

0:08:13where you're self-employed,

0:08:14suddenly you have the blessing and the curse of having,

0:08:18you can work on anything you want, basically.

0:08:21You can be like a little bumblebee,

0:08:22just flitting from flower to flower to flower if you want.

0:08:25You can dive into one thing and only work on that.

0:08:27You're now in a position that you have to make that choice.

0:08:30You have to decide what you're gonna work on,

0:08:33and then I think the harsh reality

0:08:35that you have to come to grips with

0:08:36is the fact that any time you say yes to one project,

0:08:40you are implicitly saying no to 100 other projects,

0:08:45that your time is a finite resource,

0:08:46and so you are going to have to decide,

0:08:50you can't do everything,

0:08:52and every day you're saying no

0:08:55to way more things than you're saying yes to.

0:08:58And so I think primarily the way that I tend to focus

0:09:00in terms of answering the ideas that I won't work on

0:09:04are the ideas, my focus tends to be on

0:09:07what are the ideas that I am excited to work on,

0:09:10and I just keep a running list of the ideas

0:09:13that I have otherwise, and that list will grow,

0:09:17and sometimes things will fall off of it.

0:09:20Sometimes I'll pick things up from that

0:09:21and start working on them,

0:09:23but I find that the most constructive thing I've found

0:09:26is to just focus on what am I excited about?

0:09:29What do I think would have the best impact on my business

0:09:31financially?

0:09:33What do I think is a nice quick win?

0:09:35Those are the things that I tend to decide about,

0:09:37what I want to work on,

0:09:40and then the things that I won't work on

0:09:41are just everything else,

0:09:43which is this gigantic pile of other apps that I have,

0:09:46other ideas that I have to work on things,

0:09:49and it's impossible for me, I find,

0:09:52to manage too much about that.

0:09:53I mean, there's a little bit of maybe,

0:09:55there are some times I have an idea,

0:09:57and then the important exercise of trying to honestly

0:10:01and genuinely think it through,

0:10:03where it's like, "Oh, that's a great idea,"

0:10:04and then sometimes you'll sit down for a little bit

0:10:06and just kind of think about it,

0:10:08or you'll have it on your back burner

0:10:10as you're going about your daily life,

0:10:11and all of a sudden you're like, "Wait a second.

0:10:12Yeah, I know. That's a terrible idea,"

0:10:14and it'll just kind of like, you can discount it,

0:10:16but otherwise I just tend to focus on

0:10:18what am I excited to work on?

0:10:19I'll go work on that,

0:10:21and I'm implicitly saying,

0:10:24anything that isn't that idea,

0:10:25I'm not gonna work on right now.

0:10:28- Yeah, for me, there's a lot of business considerations

0:10:32that go into it, and a lot of this just comes down to,

0:10:35you have a limited amount of time, really, in the day,

0:10:39and you have a limited amount of focus

0:10:40of how many things you can focus on at once

0:10:43and how many things you can maintain at once,

0:10:45and so it's very much a question of business needs

0:10:50and priorities, and then mostly it's a question

0:10:53of time management, and so the things

0:10:57I won't work on are typically things that I think one day,

0:11:02oh, wouldn't it be cool if this,

0:11:04or some opportunity comes up,

0:11:05or like, oh, that would actually be kind of cool to work on,

0:11:08or that might be successful,

0:11:10but where the amount of time it would take

0:11:13is disproportionate to its benefit in my life,

0:11:18and it weighs too much on the cost side, mainly of time,

0:11:23where any new thing I take on

0:11:26is going to have to find time to be done

0:11:30from the things I currently do with my time.

0:11:32You know, time is a zero-sum game.

0:11:35Like, it has to, any time that you invest in something new

0:11:38has to come from something else.

0:11:39This is opportunity cost, you know,

0:11:40so if something sounds really cool

0:11:44and it doesn't have that much business upside,

0:11:47and maybe it doesn't have any kind of like, you know,

0:11:49synergy with anything else I'm doing

0:11:51or doesn't have much to do with anything else I'm doing,

0:11:53but it's only gonna take a little bit of time,

0:11:55then I might do it as a fun side thing.

0:11:57Like, if I wanted to make a game,

0:11:59and which I've had game ideas before, they're terrible,

0:12:02but if I wanted to make a game,

0:12:04and for some reason I had a good idea,

0:12:06and it was only gonna take like a week to make,

0:12:08and by the way, it never takes just a week to do anything,

0:12:10but assume that you had something

0:12:12that had like a really short time commitment,

0:12:14and then you were done.

0:12:16There was no ongoing maintenance, no ongoing support,

0:12:18no ongoing updates.

0:12:20Again, never happens,

0:12:21but suppose you had something like that.

0:12:24I'd be more likely to consider doing that

0:12:27as a fun side thing, or as an experiment to learn

0:12:30new technology or whatever.

0:12:33But if I look at bigger projects,

0:12:35things that require ongoing commitments,

0:12:37so anything that requires updates, support,

0:12:40new podcasts that I do, you know,

0:12:41'cause that's like, oh, you gotta start recording this thing

0:12:43every week or two or three.

0:12:45And so like, you know, new things like that,

0:12:48new commitments, or just new apps

0:12:50that will require ongoing work,

0:12:53I really have to be very harsh with that, with myself,

0:12:57and I have to say like,

0:12:59what happens if this succeeds, first of all?

0:13:03Like, it's easy when you have a cool idea,

0:13:04oh, let's try this.

0:13:06But what happens if it succeeds?

0:13:09Then you have to maintain it.

0:13:10Then you're in the business of X, right?

0:13:13This is how I accidentally became

0:13:15the owner of a magazine or an ad blocker.

0:13:17(laughs)

0:13:18Like, I wanted to do the cool thing

0:13:20of making the new project

0:13:22that had nothing to do with everything else

0:13:24I was doing at the time,

0:13:25and then it turned out, you know,

0:13:28I had to run that after that, and it became just a job.

0:13:31And I didn't want those jobs, it turns out.

0:13:34Or they weren't what I thought they would be, you know?

0:13:36So now I try to focus a lot more.

0:13:39Anything that's going to be requiring ongoing work for me,

0:13:44I try to make it

0:13:46related to or beneficial to my main businesses,

0:13:51which are Overcast and being a tech podcaster.

0:13:55Like, those are my two main sources of income,

0:13:57those are my two main focus areas.

0:14:00Anything that is not related to those things

0:14:03has to be really, really awesome

0:14:05and also require really little time for me to do it.

0:14:09So, you know, I'm working on multiple audio tools

0:14:13and everything, nothing big, don't worry,

0:14:14but just like small audio tools and stuff,

0:14:18like Forecast and some other stuff like that.

0:14:21'Cause those are all kind of in the service

0:14:22of both Overcast and my job as a podcaster.

0:14:26Other things that come up, like I wanted to,

0:14:29you know, I talked the other day about,

0:14:31oh, if I brought back my ad blocker,

0:14:33then I would do it in this way, right?

0:14:36But I'm not gonna do that

0:14:37because that's a whole different business.

0:14:39It has nothing to do with my main stuff

0:14:41and would require maintenance.

0:14:43So it's not worth it, it's not a good idea.

0:14:45I have had, yeah, this is a game ideas,

0:14:47but I'm not a game developer,

0:14:49and I don't really want to become one.

0:14:52That's a whole different skillset that, first of all,

0:14:54I don't think I'd be very good at,

0:14:56but second of all, it's totally different

0:14:59and it has no overlap really with what I do today.

0:15:01And so it would require, I think, a lot of overhead,

0:15:04a lot of shifting, and I don't think the outcome

0:15:07would be worth it enough for me.

0:15:09So that's kind of how I decide.

0:15:11Just like, you know, big picture,

0:15:14it's a lot about looking forward

0:15:17about what happens if what I'm doing actually succeeds

0:15:22and this has to become a part of every week of my life now

0:15:26for the next indefinite number of years.

0:15:28Is that actually the outcome I want?

0:15:32And if it isn't, I probably shouldn't do that idea.

0:15:35On a smaller scale, on the idea of features

0:15:38or aspects of the apps that I am working on,

0:15:42how do I decide what ideas of the apps that I work on?

0:15:47What features of the apps that I work on?

0:15:50That is a lot of the same logic

0:15:53that would go into the bigger decisions

0:15:55of basically like, do I want to be supporting this forever?

0:15:59And by the way, I don't get this right every time.

0:16:01I mean, that's why I had a magazine and an ad blocker

0:16:03and that's why there's features in my apps

0:16:05that I am dying to remove at all times.

0:16:08Like, any time you ask me, there's always some feature

0:16:11of whatever app I'm primarily working on at that point

0:16:13that I'm like, man, I wish, if I did it over,

0:16:15I would never do this feature.

0:16:16I would never add this thing.

0:16:18For Overcast, that's probably the episode limit.

0:16:20I hate that feature.

0:16:21Oh, and definitely Play Next by Priority.

0:16:24That is a huge pain. (laughs)

0:16:26But other than those two things,

0:16:28for the most part, I decide when I'm adding a feature,

0:16:32is this something I want to support forever?

0:16:35Is this something that I want to, in the future,

0:16:40not have to worry about people withholding

0:16:44their star reviews because I removed it and they were mad?

0:16:47Like, stuff like that.

0:16:48You have to predict this forward.

0:16:50If it's something that has a server side component,

0:16:52what happens if everyone starts using this feature?

0:16:55Like, I did file uploads for premium members.

0:16:58What happens if tons of people sign up for that?

0:17:01Do I want to be in that business?

0:17:03Also think about the needs that these features might have.

0:17:06So, for instance, people have often requested

0:17:09some kind of written review or comment system for podcasts

0:17:13where people could, similar to what iTunes has,

0:17:17where people could review podcasts or add their commentary

0:17:20that's visible to the public or anything like that.

0:17:23Problem with that is once you have users inputting text

0:17:27that's visible to other users,

0:17:29you need to have basically community management

0:17:32and spam control and abuse control

0:17:35and ways people can file complaints

0:17:37and policies around how you deal with that.

0:17:39You have to be able to do that in multiple languages

0:17:41because people will write things that you can't read.

0:17:43So it becomes a much bigger problem

0:17:47than just like, oh, wouldn't it be nice

0:17:49to have a few comments on a podcast?

0:17:52And so stuff like that, you gotta look at

0:17:55what it actually needs to do it right,

0:17:58and if it's too burdensome, then no way, not worth it.

0:18:02- Yeah, and I think too, it's interesting

0:18:05when you take that question and focus it on features

0:18:08that you won't work on rather than just like

0:18:10new opportunities that you'll pursue.

0:18:12'Cause I think something I also think about

0:18:14is how I tend to make sure that an idea or a feature

0:18:19is going to benefit most of my users.

0:18:23Is a filter, I think, more recently

0:18:26that I've started adopting that I won't work on,

0:18:29I try to avoid ideas that only benefit

0:18:33very small audiences or subsets of my app.

0:18:37And that's not universal, sometimes I certainly

0:18:40will have features that are not quite so universal,

0:18:44but I find that it's so easy sometimes

0:18:49to focus in on kind of this really interesting,

0:18:52tricky problem or something kind of really,

0:18:55like it's ostensibly a really cool feature to add.

0:18:59But one of the filters I apply to it now

0:19:01is I always ask myself, is this going to improve

0:19:05the use of the app for 80%, 90% of my users?

0:19:10And if it doesn't, then it has to be a feature

0:19:14that I feel really strongly about otherwise.

0:19:17Or at the very least, it's a feature that I'll push down

0:19:20at the priority of that feature and try and pull up

0:19:24anything where I think this will impact a lot of people.

0:19:27Because I think it's so easy to just want to solve

0:19:28the interesting problem and focus on that side of things

0:19:32rather than viewing it from the user's perspective.

0:19:35'Cause I think you, and it's also probably also important

0:19:37to remember that the users you hear from

0:19:40are such a teeny proportion of your user base typically,

0:19:44that it's so easy to get a distorted view

0:19:47of what people are actually using in practice

0:19:49and trying to keep that mindset that like a lot of ideas

0:19:52you probably shouldn't work on are these ideas

0:19:55that are kind of pet features and would really only affect

0:19:58a few people and then you're spending all this time

0:20:01and getting a relatively small return from it,

0:20:04even just from a purely pragmatic perspective.

0:20:07- We are brought to you this week by Linode.

0:20:09With Linode, you will have access to a suite

0:20:11of powerful hosting options.

0:20:13With prices starting at just $5 a month,

0:20:16you can be up and running with your own virtual server

0:20:18in the Linode cloud in under a minute.

0:20:21Linode offers industry leading performance

0:20:23with native SSD storage, a 40 gigabit network,

0:20:26and Intel E5 Xeon processors.

0:20:29They have 10 data centers now spread across the world

0:20:32so you can serve your customers even quicker than before.

0:20:34There's also an API at Linode that allows you

0:20:36to easily automate tasks or develop custom applications

0:20:39in the cloud and everything is manageable

0:20:41via the command line.

0:20:43All of Linode's pricing tiers feature hourly billing

0:20:45and then they have a monthly cap so that way

0:20:48you don't end up paying more than the monthly rate

0:20:49for any of the services.

0:20:51And Linode offers now additional storage too.

0:20:54They have block storage now out of beta

0:20:56and that's available in Fremont and Newark so far

0:20:58and they will be expanding it to all their data centers

0:21:01by June.

0:21:02Linode is great for things like hosting web apps

0:21:05like what we do.

0:21:06Dave and I are both long time Linode customers.

0:21:09We love them, they're just fantastic.

0:21:12So you can host app back ends like we do,

0:21:14you can host websites, large databases, mail servers,

0:21:16VPNs, Docker containers, private Git servers,

0:21:19and so much more.

0:21:21And Linode is hiring right now.

0:21:23So if that interests you, go to linode.com/careers.

0:21:27So Linode has fantastic pricing options available,

0:21:29plans start at just $5 a month,

0:21:31that gets you one gig of RAM,

0:21:33and they offer lots of plans going up from there

0:21:35for your various needs including high memory plans.

0:21:38As a listener of this show,

0:21:39if you sign up at linode.com/radar,

0:21:42you will be supporting us and you will get $20

0:21:44towards any Linode plan.

0:21:45So if you wanna use that one gig plan,

0:21:47that's four months free.

0:21:49And with a seven day money back guarantee,

0:21:51there's nothing to lose.

0:21:52So go to linode.com/radar to learn more,

0:21:56sign up and take advantage of that $20 credit

0:21:58or use promo code radar2018 at checkout.

0:22:01Thank you so much to Linode for supporting this show.

0:22:04Mark Siri asks, "How would a converged Marzipan world

0:22:10"change your approach to app development?"

0:22:12And this is of course referring to the rumored

0:22:16cross Mac iOS app development framework,

0:22:20code name Marzipan that Apple is allegedly working on

0:22:22according to all the rumor sites right now.

0:22:24So how, if we get that,

0:22:27if you can make iOS apps that also work on the Mac

0:22:30with minimal changes presumably,

0:22:33and of course this is a lot of speculation,

0:22:35but in that world where that happens,

0:22:38how would that change your approach to app development?

0:22:41- I struggle a bit with this question

0:22:43'cause I look at my app portfolio

0:22:46and there's a couple of my apps

0:22:49that could sort of maybe work on the Mac

0:22:54as a, like I have a recipe organizer and that's an app

0:22:57that could certainly benefit from being on a Mac.

0:23:01But by and large, I think that the awkward thing

0:23:04or the tricky thing about this kind of

0:23:07grand unified approach,

0:23:08I think the biggest change it would honestly have

0:23:10is that I think it might be,

0:23:13it isn't so much that it allows me to build Mac apps,

0:23:16but it may indicate what the future of apps in general

0:23:21that Apple is heading towards might be.

0:23:24That if there's a new,

0:23:26in the same way that when size classes became a thing,

0:23:30it started to indicate a year or two ahead

0:23:33of when we finally got things like,

0:23:35so we have the iPad Pro where you can have

0:23:38two side-by-side apps or skinny slide-over apps

0:23:41or multiple-sized iPhones or any of those types of things.

0:23:44I think what I would be most interested to see here

0:23:48is probably not,

0:23:49there's gonna be some opportunities for sure

0:23:51that now it makes it slightly easier for iOS developers

0:23:54to move their apps to the Mac.

0:23:55And that's great.

0:23:56But the reality is I think in the scope of

0:24:00the size of iOS as a user base and as a marketing base,

0:24:04the Mac is vanishingly small.

0:24:09I don't think that is gonna have a material impact

0:24:11on my business in that way.

0:24:13And so I think it is interesting, certainly,

0:24:16and I would explore potentially adopting

0:24:19some of those paradigms and certainly if they do it

0:24:21in a way that is very straightforward.

0:24:24But I think the biggest changes that it might make

0:24:26is it may tweak how I think about

0:24:29the way I should structure my apps

0:24:30in a way that like, for example, now all my apps

0:24:33are flexible in their layout.

0:24:35I don't do any fixed layout apps anymore

0:24:37because Apple has sort of indicated

0:24:39that that's where we should be heading.

0:24:41And I'd be very curious in this world

0:24:43where they're kind of creating this more unified,

0:24:48I don't know, this unified framework

0:24:51for going from the smallest iPhone to a 27-inch iMac.

0:24:56Like, I think they're going to be indicating to us

0:24:59some kind of broad lessons or goals that we should make.

0:25:03And if that's what they do, then I think

0:25:05that's the approach I'd take and just kind of

0:25:06keep that in the back of my mind.

0:25:07But beyond that, probably not too much.

0:25:10- Yeah, I think that pretty much covers it.

0:25:12I mean, on the code side, yeah, I agree.

0:25:15I think layout would be one of the biggest challenges

0:25:18because right now we have size classes

0:25:21that basically tell you whether something

0:25:23is tiny or massive, and that's it.

0:25:25That is not a very granular approach.

0:25:29It's nothing like what you have with CSS media queries

0:25:31and stuff like that.

0:25:32So on a code level, I think it would be challenging

0:25:36to make apps that actually scaled well

0:25:38to all the various sizes and aspect ratios

0:25:41and situations and things like that.

0:25:43From a design side, that really depends

0:25:46on a lot of how it's done.

0:25:49What kind of form does this framework take?

0:25:53How do iOS apps look on the Mac?

0:25:57How do they work?

0:25:58How is navigation done?

0:25:59Stuff like that.

0:26:00From a business side, which I think is the more,

0:26:04probably the only one we can really

0:26:06easily speculate on right now,

0:26:08I think it's very likely that the app store side of it

0:26:13would not be a separate purchase,

0:26:15that they would probably update the Mac app store

0:26:18for the first time ever to probably have

0:26:22iOS apps that could basically opt into being on it,

0:26:25and it would be one unified listing,

0:26:27just like it is between iOS,

0:26:29between the iPhone and the iPad.

0:26:30And even, and the TV app store kind of does this.

0:26:34So I feel like if you're still relying

0:26:38on one time purchase, that's probably not gonna

0:26:42go well in your favor here.

0:26:43It's probably gonna be like one purchase

0:26:45gets you the same app on all the platforms.

0:26:47So be prepared for that.

0:26:49Otherwise, for me, where I currently have

0:26:52no presence on the Mac, so I'd be starting from zero there

0:26:55and wouldn't be cannibalizing anything,

0:26:57it's kind of great because I could have

0:27:01a Mac version of my app which so far

0:27:04has just not been worth the time to make

0:27:06that so different and it would have relatively low usage.

0:27:09So it's not worth it right now,

0:27:11but it would become worth it probably

0:27:14if it's not that much work to basically port my app

0:27:18to the Mac in some kind of reasonable way.

0:27:21That would be awesome, and it would open up

0:27:23new market share, new usage.

0:27:25My app is at least half ad revenue based,

0:27:29so that's more people looking at the ads

0:27:32more of the time so that I get more revenue from that.

0:27:34So I think it could be a really good thing.

0:27:38All right, and finally, if we can do this quickly,

0:27:41any hot tips on accessibility?

0:27:43This is a question from Benjamin Jex.

0:27:45How do you make accessibility part of your workflow

0:27:48and how has it helped improve your projects?

0:27:51- So I think at its simplest, the best way to improve

0:27:55your accessibility workflow is just to keep it

0:27:57in the back of your mind as you're developing.

0:28:00This is just, and I find that it is useful

0:28:03and it helps improve my projects, I think,

0:28:05because when I think about how I would express,

0:28:09and usually when I, accessibility is a very wide

0:28:12and far-reaching topic, and I think it gets into things

0:28:14like use of color, use of white space,

0:28:18how large your fonts are, how flexible your layout is

0:28:20for different size fonts, but often what I find,

0:28:23what I find really useful is even just to think about

0:28:25my UI from a voiceover perspective.

0:28:29And there is something very useful about making sure

0:28:34that your UI would make sense for somebody using voiceover,

0:28:38and if it doesn't, there's a good chance it's also

0:28:41gonna be confusing or cumbersome for somebody

0:28:43who will be using it in a traditional visual medium.

0:28:48Because I think there is something good about,

0:28:51like it forces you to think about,

0:28:55is there a hierarchy to my information?

0:28:57Is there a clear separation between different parts

0:29:00of my app?

0:29:01Am I making too many assumptions?

0:29:04And so I think accessibility is something

0:29:06that you just have to, it's just try and keep in your mind

0:29:09and have in the back of your mind

0:29:10as you're working on projects.

0:29:11And then the other thing I'd say too,

0:29:13in terms of the best tip I ever have about accessibility

0:29:16is listen, anytime you get a user who gives you feedback

0:29:21on an accessibility issue, address that, work on that,

0:29:24and that's how best I have learned how to be good

0:29:27at accessibility, is you just, by actually listening

0:29:31to people who use apps in a way that is different than mine,

0:29:34I learned so much, and that's how I've gotten better at it.

0:29:37So anytime you have an opportunity to do that,

0:29:39dive in and do it right away.

0:29:40- Yeah, I think we should probably do a whole episode

0:29:42on some more detailed accessibility work,

0:29:44so we'll do that in the future.

0:29:46But for now, we will talk to you next week.

0:29:49- Bye.

0:29:51[