Category: ios

  • Apple WWDC 2011まとめ

    日程:June 6-10(日本時間6/7~)
    基調講演は例年どおりなら6/7 AM 2:00ごろ?ジョブス氏くるのかな。

    今回のポイントは、
    ・Mac OSX Lionの正式リリース?
    ・iPhone 5?iPhone 4S?とiOS5?の発表があるか?
    ・iTunesのストリーミング配信サービス開始?

  • Apple プッシュ通知とローカル通知の要点だけ

    Apple プッシュ通知とローカル通知の要点だけ

    Notificationとは
    Apple Push Notification(Push通知)とは、iOS上で非アクティブなアプリの状態をユーザに通知するための仕組み。アラート通知を通じてアプリはユーザにアプリの起動を促したり、バッジ(アプリアイコンに付与される数字)の表示、サウンド再生などを行う事ができる。

    Notificationの種類
    iOSで利用できる通知の仕組みは2種類。
    (1)Push Notification(プッシュ通知、リモート通知):サーバからユーザのデバイスに通知を行える。プロバイダ(Provider)と呼ばれるサーバ側の仕組みをサービス提供者が構築し、AppleのApple Push Notification Service(APNs)と通信する必要がある。

    providerとAPNsとの通信については別掲する。

    (2)Local Notification(ローカル通知):当該アプリが動作しているデバイスに限って通知を行える。

    必要iOSバージョン
    (1)Push Notification:iOS 3.0以降
    (2)Local Notification:iOS 4.0以降

    通知できるデータ
    (1)メッセージ
    (2)バッジ
    (3)サウンド:アプリに予め同梱されている必要があり、指定はファイル名で行う。
    (4)その他カスタムデータ:プッシュ通知が届くことは保証されていないので、重要なデータをここに乗せるべきではない。

    ただし、メッセージ、バッジ、サウンドはユーザ設定によってオフにできるので必ず通知されるわけではない。また、リモート通知で送信できるデータは256byte以内に制限されていることに注意。

    その他
    いずれも、通知を受けるためにアプリが起動している必要はない。アプリが起動しているときにも通知を受けたことを知る事は可能。通知を受けるときのパターンは以下の4パターン。それぞれ、内部的にコールされるメソッドとデータ、受取り方が異なるので注意。
    ・アプリが非アクティブで、ローカル通知を受ける
    ・アプリが非アクティブで、リモート通知を受ける
    ・アプリがアクティブで、ローカル通知を受ける
    ・アプリがアクティブで、リモート通知を受ける

    参照
    http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction/Introduction.html%23//apple_ref/doc/uid/TP40008194-CH1-SW1

  • Xcode 4で古いライブラリのリンクエラーの解決方法を要点だけ

    Xcode 4にアップデートしたときに、古いarm6用にビルドされたライブラリのリンクでエラーになる場合の解決方法。
    “Undefined Symbols for architecture armv7” みたいな感じ。
    詳しくはみてないけどどうもXcode 4のビルド設定のデフォルトが変わった模様。

    これは、 ビルド設定のアーキテクチャにarmv6 と armv7のキーワードがあることが原因っぽい。
    ⇒Target > Valid Architectures をダブルクリックして、armv7のエントリを削除

    そうするとビルドに成功します。ただしiPhone 3GS以降はarmv7なので、当然armv7でビルドできるならそちらのほうが良いはず。

  • Info.plistから情報取得する方法の要点だけ

    Info.plistの特定の項目の値を参照する場合は:

  • EKEvent howto: 設定できる項目

    Event Kit Programming Guideからのメモ。

    プログラムからEKEventを作成するときに設定できる項目は以下。
    ・タイトル
    ・開始および終了日時
    ・カレンダー:新規作成は不可で、既存のもののみ。
     カレンダーはEKEventStore.calendarsでEKCalendarのNSArrayが取得できる。もしくはEKEventStoreインスタンスのdefaultCalendarForNewEnents。
    ・繰り返し設定。EKRecurrenceRule。
    ・アラーム:EKEventにaddAlarm:(EKAlarm *)alarmできる。

    以上を設定した上で、EventStoreのsaveEvent:span:errorインスタンスメソッドを呼んであげる。

  • Xcode 4 howto: フレームワークの追加

    Xcode 4で既存のフレームワークを追加する方法です。

    1.Project Navigatorを開く
    2.ターゲットのアイコンを選択
     そうするとSummary/Info/Build Settings/Buid Phases/Build Rulesというタブがエディタエリアに表示される。
    3.”Build Phases”を選択
    4.”Link Binary With Libraries”を選択
    5.”+”を選択
    6.ダイアログでフレームワークの一覧が表示される。ここから選択して”Add”
    7.Project Navigatorにフレームワークが追加されます。

    ちなみにAdd Files…でフレームワークのフォルダを直接指定しても追加されるみたい。