95: Privacy and Responsibility
00:00:00
◼
►
Welcome to Under the Radar, a show about independent iOS app development.
00:00:04
◼
►
I'm Mark Warmant.
00:00:05
◼
►
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 this week in the news, there was a bit of a kerfuffle over the AccuWeather app embedding
00:00:15
◼
►
a location tracking ad network in its app.
00:00:19
◼
►
And it did some things that were, I think, pretty clearly not good.
00:00:25
◼
►
Pretty clearly not respectful of users, privacy, things like trying to derive the location
00:00:30
◼
►
with a third party ad firm, even if they denied location access and everything else.
00:00:34
◼
►
And so we wanted to talk about, not necessarily that specifically, but about the general topic
00:00:39
◼
►
of as an app developer, what kind of responsibilities or obligations you have on like a moral level
00:00:47
◼
►
or like a social or even like an app wide environmental level.
00:00:54
◼
►
And the various pressures that can affect those decisions or that can make these decisions
00:01:00
◼
►
You know, and because like the justification for this particular offense was, well, we
00:01:06
◼
►
need to know your location for the app to work.
00:01:09
◼
►
It's a weather app, so we need to know your location to tell you the weather where you
00:01:12
◼
►
But then once we have your location, are we obligated to only use it for that purpose?
00:01:18
◼
►
You know, if we pass that along to advertising SDKs in an advertising funded app, we can
00:01:24
◼
►
have more targeted ads and make more money per user.
00:01:28
◼
►
And then there's other problems like if you use analytics packages, then they have access
00:01:34
◼
►
to all this data.
00:01:35
◼
►
And what are they doing?
00:01:36
◼
►
And what are they doing with your data once they have it?
00:01:38
◼
►
What data are they collecting?
00:01:39
◼
►
And it's a complicated topic in the app world, I think, because these days, you know, as
00:01:46
◼
►
we've talked about at length on this show, you really can't rule out any method of monetization
00:01:51
◼
►
for the most part if you want to succeed financially in the app store.
00:01:54
◼
►
Like you have to be open to trying a lot of different things, including many cases, ads,
00:02:01
◼
►
and the sale of data in some way.
00:02:03
◼
►
Lots of apps are funded that way, whether we like it or not.
00:02:07
◼
►
For some apps, that might be the best way to fund them.
00:02:09
◼
►
So it's a tricky topic because we can't just say like, oh, everybody should just, you know,
00:02:17
◼
►
charge a real price and then not be funded by any of these ways.
00:02:19
◼
►
Because we all know that doesn't work for a lot of things.
00:02:22
◼
►
For I'd say probably most apps, it doesn't work.
00:02:25
◼
►
But there's also, I feel like, pretty clear responsibilities that we have either, you
00:02:30
◼
►
know, ethically or just to make things good and nice or sometimes even by policy from
00:02:38
◼
►
I feel like we have responsibilities that we need to follow on a few different fronts.
00:02:43
◼
►
So I feel like this is a tricky, this is one of the things that I feel like I struggle
00:02:49
◼
►
with most often in my development.
00:02:52
◼
►
That a lot of the technical and the design and those sides of the challenges that I face
00:02:57
◼
►
are like relatively straightforward, relatively easy to understand and unpack.
00:03:02
◼
►
But these types of questions become much more awkward.
00:03:07
◼
►
And it's especially awkward because many of them slightly hinge on the existence of
00:03:12
◼
►
my ability to do all the other work.
00:03:14
◼
►
That designing and building interesting apps is only something that I can really do if
00:03:20
◼
►
the business and financial side of it makes sense as well.
00:03:24
◼
►
And so some of these things get tricky.
00:03:26
◼
►
And like there is certainly, and a lot of these things, where the awkward place comes
00:03:32
◼
►
is in the sort of the gray area between, you know, actively doing things to harm your users'
00:03:39
◼
►
privacy in an active, intentional sort of conscious way.
00:03:45
◼
►
It certainly feels like not a good thing.
00:03:48
◼
►
Don't do that.
00:03:49
◼
►
I'm not going there.
00:03:51
◼
►
And on the flip side, it certainly is easier, I would probably say, to do things and structure
00:03:57
◼
►
things such that many of these things are just things you can't think about or worry
00:04:04
◼
►
So this is the approach in many ways that Apple takes in a lot of their products where,
00:04:10
◼
►
to their detriment in some ways, they intentionally don't aggregate or keep certain information
00:04:18
◼
►
on their servers.
00:04:19
◼
►
You know, a lot of the trickinesses they sometimes have where all your photos are analyzed for
00:04:26
◼
►
features locally rather than in the cloud, which is good for privacy but can be problematic
00:04:31
◼
►
in other ways.
00:04:32
◼
►
But if they, by Apple taking that conscious choice to say, "I'm not going to allow
00:04:37
◼
►
myself access to this," then I don't have to worry about the appropriate way to treat
00:04:45
◼
►
But in the middle is where it gets complicated because many of my applications make use of
00:04:54
◼
►
ad platforms.
00:04:55
◼
►
That's how I make a substantial part of my income from my apps is by showing ads.
00:04:59
◼
►
And back in the day when Apple had iAd, I used iAd, and I was glad to use it because
00:05:05
◼
►
I had a certain amount of confidence that Apple was doing the right things in terms
00:05:12
◼
►
of user privacy.
00:05:13
◼
►
And in many ways, that worked out.
00:05:16
◼
►
It was great for when it was there, but then Apple took it away.
00:05:18
◼
►
It wasn't viable for Apple to do in the long run.
00:05:21
◼
►
And so if I want to do advertising now, I'm more in the position of choosing from the
00:05:26
◼
►
lesser of two evils rather than which one is the good and the bad.
00:05:31
◼
►
And so I just have to make a guess.
00:05:34
◼
►
In my case, we've talked about previous episodes, I use Google Ads for my primary monetization
00:05:40
◼
►
whenever I'm doing advertising now because I figure Google is at least a big company
00:05:45
◼
►
who is responsible to shareholders, is fairly well analyzed and looked at.
00:05:51
◼
►
And so if they're doing things that are super sketchy, it'll come to light fairly
00:05:56
◼
►
quickly, and I'll be able to take steps accordingly.
00:06:01
◼
►
That's ultimately what I went down with.
00:06:03
◼
►
But in all these things, some of these things are just going to be impossible to avoid.
00:06:12
◼
►
Like the fact that in this situation where this platform that was in this weather app
00:06:17
◼
►
was using, I think it was Wi-Fi information.
00:06:20
◼
►
So knowing what the various signal strengths of named Wi-Fi hotspots allows them to triangulate
00:06:29
◼
►
your position to some level of accuracy.
00:06:32
◼
►
And in an amusing way, this actually goes all the way back to, I think, the first iPhone.
00:06:36
◼
►
This was the only way location services worked, was this type of stuff where you can triangulate
00:06:41
◼
►
location based on Wi-Fi hotspots, assuming you're near a Wi-Fi hotspot.
00:06:47
◼
►
And that's great.
00:06:48
◼
►
So you could say, well, maybe Apple should lock this down and not make this available,
00:06:52
◼
►
or add an entitlement to apps so you have to actively ask, would you like this app to
00:06:59
◼
►
have access to your Wi-Fi information?
00:07:01
◼
►
And sort of that might help, but at the same time, then I just think, well, any time I
00:07:05
◼
►
make a web request to an ad network, that web request is coming from an IP address.
00:07:10
◼
►
And that IP address is, in the same way, somewhat geographically located.
00:07:15
◼
►
I mean, I know that's not-- it's less precise and less fine-grained, probably, than Wi-Fi,
00:07:22
◼
►
but it still probably can give you a location to within a zip code, maybe, or similar.
00:07:29
◼
►
And that information is always going to be available.
00:07:32
◼
►
And so it starts to become this kind of-- you're chasing your tail a little bit if your
00:07:37
◼
►
goal is to say, I'm never going to do anything that will allow my user's location to be shared
00:07:43
◼
►
with a third party.
00:07:44
◼
►
Like, it's probably not going to happen.
00:07:46
◼
►
But I don't know.
00:07:47
◼
►
I struggle a lot with this tension of, I want to be respectful and do things that are in
00:07:55
◼
►
But ultimately, you're always going to have to, at some point, make a choice that says,
00:08:01
◼
►
either I'm going to have to just say no to this opportunity for monetization or this
00:08:08
◼
►
opportunity that I might have, or I'm just going to have to try and make the best choice
00:08:13
◼
►
I can and just live with that and understand that when you do that, you're taking on the
00:08:18
◼
►
responsibility for that.
00:08:19
◼
►
Like, I understand that when I include Google's SDK in my app, if Google does something bad,
00:08:26
◼
►
I'm on the hook for that.
00:08:27
◼
►
And it's not like I can be like, oh, Google, you did something bad, but I didn't and be
00:08:32
◼
►
absolved of that.
00:08:33
◼
►
It's like, I'm still responsible for that.
00:08:35
◼
►
But ultimately, that's kind of the trade-off that we're going to just have to make, I think.
00:08:39
◼
►
Yeah, because it's so often not a question of, like, do I want to do the right thing
00:08:47
◼
►
I mean, honestly, that should always be a question.
00:08:49
◼
►
But so often, it's hard to make that decision objectively because the financial or market
00:08:55
◼
►
pressures are very strong in the other direction.
00:08:58
◼
►
And in the case of any kind of ad-funded or data-funded app, basically the more creepy
00:09:04
◼
►
that you are or that you allow someone else to be inside your app, the more creepy you
00:09:09
◼
►
are, the more money you make.
00:09:12
◼
►
And that's a sad state of affairs, and that has a massive negative incentive there.
00:09:17
◼
►
But that is the reality of that kind of business, that the more data you can give a smart ad
00:09:24
◼
►
network, the more targeted ads they can serve to that person both in your app and also then
00:09:29
◼
►
in other apps that their network is in.
00:09:31
◼
►
They track people between apps.
00:09:34
◼
►
And you're right.
00:09:35
◼
►
Even if you just make a web request to the server, even if the API inside the app is
00:09:41
◼
►
doing nothing incredibly creepy and not capturing much more data than just sending a web request,
00:09:45
◼
►
yeah, if you have an IP address, you can track people between apps and between sites on the
00:09:49
◼
►
web and everything else, and you can do creepy stuff.
00:09:52
◼
►
And you can usually identify somebody if you try hard enough.
00:09:56
◼
►
And so some degree of this is inevitable, but I feel like this is one of the ways in
00:10:05
◼
►
which it's hard for me to fully know the market forces because I'm fortunate enough to be
00:10:10
◼
►
in a position where I can make these decisions myself, whereas most developers are in a situation
00:10:17
◼
►
where it's not their call, how creepy their app is or how creepy their company or their
00:10:22
◼
►
ad network is, or they might just be in a bad situation where they tried other things
00:10:28
◼
►
and other things didn't work for them.
00:10:30
◼
►
And so the only way they could make a living making apps or making a particular type of
00:10:34
◼
►
app is to put in creepy stuff.
00:10:37
◼
►
And that's a really sad state of affairs.
00:10:39
◼
►
And I recognize, again, some people might consider that inevitable or their only choice.
00:10:45
◼
►
I would challenge that in a lot of cases to say, "Is that really your only choice?"
00:10:49
◼
►
But the reality is for some people, they're going to say yes, and that might be the case
00:10:54
◼
►
And so it's really hard for me to preach this to anyone else to say, "You shouldn't do
00:11:00
◼
►
creepy stuff."
00:11:01
◼
►
But there are certainly degrees of what you can do.
00:11:06
◼
►
When I tried ads in my app for the first time last fall, about a year ago, I did Google
00:11:11
◼
►
ads for the same reason, what you just said, basically, same reason, which was they were
00:11:16
◼
►
the biggest ad network by far.
00:11:18
◼
►
So I knew that they would sell the most inventory and that I trusted that Google probably would
00:11:25
◼
►
be less creepy than some of the other players in that business and that if Google did anything
00:11:31
◼
►
bad, we'd hear about it.
00:11:33
◼
►
And I think that was mostly correct.
00:11:35
◼
►
But at the time, though, there were all sorts of...
00:11:39
◼
►
I'm sure there still is.
00:11:41
◼
►
But I had to choose between all sorts of different networks and there were all these packages
00:11:44
◼
►
that would roll together multiple networks, aggregate them, and basically serve each ad
00:11:51
◼
►
to the highest bidder.
00:11:52
◼
►
And so you'd have to integrate six or seven mobile ad SDKs in your app, run them all,
00:11:58
◼
►
and then take bids from all of them at request time and do some kind of meta choice thing.
00:12:06
◼
►
That seemed to be the default choice that most people took at the time, and I'm sure
00:12:10
◼
►
it still is that way today.
00:12:14
◼
►
And the reason why you would do that, I had the freedom, really, the authority for my
00:12:19
◼
►
business to say, "I'm not willing to cross that line to get maybe 20% more money," or
00:12:26
◼
►
whatever the number would be.
00:12:27
◼
►
But again, a lot of people don't have that freedom to make that choice.
00:12:31
◼
►
And so it is the norm to just throw in as many ad SDKs as you possibly can, have something
00:12:38
◼
►
aggregate them all, and you're giving away every possible bit of data you possibly can
00:12:44
◼
►
in that process to all these different parties to have them maybe serve you an ad for you
00:12:48
◼
►
to maybe make 20% more on your relatively low ad revenue.
00:12:53
◼
►
And that's just really, it's hard for me to reconcile what I want to be true about the
00:12:59
◼
►
marketplace with what people are actually doing, whether they have to or not.
00:13:05
◼
►
Again, it's hard for me to say that, but it's very hard for me to look at this and say,
00:13:10
◼
►
"Oh yeah, well, I guess it has to be this way."
00:13:13
◼
►
There has to be something else to it.
00:13:16
◼
►
In my app, I made the decision recently, basically this past fall and winter, after doing Google
00:13:25
◼
►
ads for a little while, they weren't going very well, we talked about it on the show,
00:13:28
◼
►
so I ditched them and I made my own ad network, basically, where I'm just selling ads for
00:13:32
◼
►
podcasts, and that works for my app for a few reasons that it probably doesn't work
00:13:35
◼
►
for really any other apps.
00:13:37
◼
►
So obviously this is not a generalized solution to this business problem.
00:13:41
◼
►
But one of the things I decided back then was I'm no longer okay with this.
00:13:44
◼
►
I did it, I kind of swallowed the bitter pill because I thought I had to, but once I found
00:13:50
◼
►
a better option, I stopped doing it.
00:13:53
◼
►
And I hope that more people are able to find those better options and are able to give
00:13:59
◼
►
themselves the freedom to say, "You know what, I'm willing to decline 15 or 20 percent
00:14:05
◼
►
of this revenue in order to cut myself from seven ad SDKs down to one that's reasonably
00:14:12
◼
►
trustworthy."
00:14:14
◼
►
And unfortunately, just a lot of people are either not able to make that choice or don't
00:14:19
◼
►
care and are willing to just throw away their users' privacy.
00:14:22
◼
►
Yeah, because I think ultimately, and it could just be a rationalization, but I think in
00:14:30
◼
►
the end what I found for myself is I wrestle with these kinds of things.
00:14:35
◼
►
And part of what brings me to the Apple platform and this ecosystem is, in general, a pervasive
00:14:44
◼
►
culture of respecting the user in many facets.
00:14:49
◼
►
This is the privacy and that side of thing is certainly a significant part of it, but
00:14:54
◼
►
you respect the user in the way you design your user interface and their time and their
00:14:58
◼
►
attention and those types of things as well.
00:15:00
◼
►
And it's a fairly user-centric focus.
00:15:03
◼
►
That attracts me to here, but I understand that some of these things are, yeah, it's
00:15:08
◼
►
a necessary tradeoff, that I've tried many other forms of monetization if I want to keep
00:15:14
◼
►
If I want to keep providing, my users, I think, don't care about this as much as I do in general.
00:15:22
◼
►
That's the impression that I get.
00:15:23
◼
►
And in some ways, that's a good thing.
00:15:27
◼
►
Probably it's a positive thing for our relationship for me to be more worried about this than
00:15:33
◼
►
They shouldn't have to think about this or care about this, that I need to worry about
00:15:38
◼
►
And if I continue to do that, then that's probably overall going to bode well.
00:15:42
◼
►
But I think what I found at least is probably a useful measure for where someone is on this
00:15:48
◼
►
is, I think it's more a question about your posture towards things like this than necessarily
00:15:56
◼
►
some of the choices that you'll have to make in those gray areas.
00:15:59
◼
►
Because in my case anyway, it's like my posture is that I want to do the bare minimum that
00:16:07
◼
►
I can from exposing my users' data and privacy while still being viable financially.
00:16:17
◼
►
I'm not trying to maximize the money I can make.
00:16:21
◼
►
I'm trying to be viable in that.
00:16:24
◼
►
In general, with moral or questions like that, where there's this line that you don't want
00:16:30
◼
►
to cross, it's the question of, are you trying to see how close you can get to that line
00:16:36
◼
►
without crossing it?
00:16:39
◼
►
Or are you trying to keep as far away from it as you can, being aware that it's still
00:16:44
◼
►
And I think as long as your posture is still one of trying to distance yourself away, that
00:16:47
◼
►
yeah, when you're integrating ad platforms, rather than integrating six and trying to
00:16:54
◼
►
maximize your money that way, maybe just do one.
00:16:57
◼
►
Maybe minimize your opportunities for doing things or for nefarious things happening.
00:17:02
◼
►
And honestly, in some ways, limiting your exposure to it.
00:17:04
◼
►
The impression I got from this AccuWeather situation is that this wasn't the only SDK or ad SDK
00:17:11
◼
►
that they had in their app.
00:17:12
◼
►
They just had several.
00:17:13
◼
►
And in many ways, I kind of feel bad for the developer because my guess is this is a very
00:17:19
◼
►
good chance.
00:17:20
◼
►
This is not like they got pinned for something that they weren't necessarily aware of or
00:17:26
◼
►
wasn't a conscious choice.
00:17:27
◼
►
But if you just go for the maximization strategy, include dozens and dozens of SDKs, fill your
00:17:34
◼
►
app with them, and then hope for the best and have your goal be to maximize things.
00:17:39
◼
►
And stuff like this is inevitably going to happen because there's just so many different
00:17:43
◼
►
avenues for problems.
00:17:45
◼
►
And I will say, and it's certainly something that's relevant for this audience and the
00:17:49
◼
►
show is it is something that is one of the wonderful benefits of being an independent
00:17:55
◼
►
developer, I think, is being able to make that choice in a way that you think, like
00:18:01
◼
►
you were just saying, sometimes you just wouldn't have the opportunity to make that choice.
00:18:05
◼
►
That if your organization says we need to maximize doing this, then that's great.
00:18:12
◼
►
And then also, yeah, just keep in mind that whenever I talk to these types of topics with
00:18:19
◼
►
non-developers, I'm always struck by how in general most people just don't mind about
00:18:26
◼
►
it and they don't really think about it or care about it.
00:18:28
◼
►
And I mean, if you think about how many people post pictures to social networks, to Facebook,
00:18:34
◼
►
to Instagram, to Twitter, to places like that, every one of those pictures, if it's taken
00:18:40
◼
►
with a phone, will have precise GPS coordinates in it that almost certainly those social networks
00:18:46
◼
►
can use to determine where you are and how you move around.
00:18:51
◼
►
And most of those social networks are powered by advertising, so they have this data anyway.
00:18:56
◼
►
But at the same time, I think most people would say, well, I'm not going to not post
00:19:00
◼
►
pictures to social networks, even though every time I do that, I'm giving very precise location
00:19:05
◼
►
information to all my social networks.
00:19:08
◼
►
And so it's probably not as big of a deal as we make it out to be as developers, but
00:19:14
◼
►
I think it's important to have a thoughtful, conscious posture towards it and then just
00:19:19
◼
►
accept that this might just be some of the realities of where we are.
00:19:24
◼
►
I would also say, too, it's worth, you know, I did say that a lot of times you aren't in
00:19:30
◼
►
the position to make this choice, but you are usually in the position to choose the
00:19:37
◼
►
kind of job that you do and the kind of company you work for.
00:19:41
◼
►
And yeah, you know, certain times the market's harder than others, certain places the market's
00:19:44
◼
►
harder than others, but people often go to the excuse, you know, oh, I can't leave this
00:19:49
◼
►
job that ethically does questionable things because I can't get a job anywhere else or
00:19:54
◼
►
it's not so easy to quit your job.
00:19:55
◼
►
And that's true.
00:19:56
◼
►
It isn't so easy to quit your job and go somewhere else.
00:19:58
◼
►
But that is within your control.
00:20:01
◼
►
And a lot of people assume that there's nothing else out there for them when they actually
00:20:06
◼
►
don't know that, you know, they haven't actually tested that or looked or tried to get other
00:20:12
◼
►
So doing bad things or things that you consider ethically problematic at your job, you can't
00:20:19
◼
►
just say, well, that was my job to do it.
00:20:20
◼
►
You know, like I was just doing my job.
00:20:22
◼
►
Like that does not excuse you from that.
00:20:25
◼
►
And you know, there are other options out there.
00:20:27
◼
►
There is work out there to be had that does not require you to compromise your ethics
00:20:32
◼
►
or do creepy things.
00:20:33
◼
►
And I highly encourage you, if you're in a bad situation, to look at those options.
00:20:38
◼
►
Seriously consider them.
00:20:39
◼
►
Just brush off the idea that, oh, well, those jobs aren't around me or I can't get those
00:20:45
◼
►
jobs or there aren't enough of those jobs.
00:20:46
◼
►
No, those jobs exist everywhere.
00:20:48
◼
►
Anyway, we are sponsored this week by Linode.
00:20:51
◼
►
Linode helps you get your servers up in seconds with fast, powerful web hosting.
00:20:56
◼
►
And Linode plans now start at just five dollars a month for a full Linux server with one gig
00:21:00
◼
►
of RAM in the Linode cloud.
00:21:03
◼
►
Linode has over 400,000 customers, including David and me, who are all serviced by their
00:21:07
◼
►
friendly 24/7 support team if you need it.
00:21:10
◼
►
You can email, call, or even chat over IRC.
00:21:12
◼
►
If you need help with anything about your servers, Linode is there for you.
00:21:16
◼
►
The control panel is beautifully designed with a focus on ease and simplicity.
00:21:20
◼
►
It allows you to deploy, boot, resize, and clone your VPSs in just a few clicks.
00:21:25
◼
►
And they have comprehensive guides and support documentation to teach you everything you
00:21:29
◼
►
need to know for setting up and managing virtual servers.
00:21:32
◼
►
So whether you're just getting started with one server or you have a complex system that
00:21:36
◼
►
you're deploying, I mean, I have, I think, 20 servers at Linode.
00:21:40
◼
►
And I was there for years with just one.
00:21:43
◼
►
And I've seen everything in between.
00:21:44
◼
►
And it scales up, up and down.
00:21:46
◼
►
It's wonderful.
00:21:47
◼
►
I love Linode.
00:21:48
◼
►
I put all my stuff there, and I highly recommend it.
00:21:51
◼
►
So check it out.
00:21:52
◼
►
They have fantastic pricing available.
00:21:53
◼
►
Again, a server with one gig of RAM is just five bucks a month.
00:21:57
◼
►
You can scale it up to 16 gigs of RAM for just 60 bucks a month.
00:22:00
◼
►
They are offering twice as much RAM that you will get elsewhere for the same price.
00:22:05
◼
►
As a listener of this show, if you sign up at linode.com/radar, you will support us and
00:22:09
◼
►
you will get $20 towards any Linode plan.
00:22:12
◼
►
And with a seven-day money-back guarantee, there's nothing to lose.
00:22:15
◼
►
So go to linode.com/radar.
00:22:17
◼
►
To learn more, sign up and take advantage of that $20 credit or use promo code radar2017
00:22:23
◼
►
at checkout.
00:22:24
◼
►
Thank you so much to Linode for supporting this show.
00:22:28
◼
►
So I wanted to kind of bring around a little bit too, in addition to like ad networks and
00:22:32
◼
►
stuff, the larger topic of just what we shove into our apps on someone else's behalf, I
00:22:41
◼
►
really think this deserves a lot of scrutiny.
00:22:44
◼
►
And I'm not saying no one should ever embed third-party code.
00:22:49
◼
►
I decided for myself I will no longer embed third-party closed source code.
00:22:53
◼
►
And I actually use very little third-party code at all anyway, but that's just a coding
00:22:57
◼
►
But like there are features in my app that I could add, like I could add Chromecast audio
00:23:03
◼
►
But embedding Chromecast requires a closed source Google SDK to be added to my app, and
00:23:08
◼
►
I'm no longer okay with that, so I don't offer that feature.
00:23:12
◼
►
And I have to just be okay with not having that feature, even if it hurts me competitively
00:23:15
◼
►
in some ways.
00:23:16
◼
►
But there are also certain things, like I decided I didn't want third-party analytics
00:23:20
◼
►
anymore because analytics companies, even the big fancy ones like Fabric and Google
00:23:28
◼
►
and stuff like that, actually that is now Google, isn't it?
00:23:33
◼
►
That's a lot of data you're sending them.
00:23:35
◼
►
And a closed source package collecting all that data from all these people for the purpose
00:23:40
◼
►
of an advertising company to benefit from it, and you get these things for free, allegedly.
00:23:45
◼
►
That's creepy.
00:23:46
◼
►
And that is not doing anybody any favors, really, except you're saving some money
00:23:50
◼
►
on analytics.
00:23:53
◼
►
When you're faced with the decision of adding these, again, I just encourage you to give
00:23:57
◼
►
them a lot of scrutiny, to think, "Do I really need this thing?
00:24:01
◼
►
Do I really need to embed this?
00:24:03
◼
►
Or am I giving away the farm to get some minor benefit to me?"
00:24:09
◼
►
There's a trade-off there.
00:24:11
◼
►
There's a balance there.
00:24:12
◼
►
And I think if you're going to be putting yourself in the position of giving away lots
00:24:17
◼
►
of your users' data to some other company that the users are not expecting or that they
00:24:21
◼
►
might not even know about as they're using your app, I feel like you have a responsibility
00:24:25
◼
►
to not only try to avoid that at all costs, but also if you do have to do it, to really
00:24:30
◼
►
make sure that there's a really good reason for why you have to do that.
00:24:34
◼
►
Things like your app has to do that to survive financially.
00:24:39
◼
►
That's a good reason if you can make the other things work out or if it's not being
00:24:44
◼
►
But if it's like, "It'll be a little more convenient for me to embed this one SDK
00:24:48
◼
►
or to use this one service or to get these types of analytics if I give away all of my
00:24:53
◼
►
users' data to this other company to do God knows what with," that's not a good
00:24:58
◼
►
And that's the kind of thing that I think a responsible developer needs to avoid.
00:25:01
◼
►
>> Justin: Yeah.
00:25:02
◼
►
And I think even just there's practical reasons, too.
00:25:06
◼
►
If I look in a lot of my crash logs, at this point, the only crashes that exist in my apps
00:25:15
◼
►
are from the ad frameworks that I have to include in my apps to show ads.
00:25:22
◼
►
And those are just crashes that I'm just going to have to accept the fact that I can
00:25:28
◼
►
never fix, that those are just going to be there.
00:25:30
◼
►
And so minimizing those opportunities is probably good.
00:25:33
◼
►
And similarly, there's the size side of this, that every framework you add to your
00:25:38
◼
►
app makes your app bigger.
00:25:40
◼
►
And this can get kind of silly if the majority of the size of the download of your application
00:25:47
◼
►
is from third-party frameworks.
00:25:50
◼
►
That's probably not good.
00:25:51
◼
►
I mean, both from the—that's wasteful of bandwidth and so on.
00:25:56
◼
►
But it's also probably hurting your app in other ways as well.
00:26:01
◼
►
Even if your app is still below the cellular download level and so on, the number of times
00:26:07
◼
►
someone will download an app from the app store and never open it is not substantial.
00:26:12
◼
►
And it wouldn't surprise me if the time between hitting download and being able to
00:26:17
◼
►
hit open as that increases, I would be not at all surprised if the number of—the abandonment
00:26:24
◼
►
rate, I guess you would call it, increases as well.
00:26:27
◼
►
And so keeping your app size small has benefits for you in other ways.
00:26:30
◼
►
But yeah, it's like you want to be very mindful of any of these things when you're
00:26:35
◼
►
pulling them in because you are making so many of these tradeoffs for stability, for
00:26:39
◼
►
size, for privacy, and you just have to live with whatever is going in there as a result.
00:26:45
◼
►
Yeah, like ultimately it's your responsibility as a developer.
00:26:50
◼
►
Like this all falls on you.
00:26:53
◼
►
Even if you put something in your app that doesn't even keep you that you don't know
00:26:56
◼
►
about, that's still on you.
00:26:58
◼
►
It's your responsibility to know what you're putting in your app.
00:27:01
◼
►
And you know, like the incident we're talking about with AccuWeather, like they kind of said
00:27:05
◼
►
at the beginning that like, "Oh, they didn't know this was happening."
00:27:07
◼
►
It was something like that.
00:27:08
◼
►
But like that's still their fault.
00:27:10
◼
►
That's still their responsibility.
00:27:11
◼
►
And it's absolutely their problem.
00:27:14
◼
►
Like anything you embed in your app, any data you give away, you are the one responsible
00:27:20
◼
►
You are the one doing that.
00:27:21
◼
►
You can't shirk that responsibility.
00:27:24
◼
►
You can't say, "Oh, well, how did you embed this thing?"
00:27:26
◼
►
No, that's -- your users don't care.
00:27:28
◼
►
Apple won't care.
00:27:29
◼
►
Lawyers won't care.
00:27:30
◼
►
No one will care the reason you embedded that.
00:27:33
◼
►
All they'll care about is that your app did that.
00:27:36
◼
►
And so you have to use the utmost care for just social responsibility as well as your
00:27:42
◼
►
own liability to really minimize the ways in which you are letting other people run
00:27:49
◼
►
code in your app that you might not be able to see or that you might not know about or
00:27:53
◼
►
where there is a clear incentive for them to be creepy and abusive.
00:27:59
◼
►
And it's one of the things that I will say that I love -- I'm always very glad when I
00:28:05
◼
►
see Apple adding new system-level protections for most of these things because it eliminates
00:28:12
◼
►
something that I need to worry about.
00:28:15
◼
►
That like -- I mean, it's still kind of remarkable to me that back in the original days of the
00:28:19
◼
►
iPhone OS SDK, apps could scan your address book without the user being aware of it.
00:28:28
◼
►
And like it's kind of -- when they finally fix this, but the reality is previous to that,
00:28:34
◼
►
any time you included a third-party SDK into your app, it was entirely possible they were
00:28:40
◼
►
taking that user's entire contact book and uploading it.
00:28:44
◼
►
You would have no way to know that that was happening.
00:28:47
◼
►
And so like I always love it when Apple goes -- like they solve some of the problems in
00:28:51
◼
►
ways that I can't by when they introduce their protections.
00:28:54
◼
►
And like I would not be surprised if Apple introduces some kind of, you know, privacy
00:28:59
◼
►
protection around Wi-Fi state and Wi-Fi information as a result of this sort of news article cycle.
00:29:06
◼
►
And if they do, that's awesome.
00:29:07
◼
►
Like any time that they do those types of things, I love it because it makes my life
00:29:11
◼
►
easier and it's one less thing that I need to worry about as a result.
00:29:17
◼
►
All right, thanks for listening everybody.
00:29:19
◼
►
I'm going to talk to you next week.
00:29:22
◼
►
[BLANK_AUDIO]