PodSearch

Under the Radar

137: iOS 12 and App Review Changes

 

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

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

00:00:04 ◼   ► And I'm David Smith.

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

00:00:10 ◼   ► So for this week's episode as well as next week's episode, we're going to kind of try

00:00:14 ◼   ► and unpack and kind of work through some of the changes and announcements that came out

00:00:20 ◼   ► of WWDC.

00:00:21 ◼   ► I think we both had sufficient time at this point to kind of digest a lot of what was

00:00:25 ◼   ► going on there, in some cases even to dig into things, to try things out, to watch a

00:00:31 ◼   ► lot more WWDC session videos.

00:00:33 ◼   ► So hopefully we can get a slightly more comprehensive view at this point.

00:00:37 ◼   ► And I think it's also kind of nice, rather than doing this kind of thing in real time,

00:00:41 ◼   ► is that I think we've had the benefit of the collected wisdom of the community as well

00:00:46 ◼   ► to kind of help shepherd this around.

00:00:49 ◼   ► So I think we're kind of, I think we're structured.

00:00:51 ◼   ► We're going to first start off talking about iOS 12, which is kind of a strange thing,

00:00:56 ◼   ► because usually iOS, I would say, is the marquee, the major significant change to operating

00:01:03 ◼   ► system at WWDC.

00:01:04 ◼   ► But this year, that was not really the case.

00:01:08 ◼   ► I mean, there's certainly a lot of changes.

00:01:10 ◼   ► There's certainly a lot of things going on more under the hood.

00:01:13 ◼   ► But in terms of, there have been years where Apple starts off with these, like, we have

00:01:18 ◼   ► seven tentpole features that we're going to bring this year.

00:01:22 ◼   ► And this year, they had maybe one or two of those type of that kind of changes.

00:01:28 ◼   ► And the rest of the changes are fairly low level.

00:01:30 ◼   ► And so at this point, I will recommend a website maintained by Matt Stevens, which includes

00:01:38 ◼   ► the old style SDK diffs.

00:01:42 ◼   ► So back in the day, before Apple changed the new documentation system, which makes looking

00:01:47 ◼   ► for changes completely inscrutable to me, they used to just publish a list of all the

00:01:51 ◼   ► method names that had changed and any things that was added.

00:01:54 ◼   ► And Matt Stevens still publishes one of those.

00:01:57 ◼   ► So just a little plug for that.

00:01:58 ◼   ► Yeah, that's awesome.

00:01:59 ◼   ► That used to be the very first thing I would open up when getting every beta.

00:02:03 ◼   ► At WWDC, it would be sitting in Moscone in the lunch hall.

00:02:08 ◼   ► And the very first thing I would do as soon as the site was up was go look at that API

00:02:11 ◼   ► to see what of the APIs that I use or might use had brought me presents that year.

00:02:18 ◼   ► Yeah, it's amazing.

00:02:20 ◼   ► The new version doesn't really work.

00:02:22 ◼   ► But anyway, I did the same thing.

00:02:24 ◼   ► I always go through that.

00:02:25 ◼   ► And now I really appreciate that someone's kind of worked out how to technically just

00:02:29 ◼   ► continue to generate these.

00:02:31 ◼   ► But looking in there, there's a lot of low level changes and minor changes.

00:02:36 ◼   ► Some of them we'll get to later.

00:02:37 ◼   ► But in general, it seems like there's not a lot of huge sweeping changes or things that

00:02:45 ◼   ► most apps have to do, with the exception of shortcuts, which we'll get to in a minute.

00:02:49 ◼   ► But in general, it's mostly just lots of little tweaks, lots of little improvements.

00:02:52 ◼   ► And in general, Apple had said their big focus this year was performance.

00:02:56 ◼   ► And I think there's even some changes in UIKit to reflect that.

00:02:59 ◼   ► There's a great talk about what's new in Cocoa Touch that talks about a whole variety of

00:03:05 ◼   ► kind of subtle performance and user experience and responsiveness changes that they've been

00:03:11 ◼   ► making in UIKit, some of which we kind of get for free, some of which we have to work

00:03:14 ◼   ► for.

00:03:15 ◼   ► But in general, there's a bunch of just baseline performance.

00:03:19 ◼   ► Things got a little bit better.

00:03:21 ◼   ► But if you do nothing, your app's going to be fine kind of things, which in some ways

00:03:25 ◼   ► is nice.

00:03:26 ◼   ► I like having the opportunity to do that.

00:03:27 ◼   ► But at the same time, it's always a little...

