Published on October 22, 2021/Last edited on October 22, 2021/10 min read
The most wonderful time of the year is upon us—that’s right, I’m talking about iOS and Android upgrade season!
Each year, as summer turns to fall, consumers and brands alike learn about all the new Apple and Android features they didn’t know they needed, but are nonetheless still getting. From more restrictive app permissions and greater transparency around data collection to this year’s introduction of Apple’s Mail Privacy Protection (MPP) feature, these changes have the potential to significantly impact both the customer experience and the marketing strategies used by brands to reach those customers.
At Braze, our customers depend on us to stay on top of these changes and, when appropriate, take steps to update aspects of our platform to address issues or support new functionalities. For the Braze Platforms and Channels team, ensuring that our iOS and Android software development kits (SDKs) are updated in conjunction with the fall launches of these operating systems is arguably the biggest part of that annual process.
That effort begins long in advance of September and involves careful work and planning to ensure that updates are completed successfully and in a timely fashion. So let’s take a look at why these updates matter for our customers and how we carry out this process each year.
At Braze, our mobile SDKs for Android and iOS are key tools for brands with a mobile presence. In particular, they help ensure our customers’ marketing, growth, and product teams get the full benefit of our platform by supporting thoughtful data collection, in-app messaging, and the ability to trigger responsive experiences. But SDKs aren’t static; they change and grow in response to customer needs and shifts in the technology landscape.
Few shifts are as big as the ones announced for Android and iOS at Google I/O and Apple’s Worldwide Developer Conference (WWDC), respectively. There are three main factors that make this a key priority for my team and Braze as a whole:
The brands that use Braze to communicate with their customers are constantly pushing boundaries and looking for ways to use new tools, features, and tactics to up level their marketing strategies and gain a competitive advantage. But it’s up to Braze to ensure that these companies are able to take advantage of new iOS/Android features and functionalities to more effectively engage their customers.
That effort is twofold: First, ensuring that we’re aware of all the meaningful changes and their implications for brands’ customer-engagement strategies and that we’re updating our SDKs and the Braze platform to make it possible to take advantage of them; second, that we’re clearly communicating new challenges and opportunities associated with these updates. This year, for instance, we added support for new iOS 15 push features that allows our customers to set Interruption Levels and Relevance Scores when they’re composing push notifications in the Braze dashboard, allowing them to reduce the risk that they’re irritating users with messages at inconvenient times.
The research we do in connection with our OS update response effort can also help to inform our customers’ engagement strategies—for example, educating customers that Apple’s new Location Button makes it possible to get a second chance to request location permissions from users who have previously declined. These kinds of insights can help marketers optimize their strategies and more effectively hit their goals and build long-term customer relationships.
For mobile-app developers, keeping up with the changes that Apple and Google make each year to their mobile operating systems allows them to upgrade their dependencies while maintaining quality apps. Accordingly, falling behind can result in bad customer experiences and negative business impacts.
For Braze, supporting developers means doing what we can to ensure that our SDKs are backward- and forward-compatible whenever possible. Unlike websites, which always fetch the latest published version when a page is loaded, it’s not uncommon to see users engaging on old versions of apps and SDKs. To avoid unnecessary disruption as we respond to iOS and Android updates, we need to be conscious of introducing changes to our messaging APIs that may not function correctly on older app versions, while also making sure to remain compatible as users finally upgrade their apps and phones.
Billions of people around the world use apps that rely on Braze to show important and time-sensitive transactional notifications, promotions, and other key communications. These experiences are a key part of the brand–customer relationship in today’s increasingly mobile-first landscape, and ensuring that they aren’t adversely affected by changes to iOS and Android—or by updates made by Braze to respond to those changes—is a key priority for our company.
For that reason, we make a point of studying, prioritizing, and communicating insights around how changes to our SDK will affect not just brands, but also their end users. When you’re working with technology, change is inevitable, but ensuring that our customers have the information they need to understand and take action in connection with those changes is an essential part of the work we do around iOS and Android SDK updates.
Because Apple and Google tend to announce major changes to their mobile operating systems in the spring and implement them in the fall, staying abreast of these updates is a process that occurs over many months and involves a variety of stakeholders within Braze. That said, there are three main steps we take each year to ensure that everything stays on track.
Over the years, Braze has put together a reliable playbook that helps our teams successfully stay on top of the latest OS releases from Apple and Google. This process, which draws on past experiences with these tech giants’ annual update cycle, ensures that we don’t miss key developments and are able to stay ahead of the curve both in terms of updates to our platform and SDKs and communicating those changes to Braze customers.
The first and arguably most important step in this process? Gathering insights. Once the dates for WWDC and Google I/O are announced, our team starts planning our day-of response. That usually means watching all relevant sessions/videos and taking comprehensive (and maybe a little tedious) notes about anything that could potentially impact Braze, our SDKs, or our customers’ abilities to carry out their marketing programs.
Attention to detail is critical. We’ve often found that some of the most important details related to customer-engagement impacts are mentioned only briefly by speakers or are displayed as spare bullet points in Apple and Google presentations, making them easy to miss if you’re not methodical about the process. For example, Apple’s presentation on the new Notification Summary feature briefly mentions a key tip for optimizing placement: “Include media attachments with the notification content so there is a better chance for that notification to be featured at the top of the notification summary.” Details like these can make a big difference for marketers, but it’s easy to miss them in the many hours of video presentations if you’re not careful.
Once our engineers have collected all our notes from the WWDC and Google I/O sessions and videos, our team meets to review and classify each feature or update in our Compatibility Matrix, perhaps the most valuable tool in this process.
With any OS upgrade, there are three key variables that can impact adoption and timing of any changes, and our Compatibility Matrix allows us to map these variables to ensure alignment and clarity about the situation at hand:
As you’ll see below, there are 12 different permutations that our team needs to consider when releasing new features, identifying bugs, or introducing changes to our SDKs:
In the case of a breaking change introduced by Apple or Google, this matrix makes it possible for us to clearly understand when in the upgrade cycle a change will take effect and, accordingly, which upcoming release milestone we should target to launch our updates.
Updating our mobile SDKs in response to Android and iOS updates isn’t a one-and-done thing—it’s a process, with distinct steps along the way that we have to remain mindful of. In general, there are three main releases on our part:
Forward-Compatible SDK
Some notable OS changes can’t be controlled by an app’s development team—for instance, push-notification styles, which take effect as soon as an end user updates their phone. To ensure that our customers’ end users don’t see strange or unanticipated behavior in connection with their apps, we make a point of releasing a forward-compatible version of the appropriate Braze mobile SDK and encourage brands to upgrade to this new SDK prior to the official OS release date and to do so as soon as possible.
This year, we released forward-compatible versions of our iOS and Android SDKs months before iOS 15 and Android 12’s official release dates.
Our goal with these SDK versions is to ensure that by the time brands update their Braze SDK version, release their updated app to Google play/Apple’s App Store, and those updates finally make their way to end users’ devices, end users will experience a smooth upgrade process because they’ll be running the latest Braze SDK version.
Beta-Version SDK
Not all OS versions warrant a beta release. However, if there are experimental or questionable changes being made in Android/iOS, or known bugs that our customers report, Braze will release beta versions of our updated SDK to Github in order to allow developers to test them in their app. These beta releases make it possible for us to gather feedback about how these changes are playing out in our customers’ development-app versions, allowing us to get a picture of possible impacts and any necessary changes.
Backward-Compatible SDK
Once Apple and Google officially release the final version of their mobile operating systems (known as the “release candidate”), brands are allowed to release new, compatible app versions that take advantage of the operating systems’ new features and APIs. That usually happens a few weeks before the general public can update their devices.
At that point, if Braze is planning to introduce fresh functionality based on new APIs related to an updated OS, we aim to release an updated version of the relevant SDK. We typically wait until these release candidates are out to introduce new APIs—in part because we’ve learned over the years that things can change significantly between the beta and final versions of the OS.
Last year, for instance, we noticed that a few different versions of Apple’s iOS 14 beta had removed apps’ ability to request Provisional Push permissions, potentially making this functionality unusable. As a result, Braze prepared two separate, distinct versions of our iOS SDK—one that included this new change and one that didn’t—just in case the functionality was indeed removed. Thankfully, Apple corrected the error in a subsequent beta, but it really goes to show how conditional the information you glean from iOS/Android betas can be and the importance of not jumping the gun.
The Braze Platforms and Channels team’s biggest goal is to ensure that the brands using our platform can successfully power relevant personalized customer experiences in real time—and our SDKs play a major role in delivering these kinds of experiences on mobile. That’s why Braze puts so much planning, effort, and care into managing the annual OS upgrade season.
Interested in getting involved? Braze is hiring for a variety of roles across our Engineering, Product Management, and Product Design teams. Check out our careers page to learn more about our culture and our open roles.