SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Three20の
TTURLRequest
キャッシュでオフライン利用
Cocoa勉強会�#33�/�2009.04.11�(土)�/�⽊村渡
Powered�by�Rabbit�0.5.9�and�COZMIXNG
今⽇もラ
イブラリ
の紹介
iPhone
アプリ
ネットワー
クを活用す
るもの多い
オフライン
でも使いた
いよね!
自分で作る
ときはどう
する?
今⽇は、
URLアクセ
スをキャッ
シュする話
で、
The�
Three20�
Project
The�Three20�Project
作者:�Joe�Hewit
iPhone�OS用
Apache�License�2.0
http://joehewitt.com/
post/the-three20-project/
The�Three20�Project
いろいろな機能
サンプルのTTCatalog
The�Three20�Porject
TTURLRequest
キャッシュ機能のある
URLアクセス
キャッシュをファイル
として保存し、オフラ
インでも利用可能
サンプル
Cache.xcodeproj
http.rb
デモ
デモ
2回め以降のアクセスは
キャッシュ利用
httpサーバが落ちてて
もデータが表⽰できる
Three20のプロジェクトへの組み込み
README.mdown参照
個別でなく、まるごと組み込
むのが簡単
(くわしくはあとで書く)
TTURLRequestを利用したアクセス
URLへの要求
TTURLRequest
応答の処理
TTURLDataResponse
TTURLImageRespons
e
TTURLRequestを利用したアクセス
{
request�=
��[TTURLRequest�requestWithURL:�delegate:];
request.response�=�
��[[[TTURL<Data|Image>esponse�alloc]
����init]�autorelease];
[request�send];
}
{
//デリゲートで結果を受け取り
}
TTURLRequestを利用したアクセス
NSURLConnectionの
代替として
キャッシュがあればそ
れを、なければ取りに
⾏く
事前に応答処理させる
オブジェクトを割り当
TTURLRequestを利用したアクセス
事前に応答処理させる
オブジェクトを割り当
て
つまり、返ってくる応
答を事前に知っている
という前提(画像?�テ
キスト?�XML?)
アクセス⽅法の制御
cachePolicyプロパティ
src/Three20/TTGlobal.h
��63�typedef�enum�{
��64����TTURLRequestCachePolicyNone�=�0,
��65����TTURLRequestCachePolicyMemory�=�1,
��66����TTURLRequestCachePolicyDisk�=�2,
��67����TTURLRequestCachePolicyNetwork�=�4,
���:
��70����TTURLRequestCachePolicyNoCache�=�8,
キャッシュぜんたいの制御
TTURLCacheクラスを使う
キャッシュを削除する
キャッシュの設定(サ
イズ、寿命)
そのほかの機能
リクエストの中断/再開
などなど、(キャッシュに関
係ないので省略)
コード読みたいひと向け
今回はこのへんの話
TTURLRequest.[hm]
TTURLResponse.[hm]
TTURLRequestQueu
e.[hm]
TTURLCache.[hm]
感想
なかなかよさげ
NSURLConnectionと
はインターフェイスが
ちがう
応答を想定して使う前
提で、既知のサービス
の利用という用途向け
感想
URLはNSURLじゃなく
て⽂字列を渡すのはワ
ナ
responseに応答ヘッダ
を保存してほしい
終
質問など
あればど
うぞ

Weitere ähnliche Inhalte

Andere mochten auch

Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化Wataru Kimura
 
らくらくアップデートSparkle
らくらくアップデートSparkleらくらくアップデートSparkle
らくらくアップデートSparkleWataru Kimura
 
Hotkeyslib3 Cocoaでホットキー
Hotkeyslib3 CocoaでホットキーHotkeyslib3 Cocoaでホットキー
Hotkeyslib3 CocoaでホットキーWataru Kimura
 
InputMethodKit超入門
InputMethodKit超入門InputMethodKit超入門
InputMethodKit超入門Wataru Kimura
 
Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信Wataru Kimura
 
ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析Wataru Kimura
 
InputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろうInputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろうWataru Kimura
 
OS X DYLD_* environments
OS X DYLD_* environmentsOS X DYLD_* environments
OS X DYLD_* environmentsWataru Kimura
 

Andere mochten auch (10)

Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化Precipitateに見る、外部リソースのSpotlight化
Precipitateに見る、外部リソースのSpotlight化
 
らくらくアップデートSparkle
らくらくアップデートSparkleらくらくアップデートSparkle
らくらくアップデートSparkle
 
値変換
値変換値変換
値変換
 
Hotkeyslib3 Cocoaでホットキー
Hotkeyslib3 CocoaでホットキーHotkeyslib3 Cocoaでホットキー
Hotkeyslib3 Cocoaでホットキー
 
InputMethodKit超入門
InputMethodKit超入門InputMethodKit超入門
InputMethodKit超入門
 
Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信Quickcursorに見る、アプリケーション間通信
Quickcursorに見る、アプリケーション間通信
 
ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析ClangでObjective-Cを静的解析
ClangでObjective-Cを静的解析
 
InputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろうInputMethodKitで入力プログラムをつくろう
InputMethodKitで入力プログラムをつくろう
 
OS X DYLD_* environments
OS X DYLD_* environmentsOS X DYLD_* environments
OS X DYLD_* environments
 
Clang Modules
Clang ModulesClang Modules
Clang Modules
 

Ähnlich wie Three20のTTURLRequest

MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編hiboma
 
Html5で作るiPhoneアプリケーション2010
Html5で作るiPhoneアプリケーション2010Html5で作るiPhoneアプリケーション2010
Html5で作るiPhoneアプリケーション2010だいすけ ふるかわ
 
DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようDartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようcch-robo
 
3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術Kei IWASAKI
 
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Kikunaga Taishi
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of ThingsSaki Homma
 
Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?Terui Masashi
 
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hackyut148atgmaildotcom
 
Introduction to NetOpsCoding
Introduction to NetOpsCodingIntroduction to NetOpsCoding
Introduction to NetOpsCodingTaiji Tsuchiya
 
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化Shinnosuke Tokuda
 
EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016Chihiro Adachi
 
ML system design_pattern
ML system design_patternML system design_pattern
ML system design_patternyusuke shibui
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of ThingsSaki Homma
 
Getting Started with Graph Database with Python
Getting Started with Graph Database with PythonGetting Started with Graph Database with Python
Getting Started with Graph Database with Pythonロフト くん
 
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介Kohei Nishikawa
 
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).Fumiya Sakai
 

