PodSearch

Under the Radar

85: iOS 11

 

00:00:00 ◼   ► Welcome to Under the Radar, a show about independent iOS app development.

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

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

00:00:07 ◼   ► Under the Radar is never longer than 30 minutes, so let's get started.

00:00:11 ◼   ► So today we are going to sort of continue unpacking WWDC and transition from watchOS

00:00:18 ◼   ► that we talked about last week.

00:00:19 ◼   ► This week we're going to start talking about iOS.

00:00:22 ◼   ► We'll see how it goes in terms of if it's just today or this week and next week.

00:00:26 ◼   ► But there's a lot of really cool stuff in iOS, and I think it's fun to kind of walk

00:00:30 ◼   ► through it both in terms of things that we think are cool for ourselves and for our own

00:00:36 ◼   ► apps, as well as to just unpack some of the cool stuff there.

00:00:39 ◼   ► Because I think this year, with their emphasis on technologies and refinements, like on the

00:00:46 ◼   ► technology side, they added a whole bunch of stuff that is really cool and interesting

00:00:50 ◼   ► technically.

00:00:52 ◼   ► But I'm not sure yet, it hasn't much application, if any, to my own projects.

00:00:58 ◼   ► But it's still interesting, and I'm trying my best to be aware of those technologies,

00:01:04 ◼   ► just so I can have them in the back of my mind.

00:01:07 ◼   ► But probably the best thing also just to mention is if you haven't gone through a lot of these

00:01:14 ◼   ► beta cycles is there's usually two documents that are the best place to sort of get started

00:01:18 ◼   ► with looking at what's new in iOS.

00:01:22 ◼   ► And there's usually an actual document called "What's New in iOS."

00:01:25 ◼   ► I'll have a link to it in the show notes, which is Apple's sort of like big, high-level

00:01:31 ◼   ► structural change document, which is great.

00:01:35 ◼   ► And then there used to be the old API diffs document, which Apple doesn't really do anymore,

00:01:40 ◼   ► which I have actually filed a radar about, which I'll also have a link to in the show

00:01:43 ◼   ► notes.

00:01:45 ◼   ► And instead, somebody has independently generated a nice diff, which I'll have a link to as

00:01:51 ◼   ► well, which are great.

00:01:52 ◼   ► Like the API diffs are super low level, which is probably why Apple got rid of them.

00:01:57 ◼   ► But I've always found them to be tremendously helpful to just kind of survey all of the

00:02:02 ◼   ► changes.

00:02:03 ◼   ► And it's the only place you'll ever find these little one-method changes where suddenly something

00:02:08 ◼   ► that used to be really hard, now there's a convenience method for it.

00:02:13 ◼   ► Or they've added -- I run this a lot with HealthKit, where they add a very specific

00:02:18 ◼   ► subtype somewhere.

00:02:20 ◼   ► And it doesn't show up in the high-level documents.

00:02:22 ◼   ► So anyway, I'd recommend just browsing through these things and just looking for things that

00:02:27 ◼   ► might be relevant for you.

00:02:29 ◼   ► And that's sort of the process that I take.

00:02:32 ◼   ► And it seems to work.

00:02:33 ◼   ► >> Yeah, I agree.

00:02:34 ◼   ► Those API diffs, it's a little hard to filter through them to get things that are actually

00:02:41 ◼   ► really relevant to you.

00:02:42 ◼   ► Because in recent years, ever since Swift's announcement, many of the actual differences

00:02:49 ◼   ► in the APIs have been things that aren't really substantive, things like nullability changes

00:02:53 ◼   ► or changing ID to instance type.

00:02:57 ◼   ► So there's been a lot of changes like that that most of the diffing tools, including

00:03:02 ◼   ► the one that Apple used to publish, they keep in there.

00:03:05 ◼   ► So you have to do quite a lot of scrolling sometimes and filtering through.

00:03:12 ◼   ► And to get rid of that, to do a more intelligent version, you basically have to build a compiler.

00:03:17 ◼   ► So most people don't do that, understandably.

00:03:20 ◼   ► But I always find things in the API diffs that I would not have found if I was only

00:03:27 ◼   ► watching sessions and seeing the videos and stuff like that.

00:03:30 ◼   ► >> The first technology that it's, I don't know if there's a particular order that makes

00:03:33 ◼   ► sense for this, but one that I'm kind of fascinated by but have absolutely no use for is CoreML,

