33
iOS勉強会 WWDC2013 What’s New with Multitasking 松前健太郎

2013 07-03 iOS勉強会_ios7マルチタスキング_ext

Embed Size (px)

Citation preview

iOS勉強会 WWDC2013

What’s New with Multitasking

松前健太郎

マルチタスク関連の大きな変更点•変わったもの •バックグランドタスクまわり • App Switcher • Location Services • Newsstand • 変わらない •バックグランドオーディオ • VoIP

バックグラウンドタスクin iOS6

バックグラウンドタスクin iOS7

•アプリは裏で細かく眠る •起きて少し仕事してまた眠るを繰り返す •継続して仕事はできない •通信したい場合は後述のNSURLSessionを使う

App Switcher

•コレ •フォアグラウンドに戻ってくるときはState Restorationすること

•スワイプでアプリをkillできる • =バックグランドタスクもkill • スナップショット画像はバックグラウンドで更新できる

Location Service & Newsstand

•大きな変更ではない •設定画面でバックグラウンド実行させたくないアプリを指定できるようになった

• Location Service, Newsstandも同様にこの影響を受ける

• AppSwitcherでkillしても同様

New Multitasking APIs

• Background Fetch • Remote Notification • Background Transfer Service

New Multitasking APIs

• Background Fetch • Remote Notification • Background Transfer Service

Background Fetch

•バックグラウンドのアプリをちょいちょい起こして、動作するチャンスを与えてくれる

•どれくらいの頻度で起こしてくれるかはiOSが測定分析して決める

Background Fetch

デモ

• iPadでは放置していてもfetchが動かなかった

Background Fetch

•起動はシステムがスケジュール •アプリケーションをまたいで測定 •実際の利用パターンに適応 •バッテリーと通信利用にセンシティブ

Background Fetch

Background Fetch

•推奨する利用例 • SNSのフィード取得 •ニュースやエンタメコンテンツ取得 • RSSリーダ的なもの •天気・金融 •写真・ビデオ共有

New Multitasking APIs

• Background Fetch • Remote Notification • Background Transfer Service

Remote Notification

•プッシュが届いたらデータを取得した後に、ユーザにお知らせできる

Silent Remote Notification

•ユーザへの通知なしで、通知きっかけでバックグラウンドでデータ取得

Remote Notification

デモ

Silent Remote Notification•激しく送り続けると詰まるから注意

Remote Notification

•いろんなアプリで使えるのでおすすめ •メッセージング •メール • Silent remote notification • エピソードコンテンツ(TV, podcast) • 「あとで読む」アプリ •アプリ内課金のシンク •ファイル共有

Remote Notification

•自動DLのTVアプリの例 •ユーザは新エピソードがDL可能になったら自動DLするように設定する

•新エピソードがDL可能になったらsilent push通知を送る

•アプリが起きたら新規エピソードがあることを確認して、Background Transfer serviceを使ってDL開始

• DL完了したら、次回起動時にUIでお知らせ • DL完了したら、Localプッシュ通知するのもおすすめ

Remote Notification

•つかいわけ

New Multitasking APIs

• Background Fetch • Remote Notification • Background Transfer Service

Background Transfer Service

• iOS6のバックグラウンド通信 •アプリがフォアグラウンドにいる時間か、少しのバックグラウンド実行可能時間内でしか通信できない

•自動ダウンロード機能を実装できるけど効率が悪い

Background Transfer Service• iOS7 • ダウンロード処理はiOSが管理 •アプリが終了しても継続通信 • DLにかかる時間は不定 •フォアグラウンド・バックグラウンド、、どの状態でも通信処理はエンキュー可能

•通信中に認証、エラー、通信完了したら、ハンドラが起動

Background Transfer Service

バックグラウンド処理の注意点など

•複数アプリが並列で処理している •出来る限り早くタスクを終わらせる •バックグラウンド処理は数秒から数分しか継続しない

• App Switcherは画面がそのまま表示されるので、見せたくないものは隠してスナップショットを設定する

バックグラウンド処理の注意点など

•ユーザはApp Switcherでいつでもアプリをkillできるのでバックグラウンド処理もいつ死んでも良いように

•キャリアデータ通信量に気を使おう(全データではなくサムネだけDLするとか)

•電力消費にも気を使おう(通信はなるべく並列で走らせる、位置情報やモーションキャプチャは電池食うので無駄に使わない

バックグラウンド処理の注意点など

•センシティブなデータは常に保護する

バックグラウンド処理の注意点など

•よく

バックグラウンド処理の注意点など

•わかってないです orz

おわり