Engineers who use Intercom’s mobile SDKs to communicate with their customers trust us to provide a stable and trustworthy platform that won’t break the apps they work so hard to build. This can be a challenge when the mobile development landscape is so fragmented by multiple platforms and SDK versions.
Apple and Google release new major versions of their mobile OSes every year. With each release comes new features, APIs and enhanced security. As a mobile SDK owner, we have a responsibility to implement the latest security improvements offered in Android and iOS. But as engineers we also understand that it takes time to update libraries and apps.
That’s why we’re introducing an official deprecation plan for previous versions of our mobile SDKs and, in July 2019, raising our minimum supported platform versions to Android API Level 21+ and iOS 11+.
Apple and Google both recently announced that they’ll be deprecating support for TLS 1.0 and 1.1, the protocols used for securing communications between apps and servers. By March 2020, all major browsers will drop support for TLS 1.0 and 1.1 in favor of TLS 1.2. Older versions of Android and iOS won’t support TLS 1.2 by default, and should not be used for apps.
To keep your apps safe and secure, we’ll be requiring TLS 1.2 for all connections from our SDKs beginning in March 2020. At that time, SDK versions 5.2.x and older will become obsolete, and mobile devices with OSes older than Android API 21+ and iOS 11+ will no longer be supported.
With this upgrade to TLS 1.2, we want to roll out a clear deprecation framework for old versions of Android and iOS that gives you ample time to upgrade apps for your teams and customers. Up until now, we’ve never specified whether or not previous SDK versions were explicitly supported. This made it hard for you to know when to update your app, especially since dropping support for older operating systems can impact users with older devices.
The lack of specificity also hampered our own ability to introduce improvements that were better for the end-user experience, but unfortunately were not 100% backward-compatible. Our goal with the new deprecation framework is to help you better plan updates to your app and ensure a more secure experience for your customers.
Our deprecation framework
Here’s how we’ll be rolling out the change. This summer, we plan to release a new version of the SDK that will support Android API Level 21+ (Lollipop) and iOS 11+. For customers who can’t update their apps right away, we’ll backport critical bug fixes and security fixes to the latest version of the current release of our SDK (currently 5.2.x) until March 2020.
You can expect us to stay vigilant about targeting newer mobile OSes going forward, as required by Apple and Google. To keep up with the status of each mobile SDK version and the schedule of deprecation, visit our Android and iOS developer docs. We’ll also communicate major releases here on the blog and maintain the changelog for all releases on the Android and iOS Github release pages.
Lessons learned developing our deprecation plan
If you have your own SDKs and are thinking of introducing a deprecation plan, here are some tips based on our own rollout experience.
First, articulate the problem you are trying to solve. A clear problem helps you carefully weigh the benefits you hope to achieve against the work you’re asking your customers and team to take on.
For us, we identified two primary pain points:
- Supporting older versions of Android and iOS means that we can’t use the best security protocols for all connections to Intercom. It means we’re delivering a fragmented user experience for our customers and end users.
- From a mobile engineering perspective, older versions of SDKs prevent us from being on the leading edge of the frameworks we use and making our internal development experience better.
Once the problem is clearly defined, collect data to understand the impact deprecation will have on your customers’ apps. For instance:
- How many of your customers are still using old versions of your mobile SDKs? What’s preventing them from updating to the latest release of your mobile SDKs?
- What are the industry standards around minimum supported Android and iOS versions? More importantly, what are the minimum supported Android and iOS versions in your customers’ apps?
- How will you communicate deprecation to your customers, and encourage updates in the future?
By gathering data for these questions, you’ll be able to make more informed decisions about which versions of your SDKs to deprecate and which versions of Android and iOS to stop supporting. You’ll also develop a better rollout timeline and support plan that minimize disruption to your customers’ apps.
We know updating apps takes time and effort and we’re committed to supporting you every step of the way. If you use our SDKs, look out for more email communications from our team later in April. We look forward to partnering with you to build modern app experiences that keep your customers’ data safe and secure!