7

アプリの 1 つを更新していますが、ジレンマがあります。

iOS 4 独自の機能を追加したい場所では、サポートされているデバイスにのみ実装するしかありませんでした。ここではジレンマはありません。

ジレンマは、同じ効果を得るために「古い方法」と「新しい方法」の 2 つの方法がある場合です。良い例は、アニメーションにブロックを使用することです。次の構文を使用できます。

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

iOS 4.0 でのみサポートされます。または、4 を含むすべてのバージョンでサポートされる古い方法を使用します。 (他にも多くの同様の例があります。)

あなたは何をしますか、そしてその理由は何ですか?

ブロックは本当に素晴らしいですが、以前のバージョンをサポートしたい場合は、さらにコードを書かなければなりませんか? そのような状況でそれらを使用して何を得ることができますか?

4

4 に答える 4

9

一般に、ルールは、必要な製品を提供できるようにする機能を提供するOSの最下位バージョンをサポートすることです。カスタムコピーアンドペーストとアプリケーション内の電子メールをサポートする必要があったため、すべてのアプリケーションにiPhoneOS3.0がリリースされてから約1か月後に必要になるようにしました。私のアプリケーションの1つの無料バージョンでは、iAdを試してみたかったので、4.0のみを作成しました。

新しいOSによって提供される内部コードの改善の可能性は、ルールを作成するのが少し難しいです。ジョーが指摘するように、新しいOSバージョンに移行することで節約できる、古いやり方との闘いに費やす時間は、バグを修正したり、次の優れた新機能を追加したりしていない時間です。ある時点で、新しい機能(ブロックやGCDなど)の優雅さは、アプリケーションに新しい機能を直接追加しない場合でも、無視するにはあまりにも魅力的です。

Macでは、多くの開発者が現在のバージョンのOSに加えて、Appleがリリースした以前のバージョン(現時点ではSnow LeopardとLeopard)のサポートを維持しています。新しいOSがリリースされた場合にのみ、以前の1つ遅れのバージョンのサポートが終了します。Wil Shipleyのような他の人は、新しいOSにすぐに飛び乗って、古いバージョンを無視することを提唱しています。ここでの議論は、Appleの新しいOSバージョンにお金を払わない人や、システムを最新の状態に保てない人は、サードパーティのアプリケーションを購入する可能性がはるかに低いということです。

私はこれをiOSでも見ました。たとえば、3.0の発売前後(iPod touchユーザーがOSアップデートの料金を支払わなければならなかったとき)に、さまざまなバージョンをターゲットにした広告のテストを実行しました。私のアプリケーションの無料バージョンのダウンロードは、2.xユーザーと3.xユーザーの間で比較的一貫していましたが、3.xユーザーが支払ったのに対し、2.xユーザーはほとんどアプリケーションに支払いませんでした。

3.0への早期移行について、有料ユーザーの間で不満を言う人は誰もいませんでした(ただし、新機能についてはよく話されていました)。問題なくアップグレードされた56,000に対して、無料バージョンが4.0のみになることについて不満を言ったのは2人だけです。移行期間には少し時間がかかりますが、新しいOSバージョンはリリース後比較的早く移行すると思います。現在、コードベースを最新化できるようにするために、4.0のすべてを作成中です。

最後に、新しいOSバージョンを使用することで得られる最後の利点は、新しいデバイスとOSバージョンの新機能を使用してアプリケーションを宣伝したいAppleにとってはるかに魅力的になることです。

于 2011-01-08T15:34:47.307 に答える
2

このアプリを開発する目的は何ですか?

それが収益 (またはダウンロード数の多さによる名声) である場合は、追加の市場セグメントの規模と購買力と、開発 (およびテストと QA とサポート) のコストを比較してください。

古いデバイスの所有者と古い OS のユーザーは、(1) 少数派です (現在の数の分析を確認してください。10% 以下のオーダーであり、減少しています)、(2) 彼らは、最新のユーザーよりも平均してはるかに少ないアプリを購入します。デバイスと OS のバージョン。ブロックバスター以外のアプリの場合、潜在的なダウンロードのこのわずかな追加の割合は、これらの顧客をサポートするために必要な追加のデバイス テストと QA 時間に見合うだけの価値がない可能性があり、ましてや開発努力に値するものではありません。

チャリティーや学習のためにアプリを開発している場合は、古いデバイス用の新しいアプリが好きな 1 人 (またはその他の少数) の人に、あなたの何時間もの努力を寄付してください。大多数のユーザーがデバイスの OS をそれに合わせてアップグレードする数週間前に、最新の OS リリースの超新機能をすぐに使用したい場合に備えておくとよいスキルセットです。

于 2011-01-08T16:09:38.797 に答える
1

ソフトウェアを売ってお金を稼ごうとしているのであれば、できるだけ多くのバージョンの OS をサポートする必要があります。そのための最も簡単な方法は、すべてのバージョンで実行される 1 つのコードを記述することです。したがって、古いスタイルのアニメーション ブロックを使用します。

于 2011-01-08T12:56:18.237 に答える
0

別のメソッドを作成するのではなく、完了にブロックを使用できる新しいアニメーションの方法を使用すると、完了時に何かを行う必要がある複数のアニメーションがある場合にはるかにクリーンになります。また、幅が広くないので読みやすいです。技術的な利点があるに違いありませんが、その側面についてはわかりません。

于 2011-01-08T12:42:29.480 に答える