PodSearch

Under the Radar

114: Platform Wish List for 2018

 

00:00:00 ◼   ► - Welcome to Under the Radar,

00:00:01 ◼   ► a show about independent iOS app development.

00:00:04 ◼   ► I'm Marco Armet.

00:00:05 ◼   ► - And I'm David Smith.

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

00:00:08 ◼   ► so let's get started.

00:00:09 ◼   ► - So this week we kind of wanted to do,

00:00:11 ◼   ► since last week was kind of our report card

00:00:14 ◼   ► of how the App Store did and the various improvements

00:00:17 ◼   ► and changes it made in 2017,

00:00:19 ◼   ► kind of wanted to take today to be our wish list for 2018.

00:00:23 ◼   ► These are not predictions,

00:00:24 ◼   ► these are just things we hope to see in 2018,

00:00:28 ◼   ► not from the App Store side of things,

00:00:30 ◼   ► but from the API and platform side of things.

00:00:34 ◼   ► So I wanted to start that off the smallest to largest here.

00:00:38 ◼   ► The easiest one for me to start off with is iOS,

00:00:43 ◼   ► because for me, iOS is so mature at this point,

00:00:47 ◼   ► there's so much in it,

00:00:49 ◼   ► it's really hard for me to come up with specifics of like,

00:00:52 ◼   ► here's one big thing that I'm missing in iOS.

00:00:55 ◼   ► Like it's so complete and so mature,

00:00:57 ◼   ► there's just so much there that I'm pretty good in iOS.

00:01:00 ◼   ► The only thing I really hope to see specifically in iOS 12

00:01:05 ◼   ► is that iOS 10 and 11 have been slowly evolving

00:01:11 ◼   ► fundamentals of their UI design

00:01:15 ◼   ► and design patterns and design styles,

00:01:18 ◼   ► but there's not a single coherent target

00:01:21 ◼   ► that they seem to be going towards.

00:01:23 ◼   ► Like some apps look like Apple Music,

00:01:25 ◼   ► like the new stock UI looks like Apple Music,

00:01:27 ◼   ► some apps look like Apple Maps,

00:01:29 ◼   ► which is a totally different style

00:01:30 ◼   ► than Music and everything else.

00:01:32 ◼   ► A lot of apps have seemingly not been modified at all

00:01:35 ◼   ► or not been reconsidered design-wise since iOS 7.

00:01:38 ◼   ► And iOS 7's pretty old now,

00:01:41 ◼   ► and I think the iOS 7 style looks pretty dated

00:01:44 ◼   ► and is not really appropriate anymore,

00:01:47 ◼   ► which is a big thing I wanna address in Overcast actually,

00:01:50 ◼   ► 'cause Overcast still looks very iOS 70 in a lot of ways,

00:01:53 ◼   ► and I'd like to update that in the next major version.

00:01:56 ◼   ► But one of the problems is I don't really know

00:01:58 ◼   ► what to update it to, because it seems like Apple

00:02:01 ◼   ► is designing in different directions in some of these apps,

00:02:05 ◼   ► and I would like, I think it's time for iOS 12,

00:02:09 ◼   ► I think it's time for a single coherent redesign

00:02:13 ◼   ► of the system on the level of iOS 7,

00:02:16 ◼   ► or at least on the level of iOS 6,

00:02:19 ◼   ► and just provide coherent direction of here is the new design.

00:02:24 ◼   ► A lot of this is prompted by the iPhone X,

00:02:27 ◼   ► a lot of the need for this is prompted by the iPhone X,

00:02:30 ◼   ► because you have such a tall, skinny aspect ratio,

00:02:32 ◼   ► it's very hard to reach things at the top of the screen.

00:02:35 ◼   ► You also have an OLED screen now,

00:02:37 ◼   ► so black looks really good,

00:02:39 ◼   ► and people really want a lot more black,

00:02:41 ◼   ► and also there can be a power savings

00:02:43 ◼   ► to having a darker theme compared to a lighter theme.

00:02:47 ◼   ► So there's these changes now that not only

00:02:50 ◼   ► is the iOS 7 style design very dated looking,

00:02:53 ◼   ► just trend-wise, but also it kind of falls down

00:02:56 ◼   ► functionally in a number of areas,

00:02:57 ◼   ► making everything so white,

00:02:59 ◼   ► and keeping so many important controls at the top,

00:03:01 ◼   ► that I think in the new world we're now in,

00:03:04 ◼   ► we need a new design, and we need a coherent,

00:03:06 ◼   ► we need Apple to show us a single coherent design direction

00:03:11 ◼   ► that we should all be going in.

00:03:12 ◼   ► - Yeah, and I think to that end,

00:03:16 ◼   ► I totally agree that it would be lovely to have,

00:03:18 ◼   ► I feel like when iOS 7 was released,

00:03:23 ◼   ► there was a very clear, straight look and feel

00:03:27 ◼   ► that everything, well, other than the Notes app,

00:03:30 ◼   ► everything has sort of moved towards,

00:03:34 ◼   ► and then it seems like now they're kind of

00:03:36 ◼   ► experimenting out again, which is fine,

00:03:38 ◼   ► and it isn't necessarily problematic,

00:03:40 ◼   ► but it is like, I think in general,

00:03:42 ◼   ► we look to the system apps to lead the way

00:03:46 ◼   ► and to be an example, and so it certainly would be nice

00:03:49 ◼   ► to get a sense from that, or even, ideally,

00:03:51 ◼   ► it would be even more over to have a specific