00:03:31 ◼   ► I think we always just want more changes, then it's probably good for us in some ways,

00:03:36 ◼   ► just because it's kind of fun and exciting.

00:03:38 ◼   ► But the main marquee change this year is just not much changed.

00:03:42 ◼   ► Let's all just make our apps collectively a bit better.

00:03:45 ◼   ► Yeah, because every year there could be big flashy new user features, and sometimes there

00:03:51 ◼   ► are.

00:03:52 ◼   ► Usually there are.

00:03:53 ◼   ► But there's also usually stuff under the hood that is something that would not even necessarily

00:03:58 ◼   ► make the keynote and might be mentioned very quickly in the State of the Union.

00:04:03 ◼   ► But things that just make our lives easier.

00:04:05 ◼   ► Things like improvements to UIKit, stuff that most of us use for pretty much any kind of

00:04:10 ◼   ► application or special new ways to do basic things like view controllers.

00:04:17 ◼   ► When things like child view controllers, different transition types, auto layout, when all those

00:04:20 ◼   ► things came out, that was a big deal for everyone.

00:04:23 ◼   ► And as time goes on, as iOS has matured, it's gotten more and more specialized.

00:04:28 ◼   ► And there are fewer of those better for everyone kind of improvements that come up every year.

00:04:34 ◼   ► And over the last couple of years we've had narrower and narrower things like SiriKit

00:04:40 ◼   ► Intents, the first version of it, that could only benefit seven different types of apps,

00:04:44 ◼   ► stuff like that.

00:04:45 ◼   ► And the rate of new things that benefited all of us seems to have definitely gone down.

00:04:50 ◼   ► And this year seems like just a continuation of that.

00:04:54 ◼   ► I'm a little biased because I have a lot to do with this year's changes, although not

00:04:59 ◼   ► even that much on the iOS side, much more on watchOS, which we'll talk about next week.

00:05:02 ◼   ► But on the iOS side, there's things like the Siri shortcuts, which are based on the

00:05:10 ◼   ► Intents API, so I keep getting those confused.

00:05:12 ◼   ► But Siri shortcuts are fairly limited.

00:05:15 ◼   ► I wish they could do more than what they actually can do.

00:05:20 ◼   ► And I hope they are the beginning of a story and not the end of one, because say next year,

00:05:26 ◼   ► if Siri shortcuts could do things like be parameterized the way they already are in

00:05:30 ◼   ► the API, but you just can't call them in a parameterized way.

00:05:34 ◼   ► You can't say like, make a shortcut to play X where the user can specify any value of

00:05:38 ◼   ► X from this dictionary of values.

00:05:41 ◼   ► There's nothing like that.

00:05:42 ◼   ► You know, they're all like kind of one by one, but hopefully that becomes a bigger thing

00:05:47 ◼   ► next year.

00:05:48 ◼   ► But I think at least this year we will have the beginning stuff like that.

00:05:51 ◼   ► But other than that, there's not that much to do with iOS 12 for most app developers

00:05:56 ◼   ► I know, or even for most app developers, period.

00:05:59 ◼   ► But as we mentioned last week, I kind of like that at least once.

00:06:04 ◼   ► I like that every so often because it gives us a chance to have like the eternal springtime

00:06:09 ◼   ► of cleanup, basically, to have like a year where we just make our apps better in ways

00:06:14 ◼   ► that aren't just trying to keep up with Apple's treadmill of new stuff and new releases.

00:06:19 ◼   ► And what's also nice about iOS 12 is it doesn't seem to break much, with the exception of

00:06:23 ◼   ► UI WebView, which is now deprecated, but still works.

00:06:27 ◼   ► You know, you should move off of that.

00:06:28 ◼   ► But like, with the exception of that, there's not that much that you really have to do for

00:06:33 ◼   ► iOS 12.

00:06:34 ◼   ► So it does leave a lot of room for people who don't make Apple Watch podcast apps to

00:06:39 ◼   ► have a whole summer of freedom.

00:06:41 ◼   ► Oh, sure, yeah, because so many of the big changes are increasingly so specialized.

00:06:49 ◼   ► Like the changes for the password system, so that you can now have this common shared

00:06:55 ◼   ► password management approach thing.

00:06:58 ◼   ► That's great if you're one password or one of the other password managers, but if you're

00:07:03 ◼   ► not, there's nothing related to that with you.

00:07:05 ◼   ► Or you can do navigation in CarPlay now.

00:07:08 ◼   ► Well, that's great if you make a navigation player or all the ARKit or core ML changes.

