Slide 1

Slide 1 text

iPhoneΞϓϦͷ௨৴Τϥʔॲཧ id:ninjinkun / @ninjinkun

Slide 2

Slide 2 text

͸͡Ίʹ • ೥຤ʹiOS Advent CalendarʹࢀՃ͠·ͨ͠ • 25೔·Ͱຖ೔೔ସΘΓͰهࣄΛॻ͘ • http://atnd.org/events/22792 • http://ninjinkun.hatenablog.com/entry/2011/12/23/224918

Slide 3

Slide 3 text

͸͡Ίʹ • ௨৴Τϥʔॲཧͷઃܭ • έʔεελσΟ • ࣮૷

Slide 4

Slide 4 text

௨৴͸ࣦഊ͢Δ ௨৴Τϥʔॲཧͷઃܭ • ಺ଂIO→͍͍ͩͨ੒ޭ͢Δ΋ͷͱࢥͬͯઃܭͯ͠Δ • ༰ྔΦʔόʔɺϑΝΠϧ໊ॏෳetc… • ௨৴IO→ࣦഊ͢ΔՄೳੑΛߟྀͯ͠ઃܭ͢Δ • iPhone͸ϞόΠϧσόΠε • ௨৴͸ߴ͍֬཰Ͱࣦഊ͢Δ • ลڥɺτϯωϧɺetc… • ҟৗܥͰ͸ͳ͘ਖ਼ৗܥͷҰ෦ͱͯ͠ଊ͑Δ

Slide 5

Slide 5 text

ཧ૝తͳΤϥʔॲཧ ௨৴Τϥʔॲཧͷઃܭ • Ғ͍ਓᐌ͘… ΤϥʔϝοηʔδϘοΫε͸ɺϓϩάϥϜ͕όΧͳͷͰॲཧΛఀࢭ ͢Δͱ͍͍ͬͯΔΑ͏ͳ΋ͷͰ͋Γɺආ͚ͳ͚Ε͹ͳΒͳ͍ Τϥʔϝοηʔδʹ͸ɺڀۃͷΞΠϩχʔ͕͋ΔɻϢʔβʔ͕Τ ϥʔΛ൜͢ͷΛ๷͍Ͱ͸͘Εͳ͍ͷͩɻ

Slide 6

Slide 6 text

ཧ૝తͳΤϥʔॲཧ ௨৴Τϥʔॲཧͷઃܭ • Ғ͍ਓᐌ͘… ΤϥʔμΠΞϩά͸ɺඞͣྱّਖ਼͘͠ɺΘ͔Γ΍͘͢໰୊఺Λࣔ ͠ɺ໾ʹཱͭ΋ͷͰͳ͚Ε͹ͳΒͳ͍ɻ Ϣʔβʔʹඞཁͳ৘ใΛఏڙ্ͨ͠ͰɺඞͣҰͭ͸ղܾࡦΛఏࣔͤ Α

Slide 7

Slide 7 text

Τϥʔॲཧϓϥϯ ௨৴Τϥʔॲཧͷઃܭ দ Ϣʔβʔͷૢ࡞ΛΠϯλϥϓτͤͣʹϨδϡʔϜ͢Δ ஛ Ϣʔβʔͷૢ࡞ΛΠϯλϥϓτͯ͠ϨδϡʔϜ͢Δ ക ΤϥʔϝοηʔδΛදࣔ͢Δ͚ͩ

Slide 8

Slide 8 text

έʔεελσΟ • Mail • Instagram • Facebook • Path

Slide 9

Slide 9 text

Mail έʔεελσΟ • ࣦഊͯ͠΋ϝοηʔδϘοΫεʹೖΔ • ΞϓϦ͕ऴྃͯ͠΋όοΫάϥ΢ϯυͰ উखʹϨδϡʔϜ • OS૊ΈࠐΈ͔ͩΒͰ͖Δ͜ͱ • Ϣʔβʔ͕ΤϥʔΛҙࣝ͠ͳͯ͘΋ྑ͘ͳ͍ͬͯΔ • দϓϥϯ

Slide 10

Slide 10 text

Instagram έʔεελσΟ • ΞοϓϩʔυΩϡʔ͕࣮૷͞Ε͍ͯΔ • ࣦഊ͢ΔͱϨδϡʔϜͰ͖Δ • ෳ਺ͷࣸਅΛϨδϡʔϜՄೳ • Ϣʔβʔ͕ࣗྗͰϨδϡʔϜ͢Δ࡞ۀ͸ඞཁ • ஛ϓϥϯ

Slide 11

Slide 11 text

Facebook έʔεελσΟ • ௨৴͕ࣦഊͯ͠΋Կ΋ݴΘͳ͍ • ͻͲ͍

Slide 12

Slide 12 text

