Here's what we did today - a retrospect to Apple’s screen recording incident



Ahhh, the marvelous world of tech is so frenzied lately.
Everything moves fast, so easy and so… unexpected.
Today’s rising star is tomorrow’s abomination.
What’s working well this week, might get you in trouble next week.  
There’s no better way to begin the day than this:



So much bold text and so many asterisks in one email - that can’t be good…
Well...
Especially when later that day this comes in:


The crime: screen recording

Here's the original email coming from Apple, but believe me, it’s not very different than my interpretation above.
The trigger was set a few days earlier with this TechCrunch investigation that found that many popular iPhone apps secretly record the phone screens without asking for permission.
It didn’t take long for Apple to react.
Which means we now had 24 hours to fix our app, get rid of any SDK that is in “egregious violation” of the guidelines, resubmit to the store and hope for a fast review and approval of our apps.

Bummer

To be honest, we saw this coming: when you use so many SDKs it’s only a matter of time until things start to break unexpectedly. It can be a technical problem, a security glitch, or a privacy problem like this one.
Since we started Missbeez, we faced more than one crisis over the tools we’ve been using.
The biggest one was when Facebook decided to shut down Parse, leaving thousands of startups to look for alternatives for this amazing backend as a service.
We got the picture back then and it hasn’t changed since: SDK’s are unstable, they change, the companies shut down, they get acquired, they merge into new products.
Parse, Crashlytics, Angular, Swift, Google Analytics, mLab… where did backward compatibility go???

What used to be a controllable technology debt, turned into technology taxes and every SDK you add is subject to tax. 


Back to screen recording 

To be honest, screen recording were never really my thing. It’s supposed to show you the behavior of your users, provide an accurate and visual documentation of what they are doing with your product UI, without having to guess.
We gave screen recording a try few months ago, and ended up feeling screen recordings have a few problems:
First of all: what if the users don’t want us to know what they’re doing? It’s their phone, right?
Second, we encountered some real challenges with the output:
  1. It too addictive - you can spend hours watching video recordings
  2. It’s not quantitative - and in a B2C I always look for the volumes and trends rather than the specific cases
  3. Driven by the above - It was almost impossible to find meaningful insights in a reasonable time
At the end of the day, we stopped using it and went back to our traditional methods of measuring events and clicks with the likes of MixPanel and Google Analytics combined with our own reporting system.

Oh, right… I forgot to mention we kept that SDK in our project… which was the reason for this whole mess...
 

Takeaways

1. Never put all your eggs in one SDK basket

Things are too shaky and for mission-critical operations I would recommend having 2 alternatives or at least a backup plan. Examples: payment services, registration service, etc. If you can’t imagine your business running without your payment service, create a backup plan. 

2. Wrap your SDKs with your own wrappers 

This is a small technical design item: instead of embedding all kinds of API’s in your code, create wrappers that wrap those API’s in such way that will allow you to replace specific SDK’s without involving your core product code.

3. Get rid of unused SDKs

Clean your projects and get rid of SDKs you no longer use. This is something we didn’t do which led us to receive that warning from Apple even tough we haven’t used screen recording for many months. 

4. Analytics data should stay in-house

Screen recording, UI events, funnels, mobile analytics, ad attribution - at the end of the day, all of those tools have their dedicated dashboards.
My best advice is to pull important details from these systems - and push it back to the main system of records of the product.
External tools (and SDKs) come and go, and you will want this priceless data to be stored in-house and be kept safe forever.
Follow me on twitter @gilbouhnick or subscribe to the Mobile Spoon newsletter to get my occasional blogs directly to your inbox.

Comments