SlideShare a Scribd company logo
2013.10.07
アプリのバックグラウンド処理
iOS 7 エンジニア勉強会@ヤフー
平松 亮介 @himara2
自己紹介
・女子向けアプリ Petapic のiOS開発担当
・ヤフー株式会社CMOアプリ開発室
・アプリのバックグランド処理 について話します
フォトコミュニケーション部Kawaiiフォト加工チーム
バックグラウンド処理
・バックグラウンド状態でもアプリが活躍できる
・ex) 音楽を聞きながらFacebookアプリを使う
僕の来た道はバックグラウンドで
位置を記録し続ける
マルチタスク関連のAPI
^{
Background Task Completion
Background Audio
Location Services
VoIP
NewsstandTime
Background Fetch
Silent Push Notification
Background Transfer
NEW!!
便利な3つの新機能
Background
Fetch
Silent Push
Notification
Background
Transfer
概要
Background Fetch
・アプリ使用の流れ(従来)
概要
Background Fetch
・この遅延がユーザ体験を妨げている
・起動したら即コンテンツ表示したい
・アプリ使用の流れ(従来)
概要
Background Fetch
・アプリ使用の流れ(with Background Fetch)
OSが適切なタイミングで
コンテンツ更新を呼ぶ
OSの学習
Background Fetch
9:00
12:00
16:00
22:00
Day 1 Day 2 Day n Prediction
OSがユーザの
行動パターンを解析
適切なタイミング
実装ポイント
Background Fetch
application:performFetchWithCompletionHandler:
AppDelegate
・Background Modes で “Background fetch” にチェック
・OSが適当なタイミングでアプリを起こし、処理を実行
・[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:
UIApplicationBackgroundFetchIntervalMinimum];
・呼び出しの最短間隔を設定
Demo
Background Fetch
こんなアプリで使える
Background Fetch
・日常的に, 頻繁に使われるアプリ
- アプリを起動したら最新情報が表示される!
便利な3つの新機能
Background
Fetch
Silent Push
Notification
Background
Transfer
概要
Silent Push Notification
・Remote Push Notification の拡張版
Push通知(iOS 6) Silent Push Notification
APNs ①push
サーバー
⑤表示
③起動
④コンテンツ更新
②通知表示
apns {
alert : { ... }
}
Push通知(iOS 7) Silent Push Notification
APNs ①push
サーバー
⑤アプリ表示
②バックグラウンド
でコンテンツ更新
で起動
③バックグラウンド
④通知表示
apns {
content-available:1,
alert : { ... }
}
Silent Push Notification
実装ポイント
application:didReceiveRemoteNotification:fetchCompletionHandler
AppDelegate
・Background Modes で “Remote notifications” にチェック
・silent pushを受け取ったタイミングで処理を実行
Silent Push Notification
Demo
こんなアプリで使える
Silent Push Notification
・不定期にコンテンツを受け取るサービス
- メッセージングサービスやメールなど
- Pushが届いて開くと最新のメッセージが表示されている!
便利な3つの新機能
Background
Fetch
Silent Push
Notification
Background
Transfer
概要
Background Transfer
・バックグラウンドで大容量ファイルのDL/ULが可能に
- Task Completionのような時間制限はない
・プロセスはOSが管理してくれる
Background Transfer
Demo
こんなアプリで使える
Background Transfer
・容量の大きなファイルを扱うアプリ
注意
Background Transfer
・バックグラウンドでのDL/ULはWi-Fi下でのみ発動
・Background Fetch, Silent Pushと組み合わせると強力
コンテンツに変更があった
→ Silent Pushで端末を起こす
→大容量のファイルをBackground Transferで同期
→完了したらLocal Notificationで通知
その他
ユーザ設定
・設定からBackground実行を制限できる
- Location Services
- Background Fetch
- Silent Push Notification
- Background Transfer
設定 > 一般 >
Appのバックグラウンド更新
・設定状態を取得するAPIが
 Coming soon.
App Switcher
・「UIが良いとユーザは復帰する」
ホームボタンを2回クリック
・App Switcherで消すと,
 アプリはバックグラウンド動作☓
End
What’s New With Multitasking
Ryosuke Hiramatsu
iOS 7 study

More Related Content

PDF
30分で分かる!OSの作り方 ver.2
PDF
HTML5 + JavaScriptでDRMつきMPEG-DASHを再生させる
PPTX
Docker超入門
PPTX
Cesiumを動かしてみよう
PPTX
MikanOSと自作CPUをUSBで接続する
PDF
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
PDF
Unified JVM Logging
PPTX
Cesiumマニアックス― Revenge ―
30分で分かる!OSの作り方 ver.2
HTML5 + JavaScriptでDRMつきMPEG-DASHを再生させる
Docker超入門
Cesiumを動かしてみよう
MikanOSと自作CPUをUSBで接続する
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
Unified JVM Logging
Cesiumマニアックス― Revenge ―

What's hot (20)

PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
PDF
使ってみて気づいた AGPL ライセンスの メリット・デメリット
PDF
ARM Trusted FirmwareのBL31を単体で使う!
PDF
TLS, HTTP/2演習
PDF
Juceで作るオーディオアプリケーション
PDF
ROS2のコードチェック
PDF
HoloLens で OpenCV をどう使うか レーザーポインター 認識で試してみた
PDF
Git & ブランチモデルで学ぶ バージョン管理入門
PDF
Confluenceショートカットキー表 v1
PDF
Linux女子部 systemd徹底入門
PDF
分散トレーシング技術について(Open tracingやjaeger)
PDF
ソーシャルゲームのためのデータベース設計
PDF
【メモ】一般的に設計書に定義される項目例
PDF
ターン制コマンドバトルにおける強化学習効率化
PDF
Rustに触れて私のPythonはどう変わったか
PDF
Openvino ncs2
PDF
ヤフー発のメッセージキュー「Pulsar」のご紹介
PDF
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
PDF
Serf / Consul 入門 ~仕事を楽しくしよう~
PDF
AWSのログ管理ベストプラクティス
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
使ってみて気づいた AGPL ライセンスの メリット・デメリット
ARM Trusted FirmwareのBL31を単体で使う!
TLS, HTTP/2演習
Juceで作るオーディオアプリケーション
ROS2のコードチェック
HoloLens で OpenCV をどう使うか レーザーポインター 認識で試してみた
Git & ブランチモデルで学ぶ バージョン管理入門
Confluenceショートカットキー表 v1
Linux女子部 systemd徹底入門
分散トレーシング技術について(Open tracingやjaeger)
ソーシャルゲームのためのデータベース設計
【メモ】一般的に設計書に定義される項目例
ターン制コマンドバトルにおける強化学習効率化
Rustに触れて私のPythonはどう変わったか
Openvino ncs2
ヤフー発のメッセージキュー「Pulsar」のご紹介
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
Serf / Consul 入門 ~仕事を楽しくしよう~
AWSのログ管理ベストプラクティス
Ad

Viewers also liked (20)

PDF
Xcode5でのデバッグ / CI | iOS 7エンジニア勉強会
PDF
Intro - iOS 7 でアプリ開発はどう変わる? | iOS 7エンジニア勉強会
PDF
既存アプリのiOS 7対応 | iOS 7エンジニア勉強会
PDF
魅せるUIの作り方 | iOS 7エンジニア勉強会
PPTX
AppleWatch発売!Apple Watch WatchKit勉強会-Notification
PDF
ツイッター災害情報収集・共有 (ITx災害 勉強会 平成27年2月25日)
PDF
iOS VoIP待ち受けの仕組み
PDF
iPhone でバックグラウンド位置情報アプリケーションを作ってみた。
PDF
Social.framework&Account.framework #twtr_hack
PDF
Swiftとメソッドのアレコレ
PDF
AVSpeechSynthesizerとロケール
PDF
Downalodable Storyboard
PPTX
第25回プロコン一関大会課題部門-富山(射水)-「DTN通信を用いた災害時の 安否及び避難所情報収集システム」
PPTX
iBeaconを使ったアプリ開発
PDF
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
PDF
Bluetooth LEとiBeaconを使った、すれ違い通信
PDF
Metasepi team meeting #14: ATS programming on MCU
PDF
ATS language overview
PDF
Arduino programming of ML-style in ATS
PDF
Embedded application designed by ATS language
Xcode5でのデバッグ / CI | iOS 7エンジニア勉強会
Intro - iOS 7 でアプリ開発はどう変わる? | iOS 7エンジニア勉強会
既存アプリのiOS 7対応 | iOS 7エンジニア勉強会
魅せるUIの作り方 | iOS 7エンジニア勉強会
AppleWatch発売!Apple Watch WatchKit勉強会-Notification
ツイッター災害情報収集・共有 (ITx災害 勉強会 平成27年2月25日)
iOS VoIP待ち受けの仕組み
iPhone でバックグラウンド位置情報アプリケーションを作ってみた。
Social.framework&Account.framework #twtr_hack
Swiftとメソッドのアレコレ
AVSpeechSynthesizerとロケール
Downalodable Storyboard
第25回プロコン一関大会課題部門-富山(射水)-「DTN通信を用いた災害時の 安否及び避難所情報収集システム」
iBeaconを使ったアプリ開発
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Bluetooth LEとiBeaconを使った、すれ違い通信
Metasepi team meeting #14: ATS programming on MCU
ATS language overview
Arduino programming of ML-style in ATS
Embedded application designed by ATS language
Ad

Similar to アプリのバックグラウンド処理 | iOS 7エンジニア勉強会 (20)

PDF
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
PPT
2011_9_9_AIR_LightningTalk
PDF
AppSwitcherでアプリをユーザーファーストに
PPT
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
PPTX
Mozapps installがなくなったことへの不平不満
PPTX
Firebase update from io'17
PDF
I phone5 ios6
PDF
アプリ開発新時代!オープンデータを活用したお得な企画&プログラミングテクニック
PDF
Crashlyticsでクラッシュ撲滅作戦
PDF
everevo × Open Graph
PDF
iphone5 発表イベント 速報まとめ
PDF
iphone5 発表イベント 最速まとめLT
PDF
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
PDF
iOS 9 Overview - iOS 9 Bootcamp in Tokyo - 20150930
PDF
DevLOVE関西(No.62) 知っておいて損はないエンタープライズiOS導入のいろは
KEY
iPhoneアプリ開発を楽に楽しくするサイトまとめ
PDF
HTML5で作るiPhoneアプリケーション
PPTX
I phone5・ios6変更点
PDF
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
PDF
エンタープライズにおける iOSアプリ開発・導入のいろは
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
2011_9_9_AIR_LightningTalk
AppSwitcherでアプリをユーザーファーストに
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
Mozapps installがなくなったことへの不平不満
Firebase update from io'17
I phone5 ios6
アプリ開発新時代!オープンデータを活用したお得な企画&プログラミングテクニック
Crashlyticsでクラッシュ撲滅作戦
everevo × Open Graph
iphone5 発表イベント 速報まとめ
iphone5 発表イベント 最速まとめLT
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
iOS 9 Overview - iOS 9 Bootcamp in Tokyo - 20150930
DevLOVE関西(No.62) 知っておいて損はないエンタープライズiOS導入のいろは
iPhoneアプリ開発を楽に楽しくするサイトまとめ
HTML5で作るiPhoneアプリケーション
I phone5・ios6変更点
エンタープライズにおけるiOSアプリ開発で押さえておくべき7つのこと
エンタープライズにおける iOSアプリ開発・導入のいろは

More from Yahoo!デベロッパーネットワーク (20)

PDF
ゼロから始める転移学習
PDF
継続的なモデルモニタリングを実現するKubernetes Operator
PDF
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
PDF
オンプレML基盤on Kubernetes パネルディスカッション
PDF
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
PDF
Persistent-memory-native Database High-availability Feature
PDF
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
PDF
eコマースと実店舗の相互利益を目指したデザイン #yjtc
PDF
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
PDF
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
PDF
ビッグデータから人々のムードを捉える #yjtc
PDF
サイエンス領域におけるMLOpsの取り組み #yjtc
PDF
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
PDF
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
PDF
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
PDF
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PDF
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
PDF
「新しいおうち探し」のためのAIアシスト検索 #yjtc
PDF
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ゼロから始める転移学習
継続的なモデルモニタリングを実現するKubernetes Operator
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Persistent-memory-native Database High-availability Feature
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
eコマースと実店舗の相互利益を目指したデザイン #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
ビッグデータから人々のムードを捉える #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc

アプリのバックグラウンド処理 | iOS 7エンジニア勉強会