00:03:54 ◼   ► sort of proclamation about what the design,

00:04:00 ◼   ► the standard design should look like,

00:04:02 ◼   ► and if you wanna go different, that's great.

00:04:04 ◼   ► If you want your app to have its own unique feel,

00:04:07 ◼   ► that's awesome, but if you're trying to be,

00:04:10 ◼   ► feel more system, feel more built in,

00:04:13 ◼   ► what does that look like?

00:04:14 ◼   ► And I feel in some ways, it reminds me,

00:04:16 ◼   ► I feel like the material design guidelines

00:04:19 ◼   ► that came out for Android is a good example,

00:04:23 ◼   ► I think, of that is a very consistent, cohesive

00:04:26 ◼   ► set of design criteria and examples that can apply

00:04:31 ◼   ► to a lot of situations, and I just don't feel

00:04:33 ◼   ► like we have that, and I think along those lines,

00:04:35 ◼   ► I've also been thinking UIKit is very complete,

00:04:39 ◼   ► but I also think that it's, in a weird way,

00:04:42 ◼   ► it still misses a bunch of little things,

00:04:45 ◼   ► and I would love to see those fully fleshed out.

00:04:48 ◼   ► Like, there are some controls that I feel like

00:04:50 ◼   ► I'm doing many, I create many times.

00:04:54 ◼   ► I mean, something that comes to mind, for example,

00:04:56 ◼   ► is like a login form.

00:04:58 ◼   ► Like, I've written, that's the same code

00:05:00 ◼   ► with the same kind of logic and the same kind of experience

00:05:03 ◼   ► so many times, and it's like, why isn't this

00:05:05 ◼   ► a standard control, that so many apps have a thing

00:05:09 ◼   ► where it's gonna ask you for two fields,

00:05:10 ◼   ► one of them's a password field, the password field

00:05:12 ◼   ► should have, you know, you do the autocorrect differently

00:05:15 ◼   ► in the password field than the other field,

00:05:16 ◼   ► you want the, when you hit next on the first field,

00:05:19 ◼   ► which is username or password, it should go

00:05:20 ◼   ► to the next field, like, this is one of these things

00:05:23 ◼   ► that, while iOS is fairly complete, there's a lot

00:05:26 ◼   ► of these little standard controls, or like a modal blocker

00:05:29 ◼   ► is another one that I think of, that almost every one

00:05:30 ◼   ► of my apps, at some point, if you do any kind

00:05:32 ◼   ► of in-app purchase or something like that,

00:05:34 ◼   ► you have kind of this modal blocking UI.

00:05:36 ◼   ► Why isn't there a standard UI kit version of that?

00:05:39 ◼   ► And you know, while that's, and both in terms of leading

00:05:42 ◼   ► a, towards a consistent design experience,

00:05:45 ◼   ► but also to just kind of round out some of these

00:05:48 ◼   ► rough edges that, you know, every app on iOS

00:05:52 ◼   ► is having to implement their own version of,

00:05:54 ◼   ► at that point, it should eventually be

00:05:55 ◼   ► a system-wide thing, probably.

00:05:57 ◼   ► - Agreed.

00:05:58 ◼   ► You have anything else on the iOS side?

00:06:01 ◼   ► - I think the only other thing that comes to mind

00:06:02 ◼   ► is just, I would love to see some kind of system-wide

00:06:05 ◼   ► dark mode support.

00:06:07 ◼   ► I think increasingly, it seems like dark modes

00:06:09 ◼   ► are a thing that a lot of people want,

00:06:13 ◼   ► especially iPhone X, on the iPhone X.

00:06:16 ◼   ► And so having a consistent system-wide sort of setting

00:06:20 ◼   ► for that, that, you know, the user would open

00:06:22 ◼   ► Control Center, go to dark, hit dark mode,

00:06:24 ◼   ► and then, you know, their phone switches over into that,

00:06:27 ◼   ► and then as an app, I can respond to that setting,

00:06:30 ◼   ► rather than it being something that is, you know,

00:06:32 ◼   ► I'm doing at my app level, which means, you know,

00:06:35 ◼   ► it's inconsistent between applications.

00:06:37 ◼   ► So I just like to see that as a, you know,

00:06:39 ◼   ► as a system-wide switch that they could,

00:06:41 ◼   ► a user could switch.

00:06:43 ◼   ► - Moving on to Mac OS.

00:06:46 ◼   ► I don't have a lot to say,

00:06:47 ◼   ► because I'm barely a Mac developer.

00:06:49 ◼   ► However, just to repeat the rumor that came out

00:06:51 ◼   ► a couple weeks ago that they were working on

00:06:52 ◼   ► some kind of cross iOS and Mac OS UI library or something,

00:06:56 ◼   ► that sounds awesome, and I really hope that's real.

00:06:58 ◼   ► And I would love to see the beginnings

00:07:01 ◼   ► of something like that, you know,

00:07:02 ◼   ► even though it's probably a major project

00:07:04 ◼   ► that is probably gonna take years to actually flesh out,

00:07:07 ◼   ► if it's underway at all, I would love to see part of that.

00:07:11 ◼   ► - Yeah, or at least to indicate that it's coming,

00:07:13 ◼   ► I think would be, like, if it's,

00:07:15 ◼   ► it would be, it's new, even if it isn't,

00:07:18 ◼   ► the first version isn't the full and most complete thing

00:07:20 ◼   ► you could imagine, I would love to just sort of see