00:03:41 ◼   ► which as best I can tell is a way that Apple is now packaging up the machine learning,

00:03:51 ◼   ► take a giant bucket of data and pour it through some kind of modeling system to end up with

00:03:58 ◼   ► a feature identification or that kind of machine learning process, and they're making it ridiculously

00:04:07 ◼   ► fast on their ridiculously custom hardware, which is really cool.

00:04:13 ◼   ► I see some of the things that they're doing where it's like, here's a picture, tell me

00:04:16 ◼   ► where it was taken, tell me the objects that were in it.

00:04:19 ◼   ► And in many ways, this seems like an extension of all of the stuff that they've been doing

00:04:23 ◼   ► themselves in the Photos app, for example, or the Camera app for a long time.

00:04:29 ◼   ► They've been doing this kind of work previously, and now they're just turned it into a general

00:04:34 ◼   ► purpose framework, which is great.

00:04:37 ◼   ► I don't think I have much to do with it yet.

00:04:40 ◼   ► I'm starting to play with a little bit of some of the things that I do, for example,

00:04:43 ◼   ► in sleep analysis, where I do some basic processing on motion data to identify different periods

00:04:50 ◼   ► of sleep.

00:04:51 ◼   ► Theoretically, that kind of thing might ultimately be possible to turn into a machine learning

00:04:55 ◼   ► kind of a situation, but it is so outside of my expertise that that's a project for

00:05:04 ◼   ► probably something like next spring when things tend to get slow and I'm just looking for

00:05:08 ◼   ► a little fun thing to do for a couple weeks.

00:05:11 ◼   ► And it may work, it may not, but in general, it's kind of cool.

00:05:15 ◼   ► And it's the kind of technology that I always love it when Apple can bundle up something

00:05:20 ◼   ► that they've developed internally and then publish it to us, because usually that means

00:05:25 ◼   ► that it's fairly well baked, fairly well thought through.

00:05:28 ◼   ► They've built this for themselves first and then are just exposing it to us.

00:05:32 ◼   ► And so I would expect it to go reasonably well if you have an application that can take advantage

00:05:37 ◼   ► of this.

00:05:38 ◼   ► Yeah, I too, I really do not know very much about modern machine learning techniques and

00:05:46 ◼   ► frameworks and I don't even have a good vocabulary on these technologies to be able

00:05:52 ◼   ► to not only discuss them intelligently at all, but also I don't even know if I can

00:05:58 ◼   ► use them or not.

00:05:59 ◼   ► I really need to devote some time, and I think your suggestion of possibly the quiet spring

00:06:04 ◼   ► time is a really good idea, to just familiarize myself with modern machine learning algorithms

00:06:11 ◼   ► and types and just what these tools can even do before I have any idea whether I can use

00:06:16 ◼   ► them or not.

00:06:17 ◼   ► Yeah, and I don't know if there's anything more to say on CoreML other than it looks

00:06:22 ◼   ► really cool, but way over my head.

00:06:27 ◼   ► The next one that I think is, this is one I understand a bit better, but I'm not really

00:06:32 ◼   ► sure I have anything to do with it, but is ARKit, which is sort of the other sort of

00:06:37 ◼   ► brand new technology that Apple seems to be pushing this year.

00:06:41 ◼   ► And I think when I first heard about AR, and I mean, it feels like for the last couple

00:06:48 ◼   ► of years, like Tim Cook has kept saying AR is the future when everyone asked him about

00:06:52 ◼   ► VR and everyone's like, "Oh, no, no, no, it's AR."

00:06:54 ◼   ► I'm not sure I really got what he was talking about or why it would be interesting.

00:07:00 ◼   ► And now that this technology is out and it makes building AR or augmented reality applications

00:07:06 ◼   ► reasonably straightforwardly, it's interesting to see.

00:07:11 ◼   ► And I think the key thing that I've noticed in this is that AR doesn't allow you to do

00:07:17 ◼   ► something that you couldn't do previously with just regular 3D graphics.

00:07:26 ◼   ► The demo they had at the W3C keynote of the little scene where spaceships are coming in

00:07:33 ◼   ► and people are interacting, that's cool.

00:07:36 ◼   ► That could just as easily not have had a table as the background, and we've been able to

00:07:41 ◼   ► do that forever.

00:07:42 ◼   ► But I think the thing that's been interesting now that this technology is out there, and