00:07:12 ◼   ► They're like, awesome, really cool technology, but it's so specialized rather than being

00:07:19 ◼   ► a sweeping change that would affect every app.

00:07:21 ◼   ► And so it's like you said, there's so many things that I think both of us are going to

00:07:25 ◼   ► have in some ways.

00:07:26 ◼   ► There's lots of things for us to work on this summer, but they're becoming so much more

00:07:32 ◼   ► isolated and specialized into a particular area, which in many ways, yes, I think is

00:07:36 ◼   ► quite nice.

00:07:37 ◼   ► I think there's some even improvements to the way they worked on some of the things

00:07:41 ◼   ► you can do now in notifications, for example.

00:07:45 ◼   ► So many of those changes are the kind of thing that if you don't adopt on day one, the default

00:07:50 ◼   ► behavior is going to be fine for you, probably, but you have the ability, should you want,

00:07:55 ◼   ► that you can now in notifications, you can have slightly more rich graphics and user

00:07:59 ◼   ► interactivity there.

00:08:00 ◼   ► You can do slightly more advanced and clever things with threading and for how the way

00:08:04 ◼   ► the notifications get grouped, the way the changes work for authorization where you can

00:08:12 ◼   ► send quiet notifications now without the user having to authorize them.

00:08:17 ◼   ► There's a variety of changes there that are kind of interesting and kind of cool in notifications,

00:08:22 ◼   ► but it's a kind of change that you don't have to do anything to start with.

00:08:27 ◼   ► It's not one of these things that if you don't update on day one, if you're not ready for

00:08:31 ◼   ► iOS 12, whatever it is, usually the third Wednesday in September is usually around when

00:08:37 ◼   ► it launches.

00:08:40 ◼   ► If you're not ready, it'll be fine.

00:08:42 ◼   ► And honestly, in some ways, even with the Siri shortcut stuff, which we can get into

00:08:47 ◼   ► a bit more detail, but what I love there is the first simple version of that is just piggybacked

00:08:53 ◼   ► right on top of the user activity API, which you may be already using right now if you

00:09:00 ◼   ► have a support handoff or any of the other kind of activity-based mechanisms.

00:09:05 ◼   ► It's all basically built around the same technology, so you almost kind of get it for free if you've

00:09:14 ◼   ► been doing that kind of work anyway.

00:09:16 ◼   ► So there's a lot of these things that are just like, "Okay, this is nice.

00:09:19 ◼   ► We can make the apps better."

00:09:21 ◼   ► And then we have some opportunities in terms of things like Siri shortcuts where if you

00:09:25 ◼   ► want to go full into that and you have an application where that makes sense, I think

00:09:30 ◼   ► there's a lot of apps where the Siri shortcut stuff really doesn't make much sense beyond

00:09:37 ◼   ► using it as kind of a sophisticated launcher, where maybe you want to launch an app into

00:09:42 ◼   ► a particular mode or a particular screen, but there may not necessarily be a lot of

00:09:48 ◼   ► deep integration for that where it would make sense, but nevertheless, it's a new little

00:09:52 ◼   ► sort of interface to plug into.

00:09:56 ◼   ► I'm a little skeptical, if I'm honest, though, about Siri shortcuts.

00:09:59 ◼   ► I find that I think they'll be useful for a small percentage of the population.

00:10:06 ◼   ► They'll be very useful and very well used, but for a large group of my user base, I don't

00:10:12 ◼   ► expect them to ever know that they're there or even would find a use for them, even if

00:10:18 ◼   ► they did know that they were there.

00:10:19 ◼   ► Yeah, I honestly probably won't be using them myself.

00:10:23 ◼   ► I see them more as a continuation of workflow and related apps.

00:10:29 ◼   ► So apps like Drafts or Editorial and Workflow, these are all iOS power user apps, basically,

00:10:37 ◼   ► that allow people to get a lot of work done on iOS or to automate things in various cool

00:10:42 ◼   ► ways, save some time.

00:10:44 ◼   ► And those are a community worth serving, but not all apps are going to be able to justify

00:10:49 ◼   ► having a whole bunch of effort put into that community because it might not be very big

00:10:52 ◼   ► for your app.

00:10:54 ◼   ► And so to me, supporting Siri shortcuts, I'm treating it-- when I'm trying to think of

00:10:59 ◼   ► my time budget for how much time I'm willing to spend on these kinds of features, I treat

00:11:04 ◼   ► Siri shortcuts, I think, the same way I would treat things like URL scheme support, but

