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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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
◼
►
[BLANK_AUDIO]