私のアプリは、iPhone4+ と iPad2+ では見栄えがしますが、古いデバイスでは少し息苦しくなる「すべてを輝かせる」トレンドに従っています。次の 2 つのルートから選択できます。
何があっても、アプリで同じ外観を保ちます。一部のユーザーはロード時間が長くなることを受け入れてください。私の経験では、これが最も一般的なアプローチのようですが、一部の優れたアプリ (Sword & Sworcery) は、たとえば iPhone 3G でのロード時間が耐えられないほど長くなります。
電話機のモデルを検出し、(私のテスト ベンチマークに基づいて) 古いデバイスで重要でない特定のアニメーションや効果をスキップすることを決定します。これは、誰かが古いアプリでそれを見て、「すごい」ではなく「このアプリは大丈夫だと思う」と考えるリスクがあります.
「コンテキストに依存する」以外に、これに関する「ベストプラクティス」または業界標準はありますか?
編集:私が使用しているのは(より客観的に有用で懐疑論者かもしれません)これは、エリカ・サドゥンの素晴らしいがより大きなクラスからスリム化されたものです:
+ (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;
}