00:11:08 ◼   ► a little bit more than that because it's more visible, or things like continuity support,

00:11:13 ◼   ► as you mentioned.

00:11:15 ◼   ► That kind of-- or handoff, rather, that kind of thing is worth a little bit of effort.

00:11:20 ◼   ► But it's not worth tons of effort because not a lot of people who use most apps are

00:11:24 ◼   ► going to actually use those features.

00:11:26 ◼   ► The good thing is it seems like-- I haven't actually implemented this API yet.

00:11:30 ◼   ► It's next on my to-do list.

00:11:31 ◼   ► But it seems like it doesn't actually take that much effort to implement Siri shortcuts.

00:11:37 ◼   ► So from that point of view, it should be like a URL scheme where it should be fairly easy

00:11:42 ◼   ► to implement.

00:11:43 ◼   ► I suppose the only thing that differentiates it and adds to the cost of implementing it

00:11:48 ◼   ► is that it needs UI of sorts, right?

00:11:51 ◼   ► Or if you want it to be good, it needs a button somewhere on various parts of your interface

00:11:55 ◼   ► that says add to Siri, right?

00:11:58 ◼   ► There's two types of shortcuts that you can add to your app.

00:12:01 ◼   ► So the simple one is just the NSUserActivity-based shortcuts, which are functionally just like

00:12:08 ◼   ► what you're doing now.

00:12:09 ◼   ► You just need to set a flag to true that says this can be a part of this mechanism.

00:12:13 ◼   ► And those are just launching your app with a continue activity into your AppDelegate

00:12:19 ◼   ► call.

00:12:20 ◼   ► So there's nothing really that you would have to do there.

00:12:23 ◼   ► It's only if you want to add the intent-based, more dynamic one that you would need to add

00:12:29 ◼   ► the other additional logic to your app.

00:12:32 ◼   ► You add an extension handler.

00:12:34 ◼   ► You can add a button into your app to add the command phrase to it, but you don't have

00:12:41 ◼   ► to do any of those types of things unless you have a kind of -- those typically only

00:12:45 ◼   ► make sense in a situation where there's a background handler for the user action that

00:12:52 ◼   ► would make sense.

00:12:53 ◼   ► So if you're -- in the example they always like to give of ordering a coffee or something

00:12:57 ◼   ► like that where you don't have to launch the app in order to do that, that's when I think

00:13:02 ◼   ► those other more robust things come into play.

00:13:04 ◼   ► But I could imagine, for example, in Overcast that, say, every time I hit play in the app,

00:13:11 ◼   ► it had a user activity object that said like -- that indicated that I had just started

00:13:17 ◼   ► listening to a podcast.

00:13:19 ◼   ► In theory, if I listen to podcasts on a regular basis or in a particular place or whatever,

00:13:25 ◼   ► in theory the relevance API or engine that they're using should detect that and say,

00:13:30 ◼   ► "Oh, wow, it seems like every morning at 7 o'clock you open your phone and go to Overcast

00:13:38 ◼   ► and hit play."

00:13:40 ◼   ► And in theory, it should be able to surface that to the user at that point and say, "On

00:13:44 ◼   ► my lock screen," or if I pull down into the spotlight area on my phone, that I could have

00:13:52 ◼   ► a button that just says "Continue playback," basically, even involving Siri and the voice

00:13:59 ◼   ► control part of that, just the Siri as the smart assistant part, which it gets so confusing

00:14:06 ◼   ► that they smush everything together and call it Siri, even though I think most people think

00:14:11 ◼   ► of Siri as the voice command persona inside of the phone.

00:14:17 ◼   ► So that's the side of things that I think for a lot of apps, if that relevance engine

00:14:20 ◼   ► is actually really good, and of course people have to have predictable behavior, then those

00:14:26 ◼   ► kind of basic, it's just a super advanced launcher, is potentially just a nice little

00:14:31 ◼   ► acceleration for people.

00:14:33 ◼   ► But the more sophisticated stuff I think is going to be much more isolated in terms of

00:14:38 ◼   ► real utility, because I could sort of see the thought, even though you're an example

00:14:43 ◼   ► of "You can order a coffee," but really?

00:14:45 ◼   ► Is that how someone's going to order a coffee?

00:14:48 ◼   ► How many people's order is going to be exactly the same at the same time, and are they going

00:14:53 ◼   ► to feel comfortable with doing it that way?

00:14:55 ◼   ► I don't know.

00:14:56 ◼   ► I'm skeptical, but maybe I'm just skeptical because it's not a thing that's for me.

