SDK バージョンとランタイムバージョンの判別方法について

最近思うようにアプリ開発が進まず、少々焦っている @masa711115 です。

今回はこのブログで初めての技術ネタを書いてみようと思います。
※以前のブログではごくまれに書いていましたが…

iOS アプリに限らず、アプリケーションの開発を行う際に SDK やランタイムのバージョンによって処理をわけたいことがあると思います。特に新しいバージョンの OS の新機能を使う場合や廃止予定の機能がある場合に現在のバージョンと新しいバージョンで互換性を保持しなければならない場合などです。
例えば、iOS 5.0 以上とそれ以外で実装を切り替えたい場合は以下のようになります。

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 50000
// iOS 5.0 以上で実装する処理
#else
// iOS 5.0 未満で実装する処理
#endif

ところが、これではコンパイル時に内容が決定してしまうため不便な場合が出てきます。
その場合は以下の様にすることで実行されるデバイスの OS バージョンに応じて処理内容を変更することが可能となります。

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0) {
// iOS 5.0 以上で実装する処理
} else {
// iOS 5.0 未満で実装する処理
}

これ以外にもクラスをチェックする方法やフレームワークのバージョンで判定する方法もあります。
ネット上にたくさん情報がありますので、探してみてください!

私が毎日 “必ず” 使うアプリ iPhone 編

私が毎日 “必ず ” 使うアプリ… 発端はくらちゃん(@kuracyan) のこのエントリー( via Singer Song iPhone )でした。 沢山のブロガーの方がエントリーを起こされていますが、私も乗っかってみようと思いますw
※拙作のアプリ、標準のアプリは除きます。

1 Tweetbot — 個性あふれるTwitterクライアント 1.8.2(¥250)App
カテゴリ: ソーシャルネットワーキング, ライフスタイル
販売元: Tapbots – Tapbots(サイズ: 10.2 MB)
全てのバージョンの評価: (530件の評価)

Twitter クライアントはこれをメインに使ってます。

2 Reeder 2.5.4(¥250)App
カテゴリ: ニュース
販売元: Silvio Rizzi – Silvio Rizzi(サイズ: 4 MB)
全てのバージョンの評価: (660件の評価)

Google Reader クライアントですね。 iPad版も Mac版も使ってます。

3 Facebook 4.1(無料)App
カテゴリ: ソーシャルネットワーキング
販売元: Facebook, Inc. – Facebook, Inc.(サイズ: 10.6 MB)
全てのバージョンの評価: (13,402件の評価)
+ iPhone/iPadの両方に対応

Facebook クライアントはこれをメインに使ってます。

4 Flipboard 1.7.2(無料)App
カテゴリ: ニュース, ソーシャルネットワーキング
販売元: Flipboard Inc. – Flipboard, Inc.(サイズ: 9.1 MB)
全てのバージョンの評価: (4,910件の評価)
+ iPhone/iPadの両方に対応

ソーシャルメディアリーダーとでも言うのでしょうか? ページをめくって雑誌を読む感じで各種ソーシャルメディアの情報を閲覧できます。

5 miil 1.0.5(無料)App
カテゴリ: 写真/ビデオ, ソーシャルネットワーキング
販売元: FrogApps, Inc. – FrogApps, Inc.(サイズ: 8.5 MB)
全てのバージョンの評価: (48件の評価)

見てるだけでお腹が減ってくるw おいしそうな食べ物をみてるとそれだけで幸せな気持ちになります。食べるともっと幸せになります!

6 Todo 5.0.1(¥450)App
カテゴリ: 仕事効率化, ビジネス
販売元: Appigo – Appigo, Inc.(サイズ: 7.3 MB)
全てのバージョンの評価: (1,093件の評価)

Todo 管理アプリですね。クラウドのサービスも用意されていて OTA で同期できます。 今は iCloud でも出来るようです。これも iPad版も Mac版も使ってます。

こうして見てみると殆どソーシャル系のアプリばっかりですね… なんか作ってみようかな!!

自作のアプリも皆様に使っていただけるよう頑張らねば!!