An Open Letter to Apple from Rollout.io – Proposing a SECURE JavaScript Injection Approval Process

Dear Apple,

Call it what you want – code pushing, hot patching – but the concept is the same: a framework that allows apps to be updated by developers AFTER download.

I think we can agree the goal is sound – reduce bugs and crashes. But is this concept – let’s call it a “Live Update Service” safe? If not, can it be made safe? We have a proposal for you.

Please hear us out!

(more…)

Read More

iOS 9, 7 Upgrade Pitfalls – A Post From The Future

blog_graphics_7-04

Every OS version change comes with its own set of problems; developers use the new deployment target when releasing a new version of their application and then when it reaches their users, it crashes, freezes or just looks bad. When we all upgraded our apps to iOS 7 we were dealing with UI changes that were terrible to handle but were expected. iOS 8 brought to us the problem of permissions, especially background permissions. I’ve heard endless stories about expediting the review process after the developer found that background permissions are needed.

Curiously enough, a blog post from an anonymous iOS developer had the good fortune to fall through a time warp, and landed on our laps. Yes!!! we have obtained a blog post from the future.

In this blog post the anonymous developer describes his crashy transition to iOS 9. This blog will be written in December 2015. This is what he had to (or will) say:

 

————————————————– Dec 2015, Springfield U.S. ————————————————

Finally after 3 upgrades and one expedite I was able to successfully migrate my app a-Towel in the App Store to work on iOS 9. For those who haven’t finished yet, here are the major issues you can expect to face:

(more…)

Read More

Stop all indentation, TDD from religion to pragmatism

blog_graphics_7-16

Decoupling responsibilities is the most important part of your design, I have seen so many snippets of code that do not delegate responsibilities and create code that is not ready to be scaled.  A good system is one that you should feel the pain of your wrongdoings as soon as possible. When you find yourself testing completely different things in your tests – it is time to delegate responsibility and mock it. You’ll also find here my current conclusions regarding the role of TDD in your development toolbox.

(more…)

Read More

How We Automate Our SDK Tests to Support Delivery to Millions of Mobile Users

blog_graphics_5-18

In our last article, we delved deep into how Rollout.io works and how we leverage method swizzling to make our customers’ mobile applications robust. Having explained how you can search for and fix problematic live code in production environments without AppStore approval, we’d now like to share the ins and outs of how we run our test and delivery operations.

With our SDK installed on millions of devices, Rollout.io supports hundreds of mobile application developers across the globe. One of the challenges that we faced when planning our test operations and SDK delivery was preparing our backend servers to communicate with multiple versions of our SDK. For example, SDK version 0.1 of the Rollout.io configuration for the “Disable Invocation” hot patch looks different than version 0.6, which means that the backward compatibility must be maintained and tested. As a result, we came up with structured and automated testing operations. They enable us to deliver new features on a daily basis without breaking the communication and compatibility between our backend and a mobile endpoint’s SDK.

(more…)

Read More

Rollout.io Under the Hood: How We Patch Your Mobile App in Production

** This article is outdated and is no longer correct. **
P
lease see the following article which reflects our current technology:
Rollout Under the Hood – 2016 Update

blog_graphics_5-18

So you just finished fixing a crucial bug in your new mobile app and submit it for approval. If you’ve done this before, you already know that this process can take anywhere from 3 days to 2 weeks! However, if you are experiencing an urgent issue with your app in production, even a few hours can be an unbearable amount of time to wait. Rollout.io allows you to hot patch critical bugs in iOS apps in production (it’s true!). Rather than waiting for AppStore approval to hot patch and fix bugs on your own, with Rollout.io, you can search for and fix problematic live code. This is done by controlling how an individual function is executed based on Rollout.io’s configuration. For example, you could wrap a function with try/catch, replace a specific argument, run the function from a different thread, and more use cases.

(more…)

Read More

Rollout.io Tech Stack

 

Rollout.io is an iOS SDK that allows developers to fix bugs and prevent catastrophes in production. It follows a simple flow:

  1. Static code analysis checks how your application is built
  2. Code is dynamically written (in precompilation stage) and acts as an adapter between SDK and your application.
  3. Once the SDK is loaded it fetches the required hot patches and alters the application runtime on demand.

(more…)

Read More