00:15:05 ◼   ► And all features certainly don't need to be for me.

00:15:07 ◼   ► So I support them even if I don't think I would use them myself.

00:15:10 ◼   ► We are brought to you this week by NS Screencast.

00:15:13 ◼   ► NS Screencast features quality video screencasts on Swift, iOS, and Mac development.

00:15:18 ◼   ► They cover a wide range of topics from beginner to advanced skill levels.

00:15:22 ◼   ► There are currently over 340 episodes and more being added all the time.

00:15:27 ◼   ► Every week with NS Screencast you will find a new fantastically produced episode that

00:15:32 ◼   ► will help you build and enhance your development skills.

00:15:34 ◼   ► On the short videos you can learn a lot over time without a huge time commitment.

00:15:38 ◼   ► You'll be able to learn new things even if you've been doing this for a while like us,

00:15:42 ◼   ► like in the latest series where you'll be learning about testing iOS applications, which

00:15:46 ◼   ► is something that a lot of my friends tell me I need to do.

00:15:50 ◼   ► So as well as watching NS Screencast videos on the web, they also have apps for iPhone,

00:15:54 ◼   ► iPad, and even Apple TV.

00:15:56 ◼   ► So you can watch them whenever and wherever you have time.

00:15:59 ◼   ► NS Screencast costs just $18 per month or $168 for the year and it's great for your

00:16:04 ◼   ► team too.

00:16:05 ◼   ► So take advantage of their team pricing if you can.

00:16:08 ◼   ► As listeners of this show, you can get 30% off your first month by signing up at NSScreencast.com/Radar18.

00:16:16 ◼   ► And that works whether you opt for the monthly or the annual plan.

00:16:19 ◼   ► So invest in yourself or your team.

00:16:22 ◼   ► Head to NSScreencast.com/Radar18 now.

00:16:26 ◼   ► Thank you so much to NS Screencast for their support of this show.

00:16:30 ◼   ► So since iOS 12 is in some ways kind of thin, honestly that's probably about all there

00:16:35 ◼   ► is to say about it.

00:16:36 ◼   ► We'll have a summer of doing performance tweaks, maybe making some serious shortcuts,

00:16:41 ◼   ► maybe enhancing our notifications.

00:16:43 ◼   ► But for most people, that will kind of be it.

00:16:46 ◼   ► The other thing that I think we should probably talk about is they dropped a mountain of iOS

00:16:52 ◼   ► app review guideline changes along with W3C this year.

00:16:57 ◼   ► Some of them are just sort of clarifications.

00:16:59 ◼   ► Some of them are a bit more specific.

00:17:01 ◼   ► But overall, it's certainly something that I think is worth mentioning.

00:17:05 ◼   ► I'll have a link in the show notes to a great YouTube resource, which is the App Store

00:17:10 ◼   ► Review Guidelines History.com, which is just a website that someone kind of curates the

00:17:14 ◼   ► changes and runs nice, pretty diffs of the changes rather than just like a textual diff

00:17:19 ◼   ► that try and actually interpret what's changing and highlight some of the important things.

00:17:24 ◼   ► So the first place to start I think is there's made a couple of changes to kind of metadata

00:17:28 ◼   ► stuff.

00:17:29 ◼   ► This is related to what is now App Store Connect, which is going to take me forever to actually

00:17:32 ◼   ► switch over from iTunes Connect.

00:17:35 ◼   ► Everything is now App Store Connect, which, great, that makes a lot more sense.

00:17:39 ◼   ► But anyway, that's the change.

00:17:41 ◼   ► But the two metadata changes that I saw in there is that every app must include a privacy

00:17:45 ◼   ► policy now.

00:17:47 ◼   ► And it must also be available within, linked to from inside of the app.

00:17:53 ◼   ► So this is across the board.

00:17:54 ◼   ► Previously, I believe this only applied to health and fit health related apps were required

00:17:58 ◼   ► to have a privacy policy.

00:18:00 ◼   ► Also anything with auto renewing subscriptions.

00:18:01 ◼   ► Oh, sure.

00:18:02 ◼   ► Okay.

00:18:03 ◼   ► So there were two categories now.

00:18:04 ◼   ► And I believe now the changes, everybody's got to have one.

00:18:07 ◼   ► And this doesn't necessarily come as a surprise with all the GDPR changes and privacy as general

00:18:12 ◼   ► as a big theme for Apple.

00:18:14 ◼   ► But it's certainly something that I'm sure we're going to see a lot of rejections for

00:18:18 ◼   ► this summer as people don't notice that, submit their app, get rejected back from Apple saying

