Slide 1

Slide 1 text

Bolts-iOSΛ”ͪΐͬͱ”ۦ࢖ͨ͠ ඇಉظॲཧͷྫ ReactiveCocoa Tokyo @freeeגࣜձࣾ

Slide 2

Slide 2 text

RACͷ࿩͸͠ͳ͍͢͠Δؾ΋ͳ͍ɻ
 ͍͍Ͷʁ

Slide 3

Slide 3 text

ࣗݾ঺հ • @huin • blog.huin.me • Work at : 
 - VOYAGE GROUP
 - genesix, Inc. • iOSྺ3೥͘Β͍

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

What is Bolts ? • Parse(Facebook?)੡ͷඇಉظॲཧϥΠϒϥϦ • PromiseͬΆ͍Կ͔
 (ϝιου໊ͳͲ͕ҧ͏ఔ౓) • PromiseKitʹൺ΂Δͱਓؾ͕ͳ͍

Slide 6

Slide 6 text

// Objective-C - (BFTask *) fetchAsync:(PFObject *)object { BFTaskCompletionSource *task = [BFTaskCompletionSource taskCompletionSource]; [object fetchInBackgroundWithBlock:^(PFObject *object, NSError *error) { if (!error) { [task setResult:object]; } else { [task setError:error]; } }]; return task.task; }

Slide 7

Slide 7 text

// Objective-C - (void) doSomething { BFTask *task = [self fetchAsync:self.object]; [task continueWithBlock:^id(BFTask *task) {
 if (task.error) { // handle error }else{ // do post fetch task… } return task; }]; }

Slide 8

Slide 8 text

ॴײ • ඇಉظॲཧͷ୅දͱ͍͑͹ωοτϫʔΫॲཧ • BFTaskΦϒδΣΫτΛฦ͢͜ͱͰblocksΛҾ͖ճ͞ͳͯ͘ ΋ྑ͘ͳΔͷͰίʔυ͕៉ྷʹͳΔ • Ͱ΋ͦΕͰ͍͍ΜͩΖ͏͔ʁ

Slide 9

Slide 9 text

ϙέοτIRͰͷྫ http://goo.gl/zYSYpI

Slide 10

Slide 10 text

Լ͔ΒϑΣʔυΠϯ ্΁ϑΣʔυΞ΢τ σʔλͷಡΈࠐΈ

Slide 11

Slide 11 text

ෆՄආͳωοτϫʔΫॲཧͷؒɺ ΞχϝʔγϣϯΛۦ࢖͢Δ͜ͱͰ
 Ϣʔβʔͷ଴ػετϨεΛݮΒ͍ͨ͠. ྫ) ϩʔσΟϯάΠϯδέʔλͱ͔

Slide 12

Slide 12 text

1.ॲཧͷϦετ 1. ϩΰͷग़ݱΞχϝʔγϣϯ 2. Ϣʔβʔొ࿥(if required) 3. ͓ؾʹೖΓͷऔಘ 4. ϩΰͷඇදࣔΞχϝʔγϣϯ 5. ࣍ͷը໘΁ͷભҠ a. ࣮ߦॱং a. 2→3͸ඇಉظॲཧΛॱ൪ʹ࣮ߦ b. 1ͱλεΫa͸ฒྻʹॲཧ͢Δ
 (λεΫb) c. λεΫaͱbͷ஗͍ํΛ
 λεΫbͷ׬ྃͱ͢Δ d. λεΫb͕׬ྃͨ͠Β
 4Λ։࢝͢Δ e. 4͕׬ྃͨ͠Β5Λ࣮ߦ

Slide 13

Slide 13 text

// λεΫ(1) : ϩΰͷදࣔΞχϝʔγϣϯ BFTask *welcomeTask = [self showAnimationTask]; ! // λεΫ(2) : Ϣʔβʔొ࿥ BFTask *userTask = [[self saveUserTask] continueWithBlock:^id(BFTask *task) { if (task.error) { return task; } // λεΫ(3) ͓ؾʹೖΓͷऔಘ. λεΫ(2)ͷޙʹ࣮ߦ͞ΕΔ. return [self fetchFavoriteTask]; }]; ! // λεΫ(b) : λεΫ(1)ͱλεΫ(a)ͷ̎ͭΛฒྻʹॲཧ͢Δ BFTask *tasks = [BFTask taskForCompletionOfAllTasks:@[welcomeTask, userTask]]; ! [[tasks continueWithSuccessBlock:^id(BFTask *task) { ! // λεΫ(4) : ϩΰͷඇදࣔΞχϝʔγϣϯ. λεΫ(b)׬ྃޙʹ࣮ߦ͞ΕΔ. return [self hideAnimationTask]; }] continueWithBlock:^id(BFTask *task) { if (task.error) { [UIAlertView alertWithError:task.error]; }else{ // λεΫ(5) : ࣍ͷը໘΁ͷભҠ [self segueToNextView]; } return task; }];

Slide 14

Slide 14 text

• ωοτϫʔΫॲཧ͚ͩʹݶΒͣ࢖͍υίϩ͸͋Δ͔ ΋. • ΋ͬͱΞχϝʔγϣϯڽͬͯ΋ྑ͍͔΋
 (ྫ : ΞχϝʔγϣϯදࣔͷϓϩάϨεόʔΛͲ͏͢Ε͹ମײ଎౓͕Ξοϓ͢Δͷ͔͕൑໌ | GIGAZINE http://goo.gl/6EaJQe) • ͝ར༻͸ܭըతʹ
 (ඇಉظॲཧ͢΂ͯͰBolts࢖͏΂͖ʁ) • ※ Bolts-iOSͰ͋Δඞཁ͸ͳ͍ͷͰ޷͖ͳϥΠϒϥϦͰ ॻ͚͹͍͍Α!!

Slide 15

Slide 15 text

http://voyagegroup.com/crew/recruit/career/sdk/ iOSΤϯδχΞืूதʂ