1

私のアプリは、iPhone4+ と iPad2+ では見栄えがしますが、古いデバイスでは少し息苦しくなる「すべてを輝かせる」トレンドに従っています。次の 2 つのルートから選択できます。

  1. 何があっても、アプリで同じ外観を保ちます。一部のユーザーはロード時間が長くなることを受け入れてください。私の経験では、これが最も一般的なアプローチのようですが、一部の優れたアプリ (Sword & Sworcery) は、たとえば iPhone 3G でのロード時間が耐えられないほど長くなります。

  2. 電話機のモデルを検出し、(私のテスト ベンチマークに基づいて) 古いデバイスで重要でない特定のアニメーションや効果をスキップすることを決定します。これは、誰かが古いアプリでそれを見て、「すごい」ではなく「このアプリは大丈夫だと思う」と考えるリスクがあります.

「コンテキストに依存する」以外に、これに関する「ベストプラクティス」または業界標準はありますか?

編集:私が使用しているのは(より客観的に有用で懐疑論者かもしれません)これは、エリカ・サドゥンの素晴らしいがより大きなクラスからスリム化されたものです:

+ (NSString *) platform {
  char *m = (char *)"hw.machine";
  return [self getSysInfoByName:m];
}

+ (BOOL) deviceIsLegacy {
  NSString *platform = [self platform];
  // LEGACY DEVICES:
  // iPhone 1, iPhone 3G
  // iPod 1, iPod 2
  // iPad 1

  if ([platform isEqualToString:@"iPhone1,1"]) return YES;
  else if ([platform isEqualToString:@"iPhone1,2"]) return YES;
  else if ([platform isEqualToString:@"iPod1,1"]) return YES;
  else if ([platform isEqualToString:@"iPod2,1"]) return YES;
  else if ([platform isEqualToString:@"iPod2,2"]) return YES;
  else if ([platform isEqualToString:@"iPad1,1"]) return YES;

  return NO;
}
4

1 に答える 1

0

あなたの状況に関連する唯一の「ベストプラクティス」は、100%必要がない場合はユーザーを待たせないでくださいというものだと思います!

ブランディングについて心配している場合は、それは問題ではありません。古いデバイスをサポートしないという決定を下すこともできます (個人的には同意しません)。または、Apple 自体がまったく同じものを実装していないことを確認することもできます。古いデバイスの魔法とのインターフェース。古いデバイスではクールな Siri を表示せず (販売や CPU に関する理由で議論することができます)、背景画像などの特定のグラフィック要素を許可しません。

多くの人は背景画像や 3G でのマルチタスクを好みますが、脱獄してそれを許可すると、Apple がそれを無効にした理由がわかります。

ただし、「新しいデバイスで最適に表示される」という小さなバッジを追加することはできますが、それは顧客を悲しませたり嫉妬させたりする可能性があるため...

于 2012-05-06T16:24:40.547 に答える