00:18:24 ◼   ► that you need a privacy policy.

00:18:25 ◼   ► So if you don't have one, you're going to need to write one.

00:18:28 ◼   ► And if you do, you just need to make sure that you have a link to it in the app as well

00:18:32 ◼   ► as in the metadata field in App Store Connect as well.

00:18:35 ◼   ► Yeah.

00:18:36 ◼   ► I mean, in this day and age, especially with GDPR, I think at this point, you should all

00:18:40 ◼   ► have privacy policies for all the apps and services that you have.

00:18:45 ◼   ► If you've never done one before, it sounds intimidating or it sounds like something that

00:18:49 ◼   ► only companies can or should do.

00:18:52 ◼   ► But not only is the latter point no longer true if it ever was, but you shouldn't look

00:18:58 ◼   ► at it as this impossible thing that you have to have a team of lawyers write for you and

00:19:03 ◼   ► cost a fortune and everything else.

00:19:05 ◼   ► You should consider having a lawyer look at it, but you can write it yourself if you look

00:19:11 ◼   ► at other privacy policies, look up the requirements, the current legal requirements and various

00:19:17 ◼   ► jurisdictions for what privacy policies have to or should include, and just kind of use

00:19:21 ◼   ► other ones as a guide and then look at your app.

00:19:24 ◼   ► If you are an indie, you probably know what it does and what it doesn't collect and actually

00:19:31 ◼   ► codify.

00:19:32 ◼   ► Your privacy policy has to be correct.

00:19:33 ◼   ► It is a legally binding document of sorts.

00:19:38 ◼   ► You can't lie in it, so you have to tell everything you do.

00:19:41 ◼   ► This might give you a reason, if you haven't already audited your stuff for GDPR compliance,

00:19:46 ◼   ► this could give you a reason to really look through and figure out, "Is there any information

00:19:50 ◼   ► I'm collecting that I don't need or that I can get away without?"

00:19:53 ◼   ► Things like that.

00:19:55 ◼   ► Just write it as clearly and concisely as you can while hitting all the requirements.

00:20:00 ◼   ► A, your users will thank you, and B, it isn't as hard as it sounds.

00:20:07 ◼   ► I think it's a good thing in general.

00:20:10 ◼   ► I would recommend that developers write it themselves.

00:20:13 ◼   ► I think that is better in a lot of ways because it enforces you to understand what it is that

00:20:21 ◼   ► you're publicly saying that you're doing.

00:20:24 ◼   ► I personally appreciate, as a user, a privacy policy that is clearly written by a person

00:20:31 ◼   ► rather than a lawyer because there's a certain degree to which it's that much easier to

00:20:36 ◼   ► understand.

00:20:37 ◼   ► In many ways, the point of a privacy policy is just to communicate with your user what

00:20:41 ◼   ► data you collect and how that data is used.

00:20:45 ◼   ► The clearer that communication can be is certainly the better.

00:20:50 ◼   ► It doesn't hurt either to look at what other people have in theirs because there might

00:20:53 ◼   ► be information that you're inadvertently collecting that you didn't even think about,

00:20:57 ◼   ► really.

00:20:58 ◼   ► Things like what your web server logs store.

00:21:00 ◼   ► Things like user agents or IP addresses.

00:21:03 ◼   ► Things like storing cookies in people's computers for logins.

00:21:08 ◼   ► When they email you for support, you store that email.

00:21:11 ◼   ► Therefore, you have their email address and you can use it to do things like reply to

00:21:16 ◼   ► their support email.

00:21:18 ◼   ► Stuff that you might not think about.

00:21:19 ◼   ► Check out other privacy policies.

00:21:21 ◼   ► I give you full permission to copy whatever you want out of mine under the condition that

00:21:25 ◼   ► if a lawyer tells you some part of it is horrible or wrong or missing, let me know.

00:21:28 ◼   ► That seems like pretty good advice.

00:21:30 ◼   ► I think I've certainly learned a few things from your privacy policy.

00:21:32 ◼   ► I've always thought it was very well written.

00:21:36 ◼   ► Another change related to metadata that is kind of interesting is they've changed the

00:21:40 ◼   ► wording around the change log part of our app.

00:21:44 ◼   ► Another quote from section 2.3.12 that apps must clearly describe new features and product

00:21:50 ◼   ► changes in their what's new text.

00:21:52 ◼   ► Simple bug fixes, security updates, and performance improvements may rely on a generic description,

00:21:57 ◼   ► but more significant changes must be listed in the notes.

