There is no spoon - iPhone vs. iPad


Published on

Our presentation at the Apple store in Regent Street, London, part of the May talks at the iPhone Developers Group.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

  • There is no spoon - iPhone vs. iPad

    1. 1. There is no spoon iPhone vs. iPad Paul Ardeleanu @pardel Aut viam inveniam aut faciam
    2. 2. iPhone vs. iPad
    3. 3. iPhone... nano
    4. 4. iPhone vs. iPad
    5. 5. I[Pad] hate you so much right now Lots of people got confused by this new product because it doesn’t fall into an existing category. No, it’s not suppose to replace your iPhone or your Macbook. As Jobs said, it’s smack in the middle. For me, it will be a companion for my Macbook during travel or a replacement for my iPhone for casual reading. And my daughter will love playing Angelina Ballerina on it. But not everyone notices that a whole ecosystem is changing – lots of businesses must be sad now. Microsoft must be wetting their pants – their HP slate with Vista 7 is still light-years away. Amazon is going to lose big time – they can’t justify the $500 Kindle DX anymore – it’s a device that can only be used for reading books – or ridiculous fees. They had their opportunity to capture the ebooks market, in the same way the iPod captured the online music market, but they wasted it. Think of it for a second – if they have sold the initial Kindle really cheap (say, $100) they would have make lots of money on books. Unfortunately, it’s too late for them now. Is it a surprise that they announced, 6 days before the Apple event, the Kindle Development Kit that will allow developer to build “active content”? There are lots of other “content publishers” which will be affected by this… The iPad will change forever the way we interact with electronic resources and there is no way back. Funny… it might even save some newspapers!
    6. 6.
    7. 7.
    8. 8.
    9. 9.
    10. 10.
    11. 11.
    12. 12. So what is it?
    13. 13. Good news You already have over 1,000,000 customers
    14. 14. 2 paths • universal app • separate apps
    15. 15. Universal app
    16. 16. Universal app
    17. 17. Universal app
    18. 18. UIDevice.h typedef enum { #if __IPHONE_3_2 <= __IPHONE_OS_VERSION_MAX_ALLOWED UIUserInterfaceIdiomPhone, // iPhone and iPod touch style UI UIUserInterfaceIdiomPad, // iPad style UI #endif } UIUserInterfaceIdiom; #define UI_USER_INTERFACE_IDIOM() ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] ? [[UIDevice currentDevice] userInterfaceIdiom] : UIUserInterfaceIdiomPhone) if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { ... }
    19. 19. Separate app The separate app will have its own audience
    20. 20. Icon iPhone iPad icon.png 57x 57 72 x 72 icon-ipad.png Icon-Small.png 29 x 29 50 x 50 Icon-Small-50.png
    21. 21. Default image iPhone iPad 1024 x 768 Default.png 320 x 460 768 x 1004 Default-Portrait.png 1024 x 748 Default-Landscape.png
    22. 22. Default image
    23. 23. Naming the app
    24. 24. Naming the app
    25. 25. There is no spoon
    26. 26. MVC
    27. 27. Split View MyFirstViewController* firstVC = [[[MyFirstViewController alloc] initWithNibName:@"FirstNib" bundle:nil] autorelease]; MySecondViewController* secondVC = [[[MySecondViewController alloc] initWithNibName:@"SecondNib" bundle:nil] autorelease]; UISplitViewController* splitVC = [[UISplitViewController alloc] init]; splitVC.viewControllers = [NSArray arrayWithObjects:firstVC, secondVC, nil]; [self.view addSubview:splitVC.view];
    28. 28. Popovers
    29. 29. Popovers MyCustomViewController* content = [[MyCustomViewController alloc] init]; UIPopoverController* aPopover = [[UIPopoverController alloc] initWithContentViewController:content]; aPopover.delegate = self; [content release]; self.popoverController = aPopover; [aPopover release]; [self.popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    30. 30. Gesture Recognisers Abstract class: typedef enum { UIGestureRecognizer UITouchPhaseBegan, UITouchPhaseMoved, Concrete classes: UITouchPhaseStationary, UITouchPhaseEnded, UITapGestureRecognizer UITouchPhaseCancelled, UIPinchGestureRecognizer } UITouchPhase; UIPanGestureRecognize UISwipeGestureRecognizer UIRotationGestureRecognizer UILongPressGestureRecognizer typedef enum { UIGestureRecognizerStatePossible, UIGestureRecognizerStateBegan, UIGestureRecognizerStateChanged, UIGestureRecognizerStateEnded, UIGestureRecognizerStateCancelled, UIGestureRecognizerStateFailed, UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded } UIGestureRecognizerState;
    31. 31. Document sharing UIDocumentInteractionController* docController = [UIDocumentInteractionController interactionControllerWithURL:fileURL]; docController.delegate = self; Info.plist CFBundleTypeName CFBundleTypeIconFiles LSItemContentTypes LSHandlerRank
    32. 32. PDF graphic context UIGraphicsBeginPDFContextToFile UIGraphicsBeginPDFContextToData UIGraphicsBeginPDFPage UIGraphicsBeginPDFPageWithInfo UIGraphicsBeginPDFPage UIGraphicsEndPDFContext
    33. 33. Custom input view UIResponder @property (readonly, retain) UIView *inputView __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_2); @property (readonly, retain) UIView *inputAccessoryView __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_2); UITextView & UITextField
    34. 34. What else... test, test, [Unit]Test analytics - Flurry test on device 4.0 is coming...
    35. 35. One last thing...
    36. 36. Thank you! @hello24com