With the release of the newest iOS version – iOS 13 – the mobile world has seen an unprecedented number of updates, released quickly to the public. To recap, we had:
- iOS 13 released September 19, 2019
- iOS 13.1, released September 24, 2019
- Three patch version (13.1.1, 13.1.2, 13.1.3) during the next 3 weeks
- iOS 13.2, released October 28, 2019, with additional 3 patch versions (13.2.1, 13.2.2, 13.2.3
- iOS 13.3 in December 2019.
And it does not seem to be all for the iOS 13. Can we learn something from such a crazy at the first glance release cycle? I believe so
One of the proverbs in the startup industry says It’s null until you ship it – there’s no value in your business until your users are really using it. The same applies to apps you are building – it should land in the hands of your users as soon as possible. While that seems trivial, there’s a catch.
Many of the features Apple has planned for its iOS 13 release got delayed. They were planned to be released on September 19, 2019, but – for many reasons – got pushed to the following updates. That’s the reason why the second part of the version number grows so quickly. To recap a bit:
- iOS 13.1 brought a number of small features, like improved battery management, AirDrop over Ultra Wideband networks, and ability to create more advanced shortcuts
- iOS 13.2 was a big one, bringing many Camera app improvements, with the Deep Fusion algorithms making photo taking with your iPhone camera much more advanced
- iOS 13.3 comes with a set of improvements to parental control, screen time, news & stocks features
There’s a great area of deploying a similar approach to your app development. Many of the features you are able to identify before your app gets released are not crucial for app usage. To give some examples – advanced reporting of your sales, or filtering will be needed for an app that does the management of your online retail business. But both those features won’t be needed from day 0 – most likely you will need them weeks, if not months after your product gets released.
There are a few techniques that make implementing such an approach easier. In our Handcrafted Platform we have implemented a mechanism of so-called feature switches – which allows us to turn features on & off remotely. But that technique spans beyond that – we’re also taking an approach of incremental product development, with the new features added to the source code of your product, but not yet enabled. Looking at the release cycle of Apple – that’s the same as what they did. We’ll cover the topic of feature switches & incremental development approaches in separate articles.
That point could give some controversies, as the iOS 13 was not considered the most stable of the iOS releases so far. With the initial release of the iOS 13, users who quickly downloaded an update to their operating system complained about many small glitches or even bigger issues, like with their battery usage getting dramatically bad.
In response to that Apple has released a number of bugfix releases. There were weeks when two patch versions were released.
As you can tell from the example above – bugs and issues with software could happen for any company, no matter how big it is. However, we can say that the difference between good and bad software is in the way how issues are getting resolved.
Apple reacted quickly for the bugs they have spotted themselves or got reported by users of their new operating system. What helped them were systems for automatic detection of issues that users were facing – app crashes, freezes or other unexpected behavior.
While it’s hard to compare the operating system to a much simpler mobile app, the same techniques could be implemented, which will greatly help to make your app flawless. For example, our framework for building mobile apps, the Handcrafted Platform, integrates with the most widely used issue collecting tools, like Firebase Crashlytics (https://firebase.google.com/docs/crashlytics, which was a part of Fabric toolkit in the past), Visual Studio App Center (https://appcenter.ms/, previously known as HockeyApp), Bugsee (https://www.bugsee.com/), and Google Play/AppStore crash collection mechanisms. If you want to know more how that tools could be used in your app – drop us an email to email@example.com and we’ll try to help!