00:07:47 ◼   ► that is making me start to understand why this is really potentially useful, is some

00:07:55 ◼   ► examples that have started to crop up since the first beta came out.

00:07:59 ◼   ► And specifically, there's a great website madewitharkit.com, which is just a simple

00:08:05 ◼   ► site that somebody's aggregating people whenever they post videos of cool stuff they're doing

00:08:09 ◼   ► with ARKit.

00:08:12 ◼   ► And I think what I finally had the cognitive switch on is why ARKit is powerful is because

00:08:20 ◼   ► it makes something like that, that same kind of thing that we've had for years of a 3D

00:08:25 ◼   ► model in space, it makes the interaction with that 3D space feel natural and feel less complicated.

00:08:37 ◼   ► Like you or I might feel entirely comfortable navigating a 3D world with a keyboard and

00:08:43 ◼   ► mouse in a 3D shooter or a flying game or something like that, where once you get used

00:08:50 ◼   ► to that, I can fairly adeptly move myself through 3D space, which is probably not necessarily

00:08:59 ◼   ► the case for everybody.

00:09:00 ◼   ► It might be really confusing and complicated to navigate in a generated 3D world, but if

00:09:08 ◼   ► you take that 3D world and move it into something where suddenly it is immediately natural and

00:09:16 ◼   ► understandable.

00:09:17 ◼   ► You're looking through this little window on your phone, but it looks just like you're

00:09:23 ◼   ► looking at your desk, you're looking at the floor.

00:09:26 ◼   ► It's not this crazy thing and it behaves like you would expect.

00:09:30 ◼   ► If you pick your phone up and move it up, you look higher on the thing, you look lower.

00:09:35 ◼   ► And that I think is where things are getting interesting.

00:09:38 ◼   ► I'm not sure if I have an app yet for this, but once I wrap my head around it, the key

00:09:44 ◼   ► thing here is it takes this 3D graphics modeling world and makes it immediately understandable

00:09:51 ◼   ► to anybody.

00:09:52 ◼   ► Imagine you could give an AR app to a young child and they would get it immediately.

00:09:58 ◼   ► It's immediately obvious that as you move it around, you can see things around.

00:10:02 ◼   ► As you move closer, things get bigger.

00:10:04 ◼   ► As you move farther away, things get smaller.

00:10:06 ◼   ► And that is really interesting.

00:10:09 ◼   ► I don't know if I have anything to do with this yet.

00:10:13 ◼   ► I saw one health and fitness app that was taking advantage of it, which was really cool,

00:10:18 ◼   ► but they used mapping data to generate a 3D map of a run they went on.

00:10:26 ◼   ► And you could kind of project that onto a table and you could look at what you did and

00:10:32 ◼   ► watch the trace of it move around, which is really cool.

00:10:35 ◼   ► I don't know if that really makes sense for adding to a workouts app.

00:10:40 ◼   ► But there's something here and it's kind of cool to see.

00:10:44 ◼   ► And if anything, probably ARKit is one that I'm most looking forward to this fall, just

00:10:48 ◼   ► like downloading a ton of apps that are doing fun stuff with it and trying it out.

00:10:55 ◼   ► It's important to see this now as a 1.0.

00:10:59 ◼   ► AR right now seems, first of all, as you said, there's a lot of cool features and things

00:11:05 ◼   ► we could do with this that we mostly just haven't really thought of yet.

00:11:09 ◼   ► And it is awfully specialized.

00:11:11 ◼   ► Most apps are going to have no use for this, as with many of these technologies.

00:11:15 ◼   ► But that's not to say that there aren't good uses for it.

00:11:19 ◼   ► And it is still also a very early version of AR.

00:11:23 ◼   ► So for instance, this has to run on phones that only have one camera.

00:11:27 ◼   ► And in a while, in a few years, maybe every iPhone that runs the current OS will have

00:11:32 ◼   ► two cameras and it can do cooler things.

00:11:35 ◼   ► Right now, it's basically table kit.

00:11:38 ◼   ► You can do really cool stuff on tables.

00:11:41 ◼   ► And that's great.

00:11:42 ◼   ► I don't know a lot of people who have a bunch of empty tables lying around who want to fill

00:11:45 ◼   ► them with 3D models.

00:11:46 ◼   ► But we will find cool uses for it.

00:11:48 ◼   ► But it's also going to get better over time.

00:11:50 ◼   ► Like already, the current AR kit is limited only to horizontal surfaces.