00:07:23 ◼   ► clear indications that that is something that

00:07:26 ◼   ► they are putting weight behind and are getting into,

00:07:29 ◼   ► and if we get the first sort of baby steps of that

00:07:32 ◼   ► this year even, that would be great.

00:07:35 ◼   ► I also wanted to have a brief section here on Swift.

00:07:38 ◼   ► Even though I barely use it so far,

00:07:41 ◼   ► I would like to see just basically maturing of the language

00:07:44 ◼   ► so that maybe I could use more of it.

00:07:46 ◼   ► For me, one of the big things there is I wanna see,

00:07:49 ◼   ► you know, broadening of Swift on the server side.

00:07:51 ◼   ► I definitely have more uses for that,

00:07:53 ◼   ► for it there that I would love to use,

00:07:54 ◼   ► but it's still pretty young for that,

00:07:56 ◼   ► and there's still not a lot of great,

00:07:58 ◼   ► like, supporting libraries for that.

00:08:00 ◼   ► Also, just maturing language-wise,

00:08:03 ◼   ► I know some people are waiting on ABI stability,

00:08:05 ◼   ► that that brings a number of other benefits,

00:08:06 ◼   ► that would be nice from practical standpoints,

00:08:08 ◼   ► but also I wanna see the concurrency story

00:08:12 ◼   ► really start to play out there.

00:08:13 ◼   ► Like, what does that look like, especially, you know,

00:08:16 ◼   ► in places where it's kind of badly needed,

00:08:17 ◼   ► like the server side where you don't have

00:08:19 ◼   ► Grand Central Dispatch waiting for you, you know.

00:08:21 ◼   ► I wanna know more about that, I wanna see Swift kind of,

00:08:25 ◼   ► you know, just mature and stabilize to enable people

00:08:28 ◼   ► to use it more and more ways and more places.

00:08:31 ◼   ► - Yeah, I mean, and I use, so I do actually use Swift

00:08:35 ◼   ► in Workhouse++ exclusively,

00:08:37 ◼   ► and I agree with all of those things.

00:08:39 ◼   ► Like, I think the thing that I wish I could see more

00:08:42 ◼   ► in Swift is just this overall vague,

00:08:44 ◼   ► this overall general sense that it's stable and mature,

00:08:49 ◼   ► that the thing that is most frustrating to me with Swift

00:08:53 ◼   ► is where, like, there's this, it feels like

00:08:55 ◼   ► this never-ending stream of like,

00:08:57 ◼   ► hey, here's this other cool thing

00:08:58 ◼   ► that we thought we could do.

00:09:00 ◼   ► Hey, what about this cool thing?

00:09:01 ◼   ► Hey, what about this cool thing?

00:09:03 ◼   ► And sometimes that's fine, but a lot of,

00:09:06 ◼   ► like every time there's a new major Swift version,

00:09:08 ◼   ► it's like, the number of, you know,

00:09:10 ◼   ► they're very rarely source compatible

00:09:12 ◼   ► and backwards compatible, and while I think initially

00:09:16 ◼   ► it was reasonable and wise to not care

00:09:20 ◼   ► about source compatibility, like from Swift version one

00:09:23 ◼   ► to Swift version two, they, you know, just say like,

00:09:26 ◼   ► hey, this is not gonna be source compatible.

00:09:28 ◼   ► We're going to, you know, as we make this language

00:09:33 ◼   ► the language that we want it to be,

00:09:34 ◼   ► we're going to, you know, allow ourselves

00:09:37 ◼   ► the freedom to make changes,

00:09:38 ◼   ► and I think that has worked very well.

00:09:40 ◼   ► Like, yeah, the language has improved dramatically

00:09:43 ◼   ► as a result, but I will say it's a point where it's like,

00:09:47 ◼   ► can this just be, like, can this just be done yet?

00:09:50 ◼   ► Like, can we just move on and say like,

00:09:53 ◼   ► okay, this is what we're gonna do

00:09:54 ◼   ► with the understanding that it may not be perfect,

00:09:56 ◼   ► that the language will never be perfect,

00:09:59 ◼   ► but it's kind of frustrating to have this feeling

00:10:02 ◼   ► that if any time there's a new version of Swift,

00:10:04 ◼   ► if I recompile my app, then suddenly

00:10:06 ◼   ► half of the things are broken,

00:10:07 ◼   ► and sometimes there's migration tools

00:10:11 ◼   ► that are helpful for that, but it feels like

00:10:13 ◼   ► such a dangerous thing to have to go

00:10:17 ◼   ► and make wide reaching changes

00:10:19 ◼   ► throughout my entire application

00:10:21 ◼   ► because of a language update.

00:10:25 ◼   ► Like, it's not something that makes me feel great,

00:10:28 ◼   ► so I just wish that he'd get to that point,

00:10:30 ◼   ► have it feel stable, and for Swift to kind of be boring,

00:10:33 ◼   ► you know, like every year, it's sort of like

00:10:35 ◼   ► with Objective-C where it's like every year

00:10:37 ◼   ► we get a little something, like,

00:10:39 ◼   ► hey, now we're gonna do the ability to, you know,

00:10:43 ◼   ► do wrapping around integer literals, for example.

00:10:46 ◼   ► Like, that was like a feature they added to Objective-C

00:10:48 ◼   ► that we could do at parentheses around a number,

00:10:52 ◼   ► and then it becomes an NSNumber.

00:10:53 ◼   ► Like, that's a great little bonus.