00:21:59 ◼   ► Which I think is kind of an interesting change, both in terms of it is encouraging you to

00:22:06 ◼   ► be specific to your user.

00:22:07 ◼   ► And then also in the back of my mind, I read that as almost like they're trying to curtail

00:22:12 ◼   ► A/B testing related types of things.

00:22:16 ◼   ► It sounds in some ways as though what they're talking about, they're saying that any significant

00:22:20 ◼   ► change must be listed in the what's new as a tool for them to avoid the thing where an

00:22:26 ◼   ► app that is, say you're the Twitter app, which as best I understand, does a lot of this,

00:22:31 ◼   ► where they roll out different features and different modes and the app is wildly dynamic

00:22:38 ◼   ► depending on which all their A/B testing system says the app should behave.

00:22:44 ◼   ► I don't know if that's what they're going after this, but either way, I think we've talked

00:22:49 ◼   ► many times on this show about your change notes are a rare opportunity for you to communicate

00:22:55 ◼   ► with your user, so take advantage of that and write something useful and interesting

00:22:59 ◼   ► there.

00:23:00 ◼   ► But I think it's interesting to see that Apple is calling that out specifically now as something

00:23:04 ◼   ► that they want you to be specific in.

00:23:06 ◼   ► Yeah, I mean it's easy to look at this and say like, "Yeah, this is probably aimed at

00:23:11 ◼   ► the Twitters and the Facebooks and the Instagrams of the world," but ultimately are they going

00:23:15 ◼   ► to really follow this?

00:23:16 ◼   ► I doubt it.

00:23:17 ◼   ► Are you really going to see a guideline?

00:23:20 ◼   ► And obviously the reason for this is Apple wants them to be more accountable and they

00:23:23 ◼   ► want a record.

00:23:25 ◼   ► Part of Apple clamping down on this kind of stuff is probably Apple recognizing its own

00:23:29 ◼   ► GDPR liability and recognizing that their platform enables a bunch of other third-party

00:23:34 ◼   ► apps that they don't have control over, and that might become a problem for them down

00:23:38 ◼   ► the road if these other apps are shown to be violating people's privacy or anything.

00:23:46 ◼   ► Some of the fallout from that could hit Apple on the way.

00:23:49 ◼   ► So Apple needs to do things like make sure that they have rules against third-party data

00:23:55 ◼   ► giving, stuff like that, but also they want to know that they have a record of what you've

00:23:59 ◼   ► changed in your app.

00:24:00 ◼   ► And you can't edit the change log fields after the app has been approved.

00:24:05 ◼   ► So what this is basically asking for people to do is to give Apple a real record of things

00:24:10 ◼   ► that have changed in your app.

00:24:12 ◼   ► Not just to say, "But we're always improving our app.

00:24:15 ◼   ► Check back every two weeks."

00:24:16 ◼   ► Not just to say, "Go to this external URL that we host on our site that Apple doesn't

00:24:20 ◼   ► control and we'll tell you what we changed," which no one does.

00:24:25 ◼   ► Apple wants a record of that, but again, I see this as being probably largely unenforced

00:24:31 ◼   ► against the apps and companies that are the biggest offenders.

00:24:34 ◼   ► I can't see how they're going to possibly enforce this.

00:24:36 ◼   ► Sure.

00:24:37 ◼   ► I mean, I think in general it's probably good to say with these kind of discussions on App

00:24:40 ◼   ► Review Guidelines is I think there's a strange tension around enforcement and these kind

00:24:46 ◼   ► of rules where I think Apple's intention might certainly be to overall to affect change,

00:24:53 ◼   ► maybe not necessarily at a 100% level, that I think enforcement absolutely across every

00:25:00 ◼   ► application is probably impossible for both practical, logistical, and then political

00:25:06 ◼   ► reasons in terms of the relationship they have with larger apps or those types of situations.

00:25:12 ◼   ► But I think their goal, my guess is, there's quite a lot of changes that happened this

00:25:16 ◼   ► year and I think my guess is they're trying to course correct the App Store slightly and

00:25:22 ◼   ► push it in a slightly different direction, and they don't have to enforce these rules

00:25:26 ◼   ► completely or absolutely to affect that correction, that they can make a change that sort of steered

00:25:33 ◼   ► the App Store in a slightly different direction just by the way they're both writing it in

00:25:37 ◼   ► here, by doing enforcement, especially against egregious cases, and those types of things

00:25:43 ◼   ► will start to move the App Store in a slightly different direction.

