Как сделать приложение универсальным для iPhone / iPad

No comments on Как сделать приложение универсальным для iPhone / iPad

Written by

in

Универсальность приложения – это большой плюс, так как на iPad в таком случае приложение будет работать так же красиво, как на iPhone без масштабирования и как иногда говорят “пикселизации”. Кроме этого, поддерживать универсальное приложение удобнее, так как оно одно, в противном случае нужно поддерживать два разных приложения для двух платформ, что более трудоемко. А еще в App Store будет одна страница. Следовательно легче продвигать, комментарии все в одном месте и т.д. Есть и минусы универсальности. Сложные приложения проще сделать, наверное, в двух вариантах.

Для того, чтобы сделать приложение универсальным нужно учесть несколько аспектов или сделать несколько вещей.

  1. Заходим в Build Settings проекта и делаем поиск параметра Targeted Device Family. Выбираем опцию iPhone/iPad. См. рисунок. При щелчке он увеличивается.
  2. Создаем все необходимые заставки и иконки в нужных размерах. Для iPad размер заставки 768×1004 px, размер иконки 72х72 px. Для iPhone 360×460, иконка 57×57 для iPhone 3GS и ранее, 720х920, 114х114 соответственно для Retina display в iPhone 4 и выше. Если Вы не отображаете Status bar, то нужно прибавить еще 20 к высоте. Присваиваем все заставки и иконки во вкладке Summary для Вашего Target.
  3. Если какие-то XIB файлы View нужно переделать под iPad, то создаем эти XIB файлы. Для этого нажимаем правой кнопкой по папке Classes в проекте, New File -> User Interface -> View. Но просто создать XIB недостаточно. Нужно еще его File Owner присвоить значение нужного класса. См. Рисунок.

    Теперь у нас есть 2 XIB файла для одного View Controller: MainAboutViewController.xib и MainAboutViewControllerIPad.xib к примеру.
    В коде, там где вызывается этот контроллер, нужно сделать разветвление наподобие следующего:
    <br />
    – (IBAction)showAboutScreen:(id)sender {</p>
    <p>    NSString *nibName;<br />
        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)<br />
            nibName = @”MainAboutViewControllerIPad”;<br />
        else<br />
            nibName = @”MainAboutViewController”;</p>
    <p>    MainAboutViewController *mainAboutViewController = [[MainAboutViewController alloc] initWithNibName:nibName bundle:nil];<br />
        mainAboutViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;<br />
        mainAboutViewController.title = @”О приложении”;<br />
        [self presentModalViewController:mainAboutViewController animated:YES];<br />
    }<br />
    
  4. Во всех других участках, где нужно учитывать тип устройства пишем аналогичный код:
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    else ... 
    
  5. Ссылки:
    Converting iPhone apps to universal

    A few more notes

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *