Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Developing Universal iOS App

Developing Universal iOS App

This presentation shows how to develop an universal iOS app or "convert" a existing one into universal. An universal app must work in iPad/iPod and iPhone.

Weverton do Couto Timoteo

March 01, 2014
Tweet

More Decks by Weverton do Couto Timoteo

Other Decks in Programming

Transcript

  1. Developing an
    Universal iOS app
    Or converting a existing one into universal...

    View Slide

  2. –Apple Developer Documentation
    “A universal app is a single app that is
    optimized for iPhone, iPod touch, and iPad
    devices.”

    View Slide

  3. Universal app setup
    • First you'll need to set project Devices as 'Universal'

    View Slide

  4. –Morpheus
    “You take the blue pill -- the story ends, you
    wake up in your bed and believe whatever
    you want to believe. You take the red pill --
    you stay in Wonderland and I show you how
    deep the rabbit-hole goes.”

    View Slide

  5. ViewControllers
    • Consider defining separate view controller
    classes for iPhone and iPad devices.
    • If you use a single view controller class for both
    platforms, your code must support both iPhone
    and iPad screen sizes.

    View Slide

  6. Views
    • Consider using separate sets of views for iPhone
    and iPad devices. For custom views, this means
    defining different versions of your class for each
    device.
    • If you choose to use the same custom view for
    both devices, make sure your drawRect: and
    layoutSubviews methods especially work
    properly on both devices.

    View Slide

  7. Using Runtime checks
    if (UI_USER_INTERFACE_IDIOM() ==
    UIUserInterfaceIdiomPad) {!
    // The device is an iPad running iOS 3.2
    or later.!
    }!
    else {!
    // The device is an iPhone or iPod touch.!
    }

    View Slide

  8. Drawing objects
    self.wrapper.frame = CGRectMake(15,
    10, self.frame.size.width - 30, 135);

    View Slide

  9. Using different .XIB for the
    same ViewController

    View Slide

  10. if ([[UIDevice currentDevice] userInterfaceIdiom]
    == UIUserInterfaceIdiomPhone) {!
    self = [super initWithNibName:nibNameOrNil
    bundle:nibBundleOrNil];!
    } else {!
    self.view = [[[NSBundle mainBundle]
    loadNibNamed:@"DDSigninFormViewController~ipad"
    owner:self options:nil] objectAtIndex:0];!
    }

    View Slide

  11. Live demo/coding

    View Slide

  12. Thank you!
    @wolcanus
    [email protected]

    View Slide