00:11:54 ◼   ► But in the docks, there's a couple of mentions of vertical surfaces.

00:11:57 ◼   ► And the APIs for those are conveniently missing.

00:12:00 ◼   ► So clearly, in the future, they're probably going to add vertical surfaces.

00:12:04 ◼   ► And then maybe it'll be better detecting irregular surfaces, surfaces that aren't perfectly flat.

00:12:08 ◼   ► Like if you're outside and you're looking at a hill, how do you map that into AR space?

00:12:14 ◼   ► Because it isn't a single plane or it isn't a flat plane.

00:12:17 ◼   ► So over time, this is going to get better.

00:12:19 ◼   ► And the potential uses for it are going to grow.

00:12:22 ◼   ► So right now, while it seems like hyper-specialized, I think it actually, over time, will become

00:12:29 ◼   ► much bigger than that.

00:12:30 ◼   ► So I'm looking forward to it.

00:12:31 ◼   ► Yeah.

00:12:32 ◼   ► And I guess it's just fun.

00:12:35 ◼   ► It's cool to see something like this because you can just kind of make these silly but

00:12:40 ◼   ► very fun apps.

00:12:44 ◼   ► It's just a really cool technology.

00:12:45 ◼   ► And I love that it's like, I love it when a new API or SDK comes out with something

00:12:52 ◼   ► like this, where it isn't so much like it's this brand new, totally new thing.

00:12:58 ◼   ► But what it is, is like they're dramatically lowering the barrier to entry for trying something

00:13:04 ◼   ► like this.

00:13:05 ◼   ► Especially, you know, like the actual math and graphical processing and everything going

00:13:10 ◼   ► on to make this work, even in its 1.0 state, is crazy town.

00:13:15 ◼   ► Like I don't know how they can do what they're doing, but they do.

00:13:20 ◼   ► And so they're lowering the bar so that a developer like you or I, who is just like

00:13:25 ◼   ► a one-man team or a small team, can probably reasonably do something in this space and

00:13:31 ◼   ► make something happen, which previously may have just been completely impossible.

00:13:36 ◼   ► And so it's kind of cool to just see them just like, "Hey, you know what?

00:13:39 ◼   ► This is now like a given.

00:13:41 ◼   ► You can do basic augmented reality stuff just for free.

00:13:45 ◼   ► Go and have fun."

00:13:46 ◼   ► And it's just lovely to just see like this huge, you know, it's like they always love

00:13:49 ◼   ► in W2DC, they have these, the graphs or the charts where they have like the very, you

00:13:53 ◼   ► know, it's like the stack of technologies on top of each other.

00:13:58 ◼   ► And now there's this massive stack below ARKit that we just don't have to think about,

00:14:02 ◼   ► like that all of the crazy complicated, you know, camera stuff that they're doing.

00:14:07 ◼   ► And I mean, some of the stuff you kind of hear about bits and pieces of where like the

00:14:12 ◼   ► stuff they have to do on the camera to, you know, like they track during optical image

00:14:18 ◼   ► stabilization, as best I could understand, is that during optical image stabilization,

00:14:22 ◼   ► as the lens is moving from side to side, they're actually tracking that in code to a different

00:14:28 ◼   ► just for it in their models.

00:14:31 ◼   ► Which is like, "Whoa!"

00:14:32 ◼   ► Like that's crazy, but like fair enough, that's what you have to do because otherwise

00:14:36 ◼   ► you have, you know, the camera lens is shaking.

00:14:39 ◼   ► It's you know, it's shaking back and forth to try and stabilize things and so if you

00:14:42 ◼   ► don't adapt for that, you'd be introducing error.

00:14:45 ◼   ► And so like that's really cool and I'm so glad that I don't have to write the code

00:14:48 ◼   ► that works that out because that sounds really, really hard.

00:14:52 ◼   ► >> Enoch: Yeah, exactly.

00:14:53 ◼   ► And this is one thing that makes this exciting for me too is that, you know, many apps on

00:14:58 ◼   ► our phones and iPads are things that we've been able to do on desktop computers and laptop

00:15:03 ◼   ► computers forever, right?

00:15:04 ◼   ► And it's just like moving those tasks to mobile devices.

00:15:08 ◼   ► AR is something that is like truly mobile.

00:15:11 ◼   ► This is something that you effectively can't do on computers.

