投稿

10月, 2013の投稿を表示しています

iPod library access クラウド音源への対応

iOS 6よりMPMediaItemのプロパティに
MPMediaItemPropertyIsCloudItem
というものが追加されました。
これはデバイス内にはなく、クラウド上にある曲の場合にYES(を包んだNSNumber)が返されます。
このクラウド上にある曲というのは、私のデバイスですとiTunes Storeで購入したがデバイスには入っていない曲が該当しました。説明によるとiTunes Matchがどうこうと書いてありますが、現在日本ではiTunes Matchが使えないので確認はしていません。

(この段落の話はiOS 7)iOSに付属のミュージックアプリでは設定項目にこれを表示するかしないかを選択するところがあり、選択した場合はデバイスに入ってなくてもクラウドにあれば一覧に表示され、再生操作をするとダウンロード(ストリーミング?)されて再生します。選択しなければ表示されません。ただし、クラウド曲を再生した時にデバイス内にデータが残るようで、これは設定を選択しない方に切り替えても表示されます。ところが、自作アプリ内からライブラリにアクセスし、データを取得するとこの設定に関わらず全てのクラウド上の曲が得られる(得られてしまう)ようです(もしかしたらどこかで変更が出来るかもしれない)。インターネット上から取得するとどうしてもレスポンス遅延がありますので、排除したいというときはMPMediaItemPropertyIsCloudItemがYESを返すアイテムを排除する処理が必要になります。

SilentBonusTrack申請

SilentBonusTrackというアプリを申請しました。
すがすがしい気持ちよりも、やっとここまで来たかという安堵と大きな不具合が無いようにという気持ちのほうがある。

旬らしいということであまちゃんをスクリーンショットで使わせてもらった。

SilentBonusTrackのコンセプトはタイトルから予想できる通り、「カセットでアルバムを聞く時は、各面の終わりの無音部分もそのアルバムに含まれる」というもの。
制作動機の中心がこのコンセプトです。無音部分をコンセプトにしたアプリを出したかった。ただ実際のカセットプレーヤの通りに作ったらそれ以上特別なことはなにもすることがない。せいぜいアプリのタイトルに反映するくらい。

iOSアプリ開発に関する細かいこと Objective-C編

個別に記事にまとめるほどでもないiOSアプリ開発に関する細かいこと

画像の端をにじませる
Renders with edge antialiasing
画像の端をにじませる
info.plistで設定する

Localizable.strings
NSLocalizedString(@"distanceLabel", nil);
Localizable.strings
"distanceLabel" = "距離";

なぜDeployment Targetの設定箇所は2つあるのか
Deployment Target(アプリ動作可の最低ライン)はPROJECTとTARGETにそれぞれあり、2つあることになる。TARGETのほうは初めは薄い色になってる。PROJECTで設定するとそれに伴いTARGETの値も変わる。別にするメリットも殆ど無いと思うので、設定はPROJECTだけにすればよいと思われる。一度TARGETを何かに設定してしまうと「連携モード」に戻す手段がわからないので、「連携モード」を解除したくないなら触らないほうがいい。

Build SettingsのCode Signing IdentityとProvisioning Profile
Code Signing Identity
証明書の選択。Provisioning fileではない。証明書を選べば対応するProvisioning fileも選ばれることになるので、Provisioning fileの選択と解説される場合もある。Automaticの欄にあるiOS DeveloperやiOS Distributionを選んでおけばその名前で始まるものが自動で選ばれる。
Provisioning Profile
Automaticになっていれば自動で選ばれる(上で指定されている証明書とBundle Identifierを基に選ばれるのかと思われる)。

statusBarOrientation
[[UIApplication sharedApplication] statusBarOrientation]
viewDidLoadで正確な値が取得出来るかどうかは要調査。

複数引数メソッドの遅延処理
double delayInSeconds = 1.0;
dispatc…