00:10:55 ◼   ► It doesn't break your old version that was doing,

00:10:58 ◼   ► you know, creating the NSNumber directly,

00:10:59 ◼   ► but it's a nice little bonus,

00:11:00 ◼   ► and I'd love to get to that place with Swift

00:11:02 ◼   ► where it's like every year it gets a little bit better,

00:11:04 ◼   ► but not in ways that compel you to take advantage of them

00:11:08 ◼   ► because if you, you know, you have to switch your code around

00:11:11 ◼   ► or just, you know, these little quality of life changes.

00:11:14 ◼   ► That would just make me feel better about using it

00:11:17 ◼   ► 'cause at this point, I use it because I feel like

00:11:19 ◼   ► it's good for me to, you know, understand Swift,

00:11:22 ◼   ► to use it in a big app, and to future-proof myself

00:11:26 ◼   ► as a result, but I don't, you know,

00:11:30 ◼   ► I still have some of these hang-ups around it

00:11:32 ◼   ► that just aren't great.

00:11:34 ◼   ► - Yeah, it seems like the perfect is very much

00:11:36 ◼   ► being the enemy of the good with Swift now,

00:11:39 ◼   ► and they, you know, they need to settle it down,

00:11:42 ◼   ► and they have, like, they've made great progress

00:11:44 ◼   ► towards that, but it still is a moving target,

00:11:48 ◼   ► and, you know, a lot of people want their programming

00:11:51 ◼   ► language to be a source of excitement.

00:11:53 ◼   ► I really don't.

00:11:54 ◼   ► I want my programming language to be boring, as you said,

00:11:56 ◼   ► like, because I don't wanna have to worry about it

00:11:59 ◼   ► changing every year, like, I want to just, you know,

00:12:01 ◼   ► be working at a higher level than that

00:12:03 ◼   ► with where I get my excitement.

00:12:06 ◼   ► Anyway, before we jump into the big one,

00:12:08 ◼   ► which I'll give you a hint is not tvOS,

00:12:11 ◼   ► we are brought to you this week by Squarespace.

00:12:13 ◼   ► Enter offer code radar at checkout

00:12:15 ◼   ► to get 10% off your first purchase.

00:12:17 ◼   ► Make your next move with Squarespace.

00:12:20 ◼   ► Squarespace lets you easily create a website

00:12:22 ◼   ► for your next idea with a unique domain,

00:12:24 ◼   ► award-winning templates, and much more.

00:12:27 ◼   ► Whether you wanna create an online store,

00:12:29 ◼   ► or a portfolio, or a blog, or so many other kinds of website,

00:12:33 ◼   ► you can even make podcasts there.

00:12:34 ◼   ► Squarespace is an all-in-one platform

00:12:36 ◼   ► that lets you do exactly that.

00:12:38 ◼   ► There's nothing to install, no patches to worry about,

00:12:41 ◼   ► no upgrades needed, you don't have to worry

00:12:42 ◼   ► about any of that stuff, Squarespace has it covered.

00:12:45 ◼   ► And if you need any help, they have award-winning

00:12:47 ◼   ► 24/7 customer support.

00:12:49 ◼   ► And it's so easy with Squarespace to do everything

00:12:51 ◼   ► you need to make a website, from easily grabbing

00:12:53 ◼   ► a unique domain name, and building amazing templates,

00:12:57 ◼   ► these are award-winning, beautiful design templates

00:12:59 ◼   ► for you to show off your great ideas.

00:13:01 ◼   ► I use Squarespace for a couple of sites,

00:13:03 ◼   ► and it is just so incredibly easy.

00:13:05 ◼   ► I think a lot of listeners to this show

00:13:07 ◼   ► probably are likely to have the skill set

00:13:08 ◼   ► where you could make your own CMS,

00:13:10 ◼   ► or you can run a server and host CMS there.

00:13:14 ◼   ► But that's usually not a very good use of your time.

00:13:16 ◼   ► You really shouldn't be doing that,

00:13:17 ◼   ► you should be doing bigger, better things

00:13:19 ◼   ► than running your own CMS in your server.

00:13:21 ◼   ► And that's what Squarespace lets you do,

00:13:22 ◼   ► it lets you take that time back,

00:13:25 ◼   ► and let them take care of the boring website hosting,

00:13:27 ◼   ► and you can do better things.

00:13:29 ◼   ► So, go to squarespace.com, Squarespace plans start

00:13:32 ◼   ► at just $12 a month, and you can start a trial

00:13:35 ◼   ► with no credit card required.

00:13:38 ◼   ► When you decide to sign up for Squarespace,

00:13:40 ◼   ► make sure you use offer code RADAR to get 10%

00:13:43 ◼   ► off your first purchase, and to show your support

00:13:45 ◼   ► for this show, we thank Squarespace for their support.

00:13:47 ◼   ► Squarespace, make your next move, make your next website.

00:13:50 ◼   ► So, here comes the big one, I think both of us

00:13:54 ◼   ► have a lot to say for the platform that I think

00:13:58 ◼   ► gives us the most wish list items, WatchOS.

00:14:02 ◼   ► To me, what it comes down to with WatchOS,

00:14:06 ◼   ► the big thing, I have a lot of small complaints

00:14:08 ◼   ► about WatchOS as a developer, but the big complaint for me,

00:14:14 ◼   ► Steve Jobs, during the very first iPhone keynote

00:14:17 ◼   ► in Macworld 2007, there was a section debuting

00:14:22 ◼   ► the Safari web browser on the iPhone,