00:15:15 ◼   ► Like just because of like the ergonomics of how you are holding them, what kind of hardware

00:15:19 ◼   ► they have, what kind of cameras they have.

00:15:21 ◼   ► Like you're never going to, I mean not never, but no one's ever really going to in mass

00:15:26 ◼   ► take their laptops and wave them around in the air and do AR applications that way or

00:15:32 ◼   ► move their iMac screen on their desktop angling around to like look at a table.

00:15:36 ◼   ► Like that's never going to happen.

00:15:37 ◼   ► This is like a mobile first thing and for people like us who are primarily or only mobile

00:15:42 ◼   ► developers that's exciting to have these kind of new, completely new categories of

00:15:46 ◼   ► things open up to us.

00:15:48 ◼   ► Even if we don't have any immediate ideas for using them, like that will probably change

00:15:51 ◼   ► over time and that will be great for us.

00:15:53 ◼   ► Anyway, we are sponsored this week by DICE.

00:15:57 ◼   ► DICE has been helping tech professionals like us take the next steps in our careers for

00:16:01 ◼   ► more than 20 years.

00:16:02 ◼   ► They have the insights and the tools needed to give you an edge.

00:16:05 ◼   ► So if you're wondering what's next in your career, DICE's new career pathing tool

00:16:09 ◼   ► can tell you about new roles based on your job title and your skills.

00:16:13 ◼   ► And they can even show you which skills you will need to make the move.

00:16:16 ◼   ► The DICE careers mobile app is the premier tool to manage your tech career from anywhere.

00:16:21 ◼   ► You can find exactly what you're looking for with thousands of positions from top companies.

00:16:25 ◼   ► And the DICE careers market value calculator allows you to understand what your skills

00:16:28 ◼   ► are worth.

00:16:29 ◼   ► You can discover your market value based not only on your job title and location, but also

00:16:33 ◼   ► your specific skill set.

00:16:35 ◼   ► So don't just look for a job.

00:16:37 ◼   ► Manage your career in technology with DICE.

00:16:40 ◼   ► Download the DICE mobile app and learn more at dice.com/undertheradar.

00:16:45 ◼   ► That's dice.com/undertheradar.

00:16:48 ◼   ► Our thanks to DICE for sponsoring this show and all of Relay FM.

00:16:52 ◼   ► So another technology that blows my mind when they get into the weeds of how it's actually

00:16:57 ◼   ► done is the new depth API, which is if you have, I guess right now it's just the 7

00:17:04 ◼   ► plus, but presumably it'll be, or yeah, the 7 plus is the only phone that has the dual

00:17:09 ◼   ► camera system, but presumably in the future there may be more cameras that can do this.

00:17:15 ◼   ► And if you have one of those, they can do this crazy bit of a comparison between the

00:17:21 ◼   ► two camera pictures and work out a fairly accurate depth map of what they're seeing

00:17:27 ◼   ► in the picture.

00:17:28 ◼   ► And this is at this point only used for that kind of simulated large aperture photography

00:17:37 ◼   ► effect, where it blurs out the background, but keeps the subject of your picture in focus.

00:17:43 ◼   ► >> BRIAN KARDELL Yeah, well, that's exactly what I was doing.

00:17:47 ◼   ► I'm just walking my way around it.

00:17:49 ◼   ► I don't want to go there.

00:17:52 ◼   ► But I love that it's now just a general purpose API.

00:17:57 ◼   ► You can do all kinds of stuff with this potentially.

00:17:59 ◼   ► It doesn't have to just be, "Oh, now that we know depth, we can blur the background

00:18:06 ◼   ► and make it look like a large aperture picture."

00:18:10 ◼   ► You can do all kinds of stuff.

00:18:12 ◼   ► The toy examples they showed were really cool, where you can say, "Hey, let's make the

00:18:18 ◼   ► foreground image in color and the background of the image, let's turn it black and white."

00:18:24 ◼   ► Or similar kinds of basic effects, or just taking advantage of this information is really

00:18:32 ◼   ► kind of cool.

00:18:33 ◼   ► And it's kind of fun to see, too, how I imagine this is sort of similar to ARKit.

00:18:40 ◼   ► Apple is doing this really low-level image processing in real time that allows them to

00:18:46 ◼   ► pull a lot of extra information and metadata out of what the cameras are seeing.

00:18:52 ◼   ► And if I'm honest, this kind of makes me want to go out and buy a 7 Plus, because right

