Your SlideShare is downloading. ×
0
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

RestKitの紹介 - Webサービスのクライアント実装補助フレームワーク -

5,105

Published on

iPhoneアプリ開発でWebサービスのクライアント実装をサポートしてくれるフレームワーク「RestKit」の紹介。

iPhoneアプリ開発でWebサービスのクライアント実装をサポートしてくれるフレームワーク「RestKit」の紹介。

Published in: Technology
0 Comments
19 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,105
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
14
Comments
0
Likes
19
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 永島 次朗 / Jiro NagashimaiOS Developer @ nana music, inc. @hedjirog
  • 2. RestKit / Examples / RKTwitter
  • 3. サンプルプロジェクト• 動作手順 • リポジトリを複製 (masterブランチ) • Examplesディレクトリ下のプロジェクトを開く • Build & Run$ git clone -b master --recursive git://github.com/RestKit/RestKit.git$ open RestKit/Examples/RKTwitter/RKTwitter.xcodeproj ※ 同時に複数のサンプルプロジェクトを開くと、 (サブプロジェクトとして含まれるRestKitの参照に失敗して) ビルドエラーになる場合があるので注意
  • 4. サンプルプロジェクト(補足) Submoduleを含むリポジトリ複製 recursiveオプションを付与 (clone後のsubmodule更新)$ git clone -b master --recursive git://github.com/RestKit/RestKit.git$ open RestKit/Examples/RKTwitter/RKTwitter.xcodeproj
  • 5. Agenda• RestKitとは • 導入手順 • 注意点• 基本的な使い方 • Networking, Object Mapping, Core Data
  • 6. RestKitとは
  • 7. RestKitとは NetworkingObject Mapping RestKit Core Data
  • 8. RestKitとは Webサービスのクライアント実装を 強力にサポート!! NetworkingObject Mapping RestKit Core Data
  • 9. RestKitとは • RestKit • http://restkit.org/ • Github project page • https://github.com/RestKit/ RestKitRestKit
  • 10. 導入手順• CocoaPodsを利用(推奨) • https://github.com/RestKit/RestKit#via- cocoapods • http://cocoapods.org/?q=RestKit
  • 11. 注意点• iOS 5.0 以上が必須• ARC• 最新バージョンに pre の表記 (2013.01.26現在) • https://github.com/RestKit/RestKit/tags• Apache License 2.0
  • 12. Agenda RestKitとは 導入手順 注意点• 基本的な使い方 • Networking, Object Mapping, Core Data
  • 13. 基本的な使い方※ サンプルプロジェクト(RKTwitter, RKTwitterCoreData)から抜粋
  • 14. Networking (1/6) • RKObjectManager • 通信処理の共通設定NSURL *baseURL = [NSURL URLWithString:@"http://twitter.com"];RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:baseURL];
  • 15. Networking (2/6) • RKObjectManager • 共通設定からリクエストを作成RKObjectManager *objectManager = [RKObjectManager sharedManager];[objectManager getObjectsAtPath:@"/status/user_timeline/RestKit" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { NSArray* statuses = [mappingResult array]; NSLog(@"Loaded statuses: %@", statuses); } failure:^(RKObjectRequestOperation *operation, NSError *error) { NSLog(@"Hit error: %@", error); }];
  • 16. Object Mapping (3/6) • RKObjectMapping • マッピング対象のクラスを指定 • レスポンスで受け取るJSONデータのキーと、 クラスのプロパティをマッピングRKObjectMapping *statusMapping;statusMapping = [RKObjectMapping mappingForClass:[RKTweet class]];[statusMapping addAttributeMappingsFromDictionary:@{ @"id" : @"statusID", @"created_at" : @"createdAt", @"text" : @"text", @"url" : @"urlString", @"in_reply_to_screen_name" : @"inReplyToScreenName", @"favorited" : @"isFavorited", }]; ※ CoreData利用時のマッピングは後述(RKEntityMapping)
  • 17. Object Mapping (4/6) • RKObjectMapping • マッピングを適用するレスポンスの状態を RKResponseDescriptorで設定 • RKObjectManagerへ設定内容を引き渡しRKResponseDescriptor *responseDescriptor;responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:statusMapping pathPattern:@"/status/user_timeline/:username" keyPath:nil statusCodes:[NSIndexSet indexSetWithIndex:200]];RKObjectManager *objectManager = [RKObjectManager sharedManager];[objectManager addResponseDescriptor:responseDescriptor];
  • 18. Core Data (5/6) • RKManagedObjectStore • Core Dataスタックの管理NSManagedObjectModel *managedObjectModel;managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil];RKManagedObjectStore *managedObjectStore;managedObjectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:managedObjectModel];RKObjectManager *objectManager = [RKObjectManager sharedManager];objectManager.managedObjectStore = managedObjectStore;
  • 19. Core Data (6/6) • RKEntityMapping • マッピング対象のエンティティと、 RKManagedObjectSotreインスタンスを指定 • 値が一意となる属性を指定(オブジェクト更新時 に利用される)RKEntityMapping *tweetMapping;tweetMapping = [RKEntityMapping mappingForEntityForName:@"Tweet" inManagedObjectStore:managedObjectStore];tweetMapping.identificationAttributes = @[ @"statusID" ];[tweetMapping addAttributeMappingsFromDictionary:@{ @"id": @"statusID", @"created_at": @"createdAt", @"text": @"text", @"url": @"urlString", @"in_reply_to_screen_name": @"inReplyToScreenName", @"favorited": @"isFavorited", }];
  • 20. AgendaRestKitとは 導入手順 注意点基本的な使い方 Networking, Object Mapping, Core Data
  • 21. 関連• API Reference • https://github.com/RestKit/RestKit#api- quickstart • http://restkit.org/api/latest/• Wiki • https://github.com/RestKit/RestKit/wiki

×