Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should i use iOS 4 new features in my app? and why?

I am updating one of my apps and I have a dilemma:

In places I wanted to add iOS 4 unique features I had no choice but to implement them only for supported devices - no dilemma here.

The dilemma is when I have 2 ways to achieve the same effect, one in the "old way" and one in a "new way". A good example is using blocks for animation, I can use this syntax:

[UIView animateWithDuration:2 animations:^{
     self.segmentedControl.alpha=0;
 }];

that will be supported in iOS 4.0 only. or use the old way which will be supported in all versions including 4. (There are many other similar examples.)

What do you do and why?

The blocks are really great but I will have to write more code if I want to support previous versions? What do I earn from using them in that situation?

like image 886
shannoga Avatar asked Jan 08 '11 12:01

shannoga


People also ask

Which function was newly added to iOS 4?

iOS 4 introduced multitasking. The feature allowed users to switch between apps instantly by double-clicking the home button.

Do iOS updates affect apps?

Updates also impact developers (and thus apps) in areas like forward and backward compatibility. Development tools are interconnected, and maintaining compatibility may require code changes.

Why is the latest iOS update important?

Software updates come with updated security improvements called “patches” based on the vulnerabilities found in the previous version. So, to protect your privacy, identity, and financial information, you need to install the latest software that has no susceptibilities.

How do I know if an app needs to be updated iOS?

Open the App Store. Tap your profile icon at the top of the screen. Scroll to see pending updates and release notes. Tap Update next to an app to update only that app, or tap Update All.


2 Answers

Generally, the rule is to support the lowest version of the OS that provides the capabilities that enable you to deliver the product you want to. I made all of my applications require iPhone OS 3.0 about a month after that launched because I needed to support custom copy and paste, as well as in-application email. For the free version of one of my applications, I wanted to try out iAds, so I made that 4.0-only.

The possibilities for internal code improvements that are provided by a new OS are a little trickier to make rules about. As Joe points out, the time you spend struggling against an old way of doing things, that could be saved by moving to a new OS version, is time that you aren't fixing bugs or adding that next great new feature. At some point, the elegance of a new way of doing things (like blocks and GCD) is just too compelling to ignore, even though it may not directly add any new features to your application.

On the Mac, many developers maintain support for the current version of the OS plus the previous one released by Apple (Snow Leopard and Leopard, at this time). Only when a new OS comes out do they drop support for the previously one-behind version. Others, like Wil Shipley, advocate jumping on board the new OS exclusively right away and ignoring old versions. The argument here is that people who won't pay for Apple's new OS versions or who don't keep their systems up to date are much less likely to buy your third-party application.

I've seen this as well on iOS. For example, I ran a test of ads targeted to different versions around the launch of 3.0 (when iPod touch users still had to pay for their OS updates). While downloads of a free version of my application were relatively consistent between 2.x vs 3.x users, almost no 2.x users paid for the application while 3.x users did.

No one complained among my paying users about the early move to 3.0 (they did speak well about the new features, though) and only two people have complained about my free version going 4.0-only, compared to 56,000 that have upgraded without a problem. While I would give a little time for a transition period, I believe in moving to new OS versions relatively soon after they launch. Right now, I'm in the process of making everything of mine 4.0-only so that I can modernize the codebase.

Finally, one last benefit you get from going with the new OS version is that you become much more attractive to Apple, who always wants to promote applications using new features in their new devices and OS versions.

like image 116
Brad Larson Avatar answered Sep 28 '22 03:09

Brad Larson


What is your goal for developing this app?

If it's revenue (or fame from high download counts), then look at the size and purchasing power of the additional market segment versus the development (and test and QA and support) costs.

Old device owners and old OS users are (1) a minority (check the analytics for the current number, on the order of 10% or less and dropping), and (2) they buy far less apps on average than people with the latest devices and OS versions. For non-blockbuster apps, this small additional percentage of potential downloads may not be worth the extra device testing and QA time that supporting these customers requires, much less the development effort.

If you are doing an app for charity or learning, then go ahead and donate your hours of effort to the 1 guy (or other small number) who likes new apps for their old device. It's good skill set to have if you want to jump to using some super new feature in the latest OS release just as it comes out, a few weeks before the majority of users upgrade their device's OS to match.

like image 31
hotpaw2 Avatar answered Sep 28 '22 03:09

hotpaw2