00:18:57 ◼   ► now I just have an iPhone 7, just so that I can play with this and see what you can

00:19:02 ◼   ► do with this data, now that we have this really straightforward and like the API for it is

00:19:08 ◼   ► really pretty understandable and easy.

00:19:11 ◼   ► And because of the new image format, too, the HEIF, I believe is what it's called,

00:19:19 ◼   ► this data is also now available to us retrospectively.

00:19:22 ◼   ► So it's like people don't even necessarily have to use our apps to take the picture.

00:19:28 ◼   ► As much as custom camera apps are cool, I've probably bought and downloaded dozens of them.

00:19:35 ◼   ► I always just use the built-in one because it's available right from the lock screen.

00:19:40 ◼   ► And so it's great, though, that this data is now baked into those pictures, and so third-party

00:19:46 ◼   ► apps can retrospectively take advantage of doing it, which is really cool.

00:19:50 ◼   ► Yeah, and editing plugins, too.

00:19:52 ◼   ► I mean, there's all sorts of applications for that.

00:19:54 ◼   ► Yeah.

00:19:55 ◼   ► And so it's like I'm not sure what there is to do with the data.

00:19:58 ◼   ► That seems to be the theme of the show so far.

00:20:01 ◼   ► It's like I don't know what to do with this, but it's really cool.

00:20:04 ◼   ► And the talk on it, in addition to actually, it was probably one of the best talks I went

00:20:11 ◼   ► to just from a comedy perspective.

00:20:15 ◼   ► I believe Brad was the guy who gave the talk, was just really funny and making lots of jokes

00:20:20 ◼   ► about depth, which I don't know, it appealed to my sense of humor.

00:20:24 ◼   ► So if you haven't watched it already, the talk about the depth API is really good.

00:20:28 ◼   ► I haven't heard any jokes about depth recently.

00:20:29 ◼   ► I'll have to check this out.

00:20:30 ◼   ► Well, you've just got to dig deeper.

00:20:32 ◼   ► Oh, God.

00:20:33 ◼   ► I mean, you've just got to really--exactly.

00:20:34 ◼   ► Oh, wow.

00:20:35 ◼   ► So moving on.

00:20:39 ◼   ► We got two new Siri intents in iOS 11, which are all about lists and notes.

00:20:46 ◼   ► So it's reminders and notes and allowing apps like OmniFocus or Things to now interact with

00:20:58 ◼   ► Siri, which is cool.

00:20:59 ◼   ► I mean, I sort of like the way that they're doing intents in the sense that they're kind

00:21:04 ◼   ► of methodically expanding out the way we interact with Siri.

00:21:08 ◼   ► I do kind of wish that they also had a fallback, like a general purpose thing, just to be a

00:21:15 ◼   ► bit more, you know, sort of permissive in terms of what's possible with SiriKit.

00:21:22 ◼   ► Like right now, it's kind of annoying that they have, you know, it's like if you're one

00:21:26 ◼   ► of the apps that has the ability to interact with their structured format, like, great,

00:21:31 ◼   ► you're golden.

00:21:32 ◼   ► And you know, if you were a list app or a notes app, now you can do that.

00:21:36 ◼   ► But if you're not, you're still stuck.

00:21:38 ◼   ► And like, I get what they're doing with that, because their approach means that it's likely

00:21:43 ◼   ► more reliable in general in the sense that it's fairly unambiguous as to what you're

00:21:48 ◼   ► trying to accomplish versus having a completely freeform general purpose system.

00:21:54 ◼   ► But I don't know, I kind of wish that you could interact with a bit more apps.

00:21:58 ◼   ► And I imagine, you know, it's like your app Overcast would be a great candidate for this

00:22:03 ◼   ► kind of thing to be able to be like, you know, it's like, "Hey, can you play this episode?"

00:22:09 ◼   ► Or "Pick up where I left off," or those kinds of interactions, which right now you just can't.

00:22:15 ◼   ► And that's kind of annoying.

00:22:16 ◼   ► Yeah, like I think that the way they are apparently doing this with this like gradual expansion

00:22:22 ◼   ► to very limited domains but making it really easy to implement once they get to your domain,

00:22:27 ◼   ► like that's nice.

00:22:28 ◼   ► And if they accommodate what your app does or what you want to do, then by the time they

00:22:34 ◼   ► get to you, you are better off doing it that way than if they had this kind of like general

