Three20のTTURLRequest

28

description

2009-04-11 Cocoa勉強会 #33

Transcript of Three20のTTURLRequest

Page 1: Three20のTTURLRequest

Three20のTTURLRequestキャッシュでオフライン利用

Cocoa勉強会�#33�/�2009.04.11�(土)�/�⽊村渡

Powered�by�Rabbit�0.5.9�and�COZMIXNG

Page 2: Three20のTTURLRequest

今⽇もライブラリの紹介

Page 3: Three20のTTURLRequest

iPhoneアプリ

Page 4: Three20のTTURLRequest

ネットワークを活用するもの多い

Page 5: Three20のTTURLRequest

オフラインでも使いたいよね!

Page 6: Three20のTTURLRequest

自分で作るときはどうする?

Page 7: Three20のTTURLRequest

今⽇は、URLアクセスをキャッシュする話

Page 8: Three20のTTURLRequest

で、

Page 9: Three20のTTURLRequest

The�Three20�Project

Page 10: Three20のTTURLRequest

The�Three20�Project

作者:�Joe�Hewit

iPhone�OS用

Apache�License�2.0

http://joehewitt.com/post/the-three20-project/

Page 11: Three20のTTURLRequest

The�Three20�Project

いろいろな機能

サンプルのTTCatalog

Page 12: Three20のTTURLRequest

The�Three20�Porject

TTURLRequest

キャッシュ機能のあるURLアクセス

キャッシュをファイルとして保存し、オフラインでも利用可能

Page 13: Three20のTTURLRequest

サンプル

Cache.xcodeproj

http.rb

Page 14: Three20のTTURLRequest

デモ

Page 15: Three20のTTURLRequest

デモ

2回め以降のアクセスはキャッシュ利用

httpサーバが落ちててもデータが表⽰できる

Page 16: Three20のTTURLRequest

Three20のプロジェクトへの組み込み

README.mdown参照

個別でなく、まるごと組み込むのが簡単

(くわしくはあとで書く)

Page 17: Three20のTTURLRequest

TTURLRequestを利用したアクセス

URLへの要求

TTURLRequest

応答の処理

TTURLDataResponse

TTURLImageResponse

Page 18: Three20のTTURLRequest

TTURLRequestを利用したアクセス

{request�=��[TTURLRequest�requestWithURL:�delegate:];request.response�=���[[[TTURL<Data|Image>esponse�alloc]����init]�autorelease];[request�send];}{//デリゲートで結果を受け取り}

Page 19: Three20のTTURLRequest

TTURLRequestを利用したアクセス

NSURLConnectionの代替として

キャッシュがあればそれを、なければ取りに⾏く

事前に応答処理させるオブジェクトを割り当て

Page 20: Three20のTTURLRequest

TTURLRequestを利用したアクセス

事前に応答処理させるオブジェクトを割り当て

つまり、返ってくる応答を事前に知っているという前提(画像?�テキスト?�XML?)

Page 21: Three20のTTURLRequest

アクセス⽅法の制御

cachePolicyプロパティ

src/Three20/TTGlobal.h��63�typedef�enum�{��64����TTURLRequestCachePolicyNone�=�0,��65����TTURLRequestCachePolicyMemory�=�1,��66����TTURLRequestCachePolicyDisk�=�2,��67����TTURLRequestCachePolicyNetwork�=�4,���:��70����TTURLRequestCachePolicyNoCache�=�8,

Page 22: Three20のTTURLRequest

キャッシュぜんたいの制御

TTURLCacheクラスを使う

キャッシュを削除する

キャッシュの設定(サイズ、寿命)

Page 23: Three20のTTURLRequest

そのほかの機能

リクエストの中断/再開

などなど、(キャッシュに関係ないので省略)

Page 24: Three20のTTURLRequest

コード読みたいひと向け

今回はこのへんの話

TTURLRequest.[hm]

TTURLResponse.[hm]

TTURLRequestQueue.[hm]

TTURLCache.[hm]

Page 25: Three20のTTURLRequest

感想

なかなかよさげ

NSURLConnectionとはインターフェイスがちがう

応答を想定して使う前提で、既知のサービスの利用という用途向け

Page 26: Three20のTTURLRequest

感想

URLはNSURLじゃなくて⽂字列を渡すのはワナ

responseに応答ヘッダを保存してほしい

Page 27: Three20のTTURLRequest

Page 28: Three20のTTURLRequest

質問などあればどうぞ