Ähnlich wie Three20のTTURLRequest (20)

Three20
Three20Three20
Three20
 
真Drone入門
真Drone入門真Drone入門
真Drone入門
 
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
MogileFS をバックエンドとしたPrivate S3の作り方 【後半】API 編
 
Html5で作るiPhoneアプリケーション2010
Html5で作るiPhoneアプリケーション2010Html5で作るiPhoneアプリケーション2010
Html5で作るiPhoneアプリケーション2010
 
14対話bot発表資料
14対話bot発表資料14対話bot発表資料
14対話bot発表資料
 
DartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみようDartPad+CodePenで、Flutterを体験してみよう
DartPad+CodePenで、Flutterを体験してみよう
 
3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術
 
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of Things
 
Drupal on vagrant-aws
Drupal on vagrant-awsDrupal on vagrant-aws
Drupal on vagrant-aws
 
Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?Infrastructure as Codeってなんだったっけ?
Infrastructure as Codeってなんだったっけ?
 
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
 
Introduction to NetOpsCoding
Introduction to NetOpsCodingIntroduction to NetOpsCoding
Introduction to NetOpsCoding
 
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
Flutterで単体テストを行う方法とGitHub Actionsを使った自動化
 
EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016
 
ML system design_pattern
ML system design_patternML system design_pattern
ML system design_pattern
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of Things
 
Getting Started with Graph Database with Python
Getting Started with Graph Database with PythonGetting Started with Graph Database with Python
Getting Started with Graph Database with Python
 
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
Mautic Meetup Tokyo #3 データベース不要CMS:Gravの紹介
 
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
 

Three20のTTURLRequest