00:22:39 ◼   ► purpose like, "Send Overcast this phrase," and you just have Overcast try to figure out

00:22:44 ◼   ► what you meant by that.

00:22:45 ◼   ► You know, like that, it is nice the way they're doing it if it works for your app.

00:22:51 ◼   ► But if it doesn't work for your app, you're just shut out completely of this entire system,

00:22:55 ◼   ► and that's unfortunate.

00:22:57 ◼   ► But speaking of things that you did get, you got AirPlay 2, right?

00:23:01 ◼   ► That's a technology that's slightly helpful for you.

00:23:06 ◼   ► Have you watched the session on AirPlay 2?

00:23:07 ◼   ► Actually, I don't think I have gotten there yet.

00:23:10 ◼   ► Watch the session on AirPlay 2.

00:23:12 ◼   ► The short version basically is if you are using AV player, you're pretty much okay.

00:23:18 ◼   ► If you're using any other method to play audio, you have a lot of work to do now.

00:23:24 ◼   ► And I use other methods to play audio because AV player is incompatible with smart speed.

00:23:30 ◼   ► There's no way to really implement smart speed well with AV player, so I don't use it.

00:23:34 ◼   ► And if you are writing your own audio graph or using any other method, you now have a

00:23:39 ◼   ► lot of work to do if you want to support AirPlay 2.

00:23:41 ◼   ► So that's going to take up an as yet unknown part of my summer, but certainly not a short

00:23:47 ◼   ► part.

00:23:48 ◼   ► So it's nice.

00:23:49 ◼   ► It's going to be really cool when I get it working, but that's going to be a lot of work.

00:23:53 ◼   ► I have to basically lop off and rewrite the middle half of my audio engine.

00:23:59 ◼   ► That sounds fine.

00:24:01 ◼   ► I mean, what could possibly go wrong about cutting out the core part of what makes your

00:24:07 ◼   ► app your app and just replacing it this summer?

00:24:12 ◼   ► And the good thing is, another new technology, which is drag and drop, will actually allow

00:24:17 ◼   ► me to also rip out the middle half and rewrite part of my UI.

00:24:22 ◼   ► But it's a part of my UI that I would love to get rid of.

00:24:23 ◼   ► It's the crazy hacks that I had to write to get full-time reordering in a UI table view

00:24:29 ◼   ► with my little drag handles and my playlist view in Overcast 3.

00:24:34 ◼   ► I love having full-time reordering, and before that was pretty much impossible to do with

00:24:39 ◼   ► a UI table view without tons of hacks.

00:24:42 ◼   ► The drag and drop API will not only allow me to get rid of a lot of those hacks, but

00:24:47 ◼   ► imagine the drag and drop with the spring-loading folder navigation stuff with Overcast playlists.

00:24:54 ◼   ► Imagine being able to pick up three episodes in a playlist, backing out to your playlist

00:24:59 ◼   ► screen and then dropping them into another playlist and having that open itself up and

00:25:03 ◼   ► you can put them in a certain spot.

00:25:05 ◼   ► This could open up really cool APIs.

00:25:06 ◼   ► This will open up really cool APIs.

00:25:08 ◼   ► But it's going to be a lot of work to do all that.

00:25:10 ◼   ► I do plan to do that to the best of my ability, but again, this is going to be a lot of work

00:25:16 ◼   ► this summer.

00:25:17 ◼   ► But I think if I can pull it off, it'll be worth it.

00:25:19 ◼   ► >>

00:25:38 ◼   ► More specific to on the iPad moving data from one app to another.

00:25:44 ◼   ► Like, okay, they could have done that.

00:25:47 ◼   ► Instead, they've built this general purpose app that, like you said, on the iPhone is

00:25:53 ◼   ► still there, works just fine, is built into collection views and table views, and is now

00:26:00 ◼   ► instead built this general purpose app concept about publishing something as being draggable

00:26:10 ◼   ► and a fairly comprehensive way to define what that means in terms of if it's a file or if

00:26:18 ◼   ► it's a more straightforward type or an object type.

00:26:22 ◼   ► You can just define what that is.

00:26:23 ◼   ► You have a method that I imagine over time users will just get used to for how to access

00:26:30 ◼   ► it.

00:26:31 ◼   ► And then you have a method for putting that data somewhere else.

00:26:35 ◼   ► And like I said, you can work inside your own app.

00:26:37 ◼   ► You can do this.