00:25:47 ◼   ► I think that's something that is always just good to keep in mind. The Review Guidelines

00:25:52 ◼   ► are always just guidelines, they're not like this very specific black and white text, and

00:25:58 ◼   ► usually because there's an element of discretion involved that what I think is a simple bug

00:26:06 ◼   ► fix you might think of as a significant change, and that could be just an area of honest agreement,

00:26:13 ◼   ► of disagreement, so who knows?

00:26:16 ◼   ► Another change that I think is interesting is for advertising-based applications, there's

00:26:20 ◼   ► now a requirement that users must be able to see all information that is being used

00:26:26 ◼   ► to target the ad that they are being shown, and they need to be able to view that information

00:26:31 ◼   ► without leaving the app.

00:26:33 ◼   ► That's a big thing.

00:26:34 ◼   ► Yeah, it's a pretty big thing, and honestly I'm quite curious to see how this actually

00:26:38 ◼   ► rolls out, because as far as I know, none of the major advertising platforms include

00:26:43 ◼   ► the ability to do this now, so most people who rely, including myself, I use Google's

00:26:48 ◼   ► AdMob platform for my advertising, until they add this to their SDK, then I can't really

00:26:54 ◼   ► support it, so I'm not entirely sure if this is going to be something where this requirement

00:26:59 ◼   ► isn't enforced right away, or is gradually enforced, or you get a warning, or exactly

00:27:05 ◼   ► how this will play out, because it would be quite a catastrophic change if it's starting

00:27:13 ◼   ► tomorrow, Apple said, every app that was advertising must do this, because all of the ad-supported

00:27:20 ◼   ► apps in the store are reliant on the SDKs that they include in their apps, so until

00:27:24 ◼   ► those all get updated, they can't really go there, but nevertheless, I think it is certainly

00:27:28 ◼   ► an admirable goal for Apple to try and surface this information to their customers, and I

00:27:35 ◼   ► think broadly that seems like a theme, that they're trying to surface privacy and permission-based

00:27:40 ◼   ► stuff more specifically and explicitly to customers, so that they're able to make more

00:27:46 ◼   ► informed decisions and choices, as well as to hopefully also dissuade people from being

00:27:52 ◼   ► too creepy or doing stuff that the users may not like, because it's different if you're

00:28:00 ◼   ► able to do it in a more quiet, hidden way than if you're specifically required to show

00:28:06 ◼   ► that information to your user.

00:28:09 ◼   ► All right, closing out the iOS and general section for the summer, what do you think

00:28:14 ◼   ► is the very first thing that you are going to do for iOS this summer?

00:28:20 ◼   ► I think the biggest thing for iOS for me is just going to be doing a basic pass of the

00:28:24 ◼   ► simple Siri shortcuts stuff.

00:28:26 ◼   ► I think that is the default thing that everybody should do this summer, is just go through

00:28:31 ◼   ► if there's going to be a few key moments in your application that would make sense to

00:28:36 ◼   ► plug into the Siri shortcuts thing.

00:28:39 ◼   ► Go ahead and do that.

00:28:40 ◼   ► And then I think it's wise probably to see how the fall shakes out before you necessarily

00:28:45 ◼   ► go whole hog into the rest of the shortcut stuff.

00:28:48 ◼   ► But at the very least, do that.

00:28:49 ◼   ► It should take you like half a day to do probably for most people, and then you can just kind

00:28:53 ◼   ► of have it in the app, it be available, and if people start loving it, then you can enhance

00:28:58 ◼   ► that.

00:28:59 ◼   ► And if they don't, you can kind of move on.

00:29:00 ◼   ► What about you?

00:29:01 ◼   ► Pretty much the same thing.

00:29:03 ◼   ► I'm buried in WatchKit right now, which is what we're going to talk about next week,

00:29:06 ◼   ► but as soon as I'm done with that, which might be a while, I intend to tackle Siri shortcuts

00:29:12 ◼   ► and then start doing things like AirPlay 2 and maybe a visual refresh of some sorts.

00:29:16 ◼   ► But we'll see.

00:29:17 ◼   ► Those are both large undertakings that are not a high priority right now.

00:29:22 ◼   ► So most likely we'll finish WatchKit for a long time.

00:29:26 ◼   ► So we'll talk about that next week.

00:29:29 ◼   ► And I guess that's it for this week.

00:29:30 ◼   ► So tune in next week for our wonderful WatchKit discussion, and we'll talk to you then.

00:29:35 ◼   ► Bye.

00:29:35 ◼   ► [BLANK_AUDIO]