00:14:24 ◼   ► and this was a revelation, and Steve famously said

00:14:27 ◼   ► that all the other phones at the time only had, quote,

00:14:30 ◼   ► baby web browsers, you only seeing the baby internet,

00:14:34 ◼   ► and the iPhone was the breakthrough that would bring

00:14:36 ◼   ► the real internet, real full web capability to phones.

00:14:41 ◼   ► WatchKit is only letting us build baby apps.

00:14:45 ◼   ► And Apple does not use WatchKit themselves,

00:14:49 ◼   ► and it really, really shows.

00:14:51 ◼   ► Considering the iPhone 1 nostalgia here,

00:14:54 ◼   ► it's kinda like when iPhone OS 1.0,

00:14:57 ◼   ► there was no native app API for developers,

00:15:00 ◼   ► and they gave us the sweet solution of these inferior,

00:15:04 ◼   ► limited web apps, and Apple's own apps were all native,

00:15:08 ◼   ► and they didn't, you know, Apple's apps were way better

00:15:10 ◼   ► than what people could do with web apps in 2007.

00:15:13 ◼   ► Apple needs to either port all of their watch apps

00:15:19 ◼   ► to WatchKit, which would require them to expand

00:15:22 ◼   ► and improve it quite a bit to accommodate

00:15:24 ◼   ► all the things they do in their apps,

00:15:26 ◼   ► or they need to let developers finally write watch apps

00:15:29 ◼   ► with the same UI framework and the same APIs

00:15:32 ◼   ► that Apple uses for its watch apps,

00:15:34 ◼   ► because until that happens, we will only ever be able

00:15:38 ◼   ► to make baby apps for the watch.

00:15:40 ◼   ► And it's not reaching its full potential.

00:15:43 ◼   ► It's not even close to reaching its full potential.

00:15:45 ◼   ► Ultimately, I have a lot of specifics about watchOS,

00:15:49 ◼   ► but the big general thing is we can only write baby apps

00:15:53 ◼   ► with WatchKit, and Apple doesn't use it, and it shows.

00:15:57 ◼   ► - Yeah, I mean, and I will say, like,

00:15:59 ◼   ► while I have a very long list of like,

00:16:01 ◼   ► kinda wishlist items for watchOS,

00:16:03 ◼   ► I think the reason why I have such a long list

00:16:06 ◼   ► is because I feel like the platform has so much promise.

00:16:08 ◼   ► It has such a, there's so many possibilities

00:16:11 ◼   ► that are untapped there in a way that the iPhone and iOS

00:16:15 ◼   ► or some of the other platforms like the Mac

00:16:16 ◼   ► feel very mature, very stable, very kind of done,

00:16:21 ◼   ► whereas I still feel like I've spent a tremendous amount

00:16:24 ◼   ► of time making apps for the watch,

00:16:25 ◼   ► and I feel like there is still a lot of potential there.

00:16:27 ◼   ► There's a lot of things that I wish I was able to do,

00:16:30 ◼   ► but I feel like I'm sort of being held back.

00:16:33 ◼   ► And I mean, so much of this feels like

00:16:35 ◼   ► it's this weird hangover from, you know,

00:16:38 ◼   ► WatchKit 1 apps, where it was this weird, like,

00:16:41 ◼   ► clever but very weird situation where, you know,

00:16:43 ◼   ► the UI ran on the watch, but the logic ran on the phone.

00:16:47 ◼   ► And so, you know, currently you have, you know,

00:16:49 ◼   ► all of your UI still goes into one giant storyboard,

00:16:52 ◼   ► and you can write, you know, send data to UI controls,

00:16:57 ◼   ► but you can't read it back,

00:16:58 ◼   ► and you can't dynamically change it.

00:17:01 ◼   ► You have to, you know, you either have to have

00:17:05 ◼   ► lots of different, you know, interfaces

00:17:07 ◼   ► for different layouts, or have layouts that are very,

00:17:11 ◼   ► you know, it's like have lots of hidden controls

00:17:14 ◼   ► and things like that, or you end up doing crazy stuff

00:17:17 ◼   ► like I do in Workouts++.

00:17:19 ◼   ► Like, I wanted to have a totally customized

00:17:22 ◼   ► workout display, and so I render that as an image

00:17:27 ◼   ► and send it to the screen once a second,

00:17:30 ◼   ► which is terrible, but it works well enough.

00:17:33 ◼   ► But it's like, there's all these situations like that

00:17:35 ◼   ► that mean that I'm not able to do things

00:17:37 ◼   ► that I would love to do.

00:17:38 ◼   ► Like, I would love to be able to have more animation

00:17:41 ◼   ► and, you know, the similar types of experiences

00:17:44 ◼   ► in my applications, but it's really hard to do

00:17:47 ◼   ► animation right now in WatchOS, but clearly it's possible.

00:17:50 ◼   ► Just look at the first-party apps.

00:17:52 ◼   ► Like, they are doing a lot of things there

00:17:54 ◼   ► that are clearly possible, and as best I understand,

00:17:57 ◼   ► from a technical perspective, largely they're just

00:18:00 ◼   ► running UI kit applications with a slightly different,

00:18:04 ◼   ► you know, a few different controls, but they have

00:18:07 ◼   ► the ability for us to do that, and it's really strange,

00:18:11 ◼   ► I've thought, on the UI side of things, that they keep,

00:18:14 ◼   ► they've added SpriteKit and SceneKit to it,