Path έʔεελσΟ • ࣦഊͯ͠΋੒ޭͨ͠Α͏ʹݟ͍ͤͯΔ • ޙ͔Β௨৴͕ܨ͕Ε͹࠶౓ૹ৴ʢࣗಈʣ • ୯ͳΔPOST / GETͰ͸ͳ͘σʔλΛಉظ͍ͯ͠Δ(?) • ϢʔβʔʹΤϥʔΛҙࣝͤ͞ͳ͍ • দϓϥϯ • ͦͷ൓໘ૹ৴͕׬͍ྃͯ͠ͳ͍͜ͱʹ͸ؾ͔ͮͳ͍…

Slide 13

Slide 13 text

࣮૷ • Τϥʔͷදࣔ • UIAlertView • ϨδϡʔϜॲཧ • UIViewControllerͷ෮ݩ • Ωϡʔ https://github.com/ninjinkun/AlertResume

Slide 14

Slide 14 text

Τϥʔͷදࣔ ࣮૷ • UIAlertView • NSErrorͱڠௐͤ͞Δͱศར • NSAlertViewʹ͸NSErrorΛҾ਺ʹऔΔίϯετϥΫλ ͕ଘࡏ͍ͯͨ͠ • …Ͱ͢ΑͶʁ

Slide 15

Slide 15 text

Τϥʔͷදࣔ ࣮૷ • NSErrorʹ͸දࣔ༻ͷύϥϝʔ λ͕ἧ͍ͬͯΔ • શͯuserInfoͷσʔλ΁ͷ γϣʔτΧοτ • localizedDiscription • localizedFailureReason • localizedRecoverySuggestion • localizedRecoveryOptions

Slide 16

Slide 16 text

Τϥʔͷදࣔ ࣮૷ NSArray *buttons = [NSArray arrayWithObjects:@"Ωϟϯηϧ", @"࠶ࢼߦ͢Δ", nil]; NSDictionary *userInfo = [NSDictionary dictionaryWithObjectsAndKeys: @"ωοτϫʔΫΤϥʔ͕ൃੜ͠·ͨ͠", NSLocalizedDescriptionKey, @”ωοτϫʔΫʹ઀ଓͰ͖·ͤΜ”, NSLocalizedFailureReasonErrorKey, @"઀ଓΛ֬ೝͯ͠…", NSLocalizedRecoverySuggestionErrorKey, buttons, NSLocalizedRecoveryOptionsErrorKey, nil]; NSError*error = [NSError errorWithDomain:@"com.hoge.fuga" code:100 userInfo:userInfo];

Slide 17

Slide 17 text

Τϥʔͷදࣔ ࣮૷ • UIAlertViewʹ৯Θͤͯදࣔ͢Δ @implementation UIAlertView (NSErrorAddition) -(id)initWithError:(NSError *)error { self = [super init]; if (self) { self.title = [error localizedDescription]; self.message = [[NSArray arrayWithObjects:[error localizedFailureReason], [error localizedRecoverySuggestion], nil] componentsJoinedByString:@"\n"]; NSArray* optionTitles = [error localizedRecoveryOptions]; for (NSString *title in optionTitles) { [self addButtonWithTitle:title]; } } return self; } @end

Slide 18

Slide 18 text

ϨδϡʔϜॲཧ ࣮૷ • ViewController͝ͱϨδϡʔϜ • POSTͷը໘Λ΋͏Ұ౓։͖·͢ • ϨδϡʔϜૢ࡞͕௚ײత • ༧ظ͠ͳ͍ͱ͜ΖͰViewController͕։͍ͯ͠·͏

Slide 19

Slide 19 text

ϨδϡʔϜॲཧ ࣮૷ • ΩϡʔͰϨδϡʔϜ • ϦΫΤετΛΩϡʔʹอଘ͓ͯ͘͠ • ੒ޭͨ͠ΒΩϡʔ͔Β͸࡟আ • ࣦഊͨ͠ΒΩϡʔͷϏϡʔ͔Β࠶ࢼߦૢ࡞Λߦ͏ • ΩϡʔΛϓϨϏϡʔ͢ΔϏϡʔΛ࡞Δඞཁ༗Γ

Slide 20

Slide 20 text

·ͱΊ • ௨৴Τϥʔॲཧͷํ๏ʹ͍ͭͯߟ࡯ͨ͠ • ௨৴Τϥʔ͸ਖ਼ৗܥͷҰ෦ͱͯ͠ߟ͑Α͏ • ༷ʑͳΞϓϦͷέʔεΛ؍࡯ͨ͠ • Path͸͕Μ͹͍ͬͯΔ • ௨৴ΤϥʔॲཧΛ࣮૷ͯ͠Έͨ • UIAlertView • ϨδϡʔϜॲཧ2छྨ • େม͚ͩͲ͕Μ͹Γ·͠ΐ͏

Slide 21

Slide 21 text

࠷ۙग़ͨ͜ͷຊ͕݁ߏྑ͍ͱࢥͬͯ·͢ ͓·͚ • iOSϓϩάϥϛϯά ୈ2൛ • ΞʔϩϯŋώϨΨε, δϣʔɾίϯ΢ΣΠ