Should I use iOS 4 new features in my application? and why?

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

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

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

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

which will only be supported in iOS 4.0. or use the old method, 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 will I need to write more code if I want to support previous versions? What can I earn from using them in this situation?

+7
source share
4 answers

Typically, the rule is to support the lowest version of the OS, which provides features that allow you to ship the product you want. I made all my applications for iPhone OS 3.0 about a month after that, because I needed to support custom copy and paste, as well as email in the application. For the free version of one of my applications, I wanted to try iAds, so I made only 4.0.

Opportunities for internal code enhancements provided by the new OS are a little harder to create rules. As Joe points out, the time you spend struggling with the old way of doing things that you can save by upgrading to the new OS is the time you don't fix bugs or add this great new feature. At some point, the elegance of a new way of doing things (like blocks and GCD) is simply too convincing to ignore, even if it cannot directly add any new features to your application.

On Mac, many developers support the current version of the OS and the previous version released by Apple (Snow Leopard and Leopard, currently). Only when the new OS comes out, they will refuse to support the previous version with one lag. Others, such as Wil Shipley, advocate immediately switching to the new OS and ignoring old versions. The argument here is that people who will not pay for new versions of Apple OS or who do not keep their systems up to date, are much less likely to buy your third-party application.

I also saw this on iOS. For example, I started checking ads targeted at different versions starting from version 3.0 (when iPod touch users still had to pay for OS updates). Although downloading the free version of my application was relatively consistent between 2.x and 3.x users, almost 2% of users paid for the application, and 3.x users did.

None of my billing users complained about the early transition to 3.0 (they spoke well about the new features), and only two people complained that my free version is only 4.0, compared to 56,000 that were updated without a problem. Although I would give a little time for the transition period, I believe in the transition to new versions of the OS relatively soon after their launch. Right now, I'm in the process of creating all of my 4.0 — just so that I can upgrade the codebase.

Finally, the last advantage that you get from the new version of the OS is that you become much more attractive to Apple, which always wants to promote applications using new features in its new devices and OS versions.

+9
source

What is your goal for developing this application?

If this is revenue (or fame from a large number of downloads), then look at the size and purchasing power of an additional segment of the market compared to development costs (and testing and QA and support).

Old device owners and old OS users are (1) a minority (check the analytics for the current number, about 10% or less) and (2) they buy much less applications on average than people with the latest devices and OS versions. For non-blockbuster applications, this small additional percentage of potential downloads may not be appropriate for additional testing of devices and QA time, which is required to support these clients, and even more so for the efforts of developers.

If you are creating an application for charity or training, then go ahead and donate your hours of work to one guy (or another small number) who likes new applications for his old device. This is a good skill that you need to configure if you want to switch to using some super-fast function in the latest version of the OS, as soon as it is released, a few weeks before most users update their device OS to match it.

+2
source

If you are trying to make money selling your software, you may need to support as many versions of the OS as possible, and the easiest way to do this is to write one piece of code that will work on all versions - therefore, use the old style of animation blocks.

+1
source

With the new animation method, you can use the block to complete, instead of creating a separate method, it is much cleaner if you have several animations that need to be done at the end. It is also easier to read because it is not so common. There must be some technical advantage, but I do not know about this side of things.

0
source

All Articles