00:18:18 ◼   ► which I've tried a little bit, but it's like,

00:18:21 ◼   ► they're way overblown for what most applications

00:18:24 ◼   ► are trying to do, but yet they still haven't given us

00:18:29 ◼   ► UI kit, which is the one that would actually be useful,

00:18:32 ◼   ► and maybe it's not full UI kit, like I don't need

00:18:34 ◼   ► UI table views on my watch, but having the ability

00:18:39 ◼   ► to override drawRect on a view and put things into it,

00:18:45 ◼   ► or I'm able to dynamically add and remove subviews,

00:18:48 ◼   ► like some of these really basic operations, I think,

00:18:51 ◼   ► would dramatically increase the capability

00:18:55 ◼   ► of our applications, and it's like, clearly it's possible,

00:18:58 ◼   ► so that gives me some encouragement that it's not like

00:19:01 ◼   ► we're asking for the moon, that it's just, you know,

00:19:03 ◼   ► that it's technically impossible to do these things,

00:19:06 ◼   ► because their apps are currently doing it,

00:19:08 ◼   ► and I just hope that eventually we get to the point

00:19:10 ◼   ► that they say, you know, we're gonna drop this paradigm

00:19:13 ◼   ► that was necessary for watch kit one, and we're gonna

00:19:17 ◼   ► replace it with something new, with something better,

00:19:19 ◼   ► and kind of run in a different direction that will allow us

00:19:23 ◼   ► to do so much more, because I feel like the types

00:19:26 ◼   ► of applications and how compelling those applications can be

00:19:29 ◼   ► would just dramatically increase when they finally

00:19:32 ◼   ► do that, hopefully.

00:19:33 ◼   ► - Yeah, because watch kit, it was designed back

00:19:36 ◼   ► for the watch one when the apps were running on the phone,

00:19:39 ◼   ► and it was just sending the, basically transmitting

00:19:42 ◼   ► basic UI commands to the watch UI, and having it kind of

00:19:46 ◼   ► run remotely, and so it's a very simplistic UI framework

00:19:51 ◼   ► that's very, very limited in all these ways, you know,

00:19:53 ◼   ► and it seemed like that was just the temporary solution,

00:19:58 ◼   ► that maybe it was rushed together, you know, at a late time

00:20:01 ◼   ► in the project, when they decided, oh, we do need

00:20:02 ◼   ► third party apps from day one, or something like that,

00:20:04 ◼   ► you know, we've heard mixed things here and there,

00:20:05 ◼   ► it doesn't matter, but it seems like that was like

00:20:09 ◼   ► kind of a temporary rush job, to get the minimum

00:20:11 ◼   ► functionality for apps to work on the watch,

00:20:14 ◼   ► and then rather than throwing it away when they had

00:20:16 ◼   ► more time and moved native execution to the watch,

00:20:20 ◼   ► they just kept it, and now we're running this, like,

00:20:23 ◼   ► limited, this very limited UI framework as our only way

00:20:28 ◼   ► to make watch UIs, that's not sustainable long term,

00:20:33 ◼   ► and you can tell, if it was so good, why doesn't Apple

00:20:36 ◼   ► use it, you know, and the answer is, because it's not so

00:20:39 ◼   ► good, it's very limited, and as, you know, for all these

00:20:42 ◼   ► reasons you just said, there are so many ways to make

00:20:44 ◼   ► better and nicer watch apps if we had direct access

00:20:49 ◼   ► to the version of UI kit that they run, but we don't,

00:20:53 ◼   ► and it's kind of, on so many levels it's frustrating

00:20:57 ◼   ► that, you know, it really does feel very similar to

00:21:00 ◼   ► the iPhone 1 with us having to make web apps and Apple

00:21:03 ◼   ► doing all the cool native stuff, and there, you know,

00:21:05 ◼   ► I can get into some specifics for what specifically

00:21:08 ◼   ► bothers me about my watch app capability beyond just

00:21:11 ◼   ► the UI stuff that you mentioned, which, by the way,

00:21:14 ◼   ► so much of what makes watch apps limited and in many ways

00:21:18 ◼   ► mediocre is those UI limitations, like so many things

00:21:21 ◼   ► about, oh well, you can't have this kind of title show

00:21:23 ◼   ► here without rendering the whole screen manually,

00:21:25 ◼   ► or you can't have this kind of screen that presents

00:21:28 ◼   ► from this kind of screen, or like, just weird limitations,

00:21:31 ◼   ► or like, gesture recognizer priority, like I can't do

00:21:34 ◼   ► certain types of designs because it makes the taps

00:21:37 ◼   ► not recognize properly because I can't have control

00:21:39 ◼   ► over the gesture recognizers, like, there's so many

00:21:41 ◼   ► little things, little and big things, because watch OS,

00:21:46 ◼   ► or watch kit, is not UI kit, it does not expose what

00:21:49 ◼   ► UI kit exposes, and we could make such better apps

00:21:53 ◼   ► if we had what we have on iOS, and it doesn't,

00:21:55 ◼   ► and you're right, it doesn't seem like there's any kind

00:21:57 ◼   ► of major technical reason why we can't, because those APIs

00:22:01 ◼   ► are all there, just they're private on the watch,

00:22:03 ◼   ► and we can't use them, and only Apple can use them.

00:22:05 ◼   ► You know, I'm not asking for a lot of, like, you know,

00:22:07 ◼   ► heavy processing things or trying to keep the screen

00:22:10 ◼   ► on all the time or anything like that, like,