00:26:38 ◼   ► You can do it between apps.

00:26:39 ◼   ► Like, I really like the way they structure this so that it's fairly general purpose and

00:26:44 ◼   ► in general not crazy hard to implement either.

00:26:48 ◼   ► Like, for the most part, if you're doing the basic kind of things that you would expect

00:26:52 ◼   ► drag and drop to work with, it's mostly that you're implementing three or four delegate

00:26:57 ◼   ► methods and you're off to the races.

00:27:01 ◼   ► Unless what you're trying to do is share some kind of really complicated data type that

00:27:07 ◼   ► needs special handling, like if you're just trying to have a string value be available

00:27:13 ◼   ► as drag and drop or an image or something like that, you can just do it.

00:27:16 ◼   ► And it's super straightforward to do.

00:27:18 ◼   ► And I just love that they didn't just go--they didn't just do the basic.

00:27:24 ◼   ► They did the full comprehensive solution.

00:27:28 ◼   ► And so now it can be used in so many ways that are beyond just it's like a basic thing

00:27:32 ◼   ► of oh, we can just add drag and drop to the iPad where you can drag things from one side

00:27:36 ◼   ► to the other.

00:27:37 ◼   ► Like, the fact that you could use it for table view reordering.

00:27:40 ◼   ► And it sounded actually like they are internally now using it for table view reordering.

00:27:45 ◼   ► >>Trevor: I believe so.

00:27:47 ◼   ► >>COREY.

00:27:48 ◼   ► Like, if you're using the built-in version.

00:27:49 ◼   ► Like, that is a great example of I like how fully baked this is.

00:27:54 ◼   ► And while I wish in some ways it's like it would have been great if we had had it before.

00:27:58 ◼   ► Like, now that it's here, it's like this is awesome.

00:28:00 ◼   ► And I love that it's just everything you would kind of expect it to be.

00:28:04 ◼   ► And so that's kind of cool.

00:28:05 ◼   ► >>Trevor Yeah.

00:28:06 ◼   ► I'm a huge fan of the way they did this so far.

00:28:09 ◼   ► And I have not actually coded with it yet.

00:28:11 ◼   ► I've just been looking at all the APIs and watching the videos and everything.

00:28:14 ◼   ► So you have more experience.

00:28:15 ◼   ► But I too am very excited about the entire drag and drop API.

00:28:19 ◼   ► Because what this does is, most of the advanced stuff like navigating to different screens

00:28:25 ◼   ► while you are dragging things or navigating into different apps and with the other hand

00:28:29 ◼   ► as you're doing things.

00:28:30 ◼   ► Many of these things are going to always really be power user features.

00:28:33 ◼   ► The same way like on Mac OS you've had like spring loaded folders where you can drag a

00:28:37 ◼   ► bunch of files over a folder, wait a second, the folder will open up and you can keep dragging

00:28:42 ◼   ► into different things there before you drop them.

00:28:45 ◼   ► Mostly power users do that.

00:28:46 ◼   ► I don't think most people know you can do that.

00:28:48 ◼   ► And that's going to be the case with most of the stuff on iOS too.

00:28:51 ◼   ► But that's really nice for power users.

00:28:53 ◼   ► And it enables entirely new types of work to be efficiently done on iOS.

00:29:01 ◼   ► These are all things that before you could usually do them but it was much more cumbersome.

00:29:06 ◼   ► And so most people just wouldn't.

00:29:08 ◼   ► Now you can.

00:29:09 ◼   ► And that is better for the platform.

00:29:12 ◼   ► That basically makes larger markets for things like professional apps and productivity apps

00:29:17 ◼   ► where before it was more cumbersome because most people just wouldn't do it.

00:29:20 ◼   ► Yeah.

00:29:21 ◼   ► And it's nice too.

00:29:22 ◼   ► They have a standard interaction model now that users will grow accustomed to and then

00:29:28 ◼   ► it's easier to adopt this new thing rather than having to like teach a user how to use

00:29:33 ◼   ► it.

00:29:34 ◼   ► It's like in theory all the apps will do it the same way and so adoption from a user's

00:29:38 ◼   ► actually using it perspective will also go up.

00:29:40 ◼   ► Well we're out of time this week.

00:29:42 ◼   ► Thanks everybody for listening and we'll talk to you next week.

00:29:45 ◼   ► Bye.

00:29:45 ◼   ► [BLANK_AUDIO]