00:22:13 ◼   ► we're asking for, like, better button libraries

00:22:16 ◼   ► and better view libraries and stuff.

00:22:19 ◼   ► Specifically, you know, I also have problems with

00:22:22 ◼   ► the media capabilities, I think it's pretty clear that

00:22:25 ◼   ► a very major use case for the watch, especially as it

00:22:28 ◼   ► becomes more independent from the phone, is audio playback,

00:22:31 ◼   ► and Apple really does not make that good, and I've

00:22:34 ◼   ► documented this in so many ways in the past, so I'm not

00:22:37 ◼   ► gonna go deep on it now, I would say specifically I would

00:22:41 ◼   ► like to have background audio for any app, not just

00:22:44 ◼   ► workout apps, that's the big one, let the app continue

00:22:47 ◼   ► to work in the background, just like it does on iOS,

00:22:50 ◼   ► and just like it does on the watch, if it happens to be

00:22:51 ◼   ► a workout app that's running a workout, so we know

00:22:53 ◼   ► it's possible, but you know, let any app play background

00:22:57 ◼   ► audio on the watch, the same way it works on the phone,

00:22:59 ◼   ► only one of them can be playing it at once, that's fine,

00:23:01 ◼   ► that way you keep memory in check and everything,

00:23:03 ◼   ► let the app run in the background while playing audio,

00:23:06 ◼   ► and drop WK audio file player and that entire awful system.

00:23:10 ◼   ► I would also like to see the MP now playing info center,

00:23:15 ◼   ► or an equivalent, to let us control what shows on the now

00:23:17 ◼   ► playing screen, and also MP remote command center,

00:23:22 ◼   ► or its equivalent, which lets us interpret the skip back,

00:23:27 ◼   ► skip forward, play pause buttons, or commands from AirPods

00:23:30 ◼   ► and other Bluetooth headphones, lets us interpret those

00:23:32 ◼   ► in our app in custom ways, these are both things that

00:23:35 ◼   ► have been listed on the iPhone for about a decade,

00:23:38 ◼   ► and they're great, and so we need that, or we need some

00:23:43 ◼   ► equivalent of those things on watchOS.

00:23:45 ◼   ► - Yeah, and I think I'd add to that, in the same vein,

00:23:47 ◼   ► I would love to be able to have some kind, like the now

00:23:52 ◼   ► playing app, I would love to see something the equivalent

00:23:57 ◼   ► of a now playing interface controller that could be

00:23:59 ◼   ► inserted into other apps, so for me, for example,

00:24:02 ◼   ► I'd love to be able to, if you're listening to music

00:24:06 ◼   ► from your iPhone, or from the music app on the watch,

00:24:12 ◼   ► to be able to control that within the app, that you don't

00:24:14 ◼   ► have to leave and come back, or at the very least,

00:24:16 ◼   ► to be able to control the volume.

00:24:18 ◼   ► - Yes, volume's a big one.

00:24:19 ◼   ► - It is incredibly frustrating that, especially because

00:24:23 ◼   ► AirPods are Apple's, their solution for it is a Bluetooth

00:24:28 ◼   ► headset that has no way to control the volume,

00:24:30 ◼   ► it would be awesome if they allowed applications to,

00:24:35 ◼   ► either, I could understand, maybe they don't want you

00:24:37 ◼   ► to be programmatically able to set the volume,

00:24:39 ◼   ► but then at least give me a control, like give me some

00:24:41 ◼   ► UI element that I can add to my application that does

00:24:44 ◼   ► allow you to control the volume, I would love to see that,

00:24:47 ◼   ► and I think it has, it allows for just a broadening

00:24:50 ◼   ► of what's possible, you know, with audio on the watch,

00:24:54 ◼   ► beyond even, you know, like being able to play audio

00:24:56 ◼   ► is really important, but I think even at the very least,

00:24:59 ◼   ► being able to control the audio that is playing from

00:25:00 ◼   ► another source would be a massive step forward.

00:25:03 ◼   ► - Yeah, exactly, and I would also wish for better and

00:25:08 ◼   ► more informative phone to watch file transfers,

00:25:11 ◼   ► the file transfer API is very, very limited,

00:25:15 ◼   ► specifically, it does not allow you to create a good

00:25:17 ◼   ► user experience because, A, it's super slow,

00:25:20 ◼   ► even if WiFi is available, even if it's on its charger,

00:25:23 ◼   ► it will not use WiFi, if it can use Bluetooth instead,

00:25:27 ◼   ► and Bluetooth is way slower, so you basically have

00:25:30 ◼   ► a pretty bad situation where like, you can't force

00:25:34 ◼   ► the transfer to use the fast WiFi, even, you know,

00:25:37 ◼   ► no matter what the power state is.

00:25:38 ◼   ► Also, there's no progress reporting, which is a huge problem,

00:25:43 ◼   ► so basically, you can't create a good user experience

00:25:47 ◼   ► because the user has this long-running, you know,

00:25:51 ◼   ► horribly slow Bluetooth file transfer that they're

00:25:54 ◼   ► waiting on, and all you can say is,

00:25:57 ◼   ► I think it's transferring, or it's done, that's it,

00:26:00 ◼   ► those are the only two states you can tell is,

00:26:02 ◼   ► I think it's going and it's done, you know,

00:26:05 ◼   ► what we're asking for here is not the world, you know,

00:26:09 ◼   ► what we're asking for here is ways to let us make apps

00:26:14 ◼   ► that give people good functionality

00:26:16 ◼   ► and good user experiences.

00:26:18 ◼   ► That's what we want from watchOS, and I just,

00:26:21 ◼   ► I don't wanna be making a baby app anymore,

00:26:23 ◼   ► I wanna be making real watchOS apps so that I can

00:26:26 ◼   ► actually make good watchOS apps.

00:26:29 ◼   ► - Yeah, and to that end, what I love about some of these

00:26:31 ◼   ► things that we're asking for, like, I would love, you know,

00:26:33 ◼   ► to have faster transfers between the phone and the watch,

00:26:36 ◼   ► or just for the watch in general to be faster downloading,

00:26:38 ◼   ► like, even if it's downloading from the internet.

00:26:41 ◼   ► But I love, what's frustrating and encouraging to me

00:26:44 ◼   ► is that I know this is technically possible,

00:26:47 ◼   ► because if I take a Series 3 Apple Watch,

00:26:49 ◼   ► and I put my phone in airplane mode,

00:26:52 ◼   ► and I'm not on any wifi, like I go walk out into a field

00:26:54 ◼   ► that has good LTE reception, I can download, you know,

00:26:58 ◼   ► I can download podcasts from remote servers

00:27:01 ◼   ► at tremendous speeds.

00:27:03 ◼   ► Like, I can download an entire podcast in 10 seconds.

00:27:06 ◼   ► So, tech, clearly, the hardware and the frameworks

00:27:09 ◼   ► are there for us to allow this.

00:27:11 ◼   ► It's just a question of opening it up.

00:27:13 ◼   ► And so I would hope that at a certain point,

00:27:15 ◼   ► they just allow it.

00:27:16 ◼   ► And they say, if they take a hit on battery life,

00:27:18 ◼   ► but it means that, like, I would far prefer

00:27:21 ◼   ► for my watch to be incredibly compelling and useful,

00:27:25 ◼   ► and have a more difficulty on battery life,

00:27:29 ◼   ► because honestly, battery life has gotten so good

00:27:32 ◼   ► that I imagine they have the headroom to do this anyway.

00:27:34 ◼   ► But I would love to, yeah, just get rid of Bluetooth

00:27:37 ◼   ► unless you absolutely have to,

00:27:38 ◼   ► or at least give us the ability to say,

00:27:41 ◼   ► this is a high priority or user interactive task.

00:27:44 ◼   ► And so, like, for a user interactive task,

00:27:48 ◼   ► even if there's some app review that I have to compel,

00:27:52 ◼   ► I have to say why I'm user interactive,

00:27:53 ◼   ► why I need the permission to skip Bluetooth

00:27:56 ◼   ► and go straight to wifi, I don't care.

00:27:59 ◼   ► But I would love to have the ability to do that.

00:28:01 ◼   ► I think it would make the app so much more compelling

00:28:03 ◼   ► and just open up so many more things.

00:28:05 ◼   ► - I would also like to see, I think it's time

00:28:08 ◼   ► for developers to be able to make custom watch faces.

00:28:11 ◼   ► That that should be an app type that we can offer,

00:28:13 ◼   ► or an extension type that we can offer.

00:28:15 ◼   ► Because the Apple Watch has so much potential

00:28:18 ◼   ► for smarts and for intelligence,

00:28:21 ◼   ► and for just cool design choices in the watch faces.

00:28:24 ◼   ► It's hard to do in a way that's power efficient

00:28:28 ◼   ► to offer developers this ability.

00:28:30 ◼   ► I know it's hard, but there's a lot of smart people

00:28:32 ◼   ► working at Apple, and the watch is now, what,

00:28:34 ◼   ► three years old?

00:28:35 ◼   ► So, I think they can make it happen if they want to.

00:28:37 ◼   ► And it's also pretty clear that Apple is not gonna supply

00:28:40 ◼   ► a lot of custom watch faces themselves.

00:28:42 ◼   ► They added them very slowly, very, very slowly.

00:28:45 ◼   ► I'd like to be able to do that.

00:28:46 ◼   ► And so, that's one more little kind of stretch goal

00:28:49 ◼   ► wish list item, besides drop all of watch kit.

00:28:52 ◼   ► (laughs)

00:28:54 ◼   ► Minor thing here, also let us make custom watch faces.

00:28:56 ◼   ► - Yeah, and I think, or at the very least,

00:28:58 ◼   ► I would love to see a better mechanism for complications.

00:29:01 ◼   ► That I feel like the current complication system

00:29:04 ◼   ► is built around the concept of time travel.

00:29:06 ◼   ► - Right, which is flop, I think.

00:29:08 ◼   ► - A feature that was there in the first early versions

00:29:11 ◼   ► of watchOS, and now I think is off by default.

00:29:13 ◼   ► Like, no one likes it, but the basic sort of

00:29:16 ◼   ► complication system is still built around this concept

00:29:19 ◼   ► of having to provide data for the future and the past.

00:29:22 ◼   ► And like, I would love to see that kind of overwritten

00:29:24 ◼   ► and be made more straightforward and more telling

00:29:28 ◼   ► to the current situation.

00:29:29 ◼   ► - Yeah.

00:29:30 ◼   ► All right, well, here's hoping you get some of our wishes,

00:29:32 ◼   ► and here's hoping for a good 2018.

00:29:34 ◼   ► Thanks for listening, everybody,

00:29:35 ◼   ► and we'll talk to you next week.

00:29:37 ◼   ► - Bye.

00:29:37 ◼   ► [