Должен ли я сделать одно приложение для телефонов и планшетов или по одному для каждого?

Я должен разработать приложение для телефонов и планшетов IOS. Логика приложения та же, а интерфейс совершенно другой. Мне интересно, как мне справиться с этим: сделать 1 большое приложение для обоих, или приложение для телефона и приложение для планшета (а затем загрузить 2 ipa's как 1 приложение на рынке).

Когда я делаю 1 приложение, я должен проверить, является ли это телефон или планшет в коде, чтобы перенаправить к соответствующей деятельности. Также я должен включить код совместимости, чтобы он компилировался для телефонов. Если бы я сделал 2 приложения, мне не нужна эта проверка, и мне также не нужно включать код совместимости, поэтому приложение будет намного меньше. Но в этом случае мне придется постоянно копировать / вставлять логику приложения из одного проекта в другой во время разработки.

Вот почему мне интересно, какова лучшая практика в этом случае? Я искал информацию об этом, но я нахожу только статьи о том, как управлять различными макетами XML, или статьи, в которых не так много информации.

Я погуглил и нашел там статью для Android здесь Android-приложение для телефона и планшета: 1 или 2 приложения?

Но мне нужно знать о приложениях IOS

2 ответа

Решение

Поместите этот код в ваш класс делегата приложения и

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    UINavigationController *navController;

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {

         _iPhonehomeScreen = [[NFHomeScreen_iPhone alloc] initWithNibName:@"NFHomeScreen_iPhone" bundle:nil];
        navController = [[UINavigationController alloc] initWithRootViewController:_iphonehomeScreen];
        [navController setNavigationBarHidden:YES];
        self.window.rootViewController = navController;
    }
    else {
        _iPadhomeScreen = [[NFHomeScreen_iPad alloc] initWithNibName:@"NFHomeScreen_iPad" bundle:nil];
        navController = [[UINavigationController alloc] initWithRootViewController:_iPadhomeScreen];
        [navController setNavigationBarHidden:YES];
        self.window.rootViewController = navController;

    }

    [navController release];
}

Теперь используйте два xib для iPad и iPhone с общими файлами.h и.m для одного и того же.

Это действительно больше вопрос маркетинга, если вы хотите создать два приложения или универсальное приложение. Вы хотите, чтобы пользователи могли покупать только один раз и работать на обеих платформах? Делает ли версия для iPad намного больше, чем вы бы предпочли взимать премию?

Как только вы решили, что легко обмениваться кодом там, где это необходимо, если у вас есть два отдельных приложения, вы можете сделать цель для iPad и цель для iPhone - каждая цель может совместно использовать любой код или ресурсы или модели данных, которые вам нравятся., также неплохо иметь минимальный делегат приложения, от которого наследуются версии для iPad и iPhone.

Если он универсален, вы можете в конечном итоге проверить, на какой платформе вы работаете, но, как правило, после загрузки файлов основного интерфейса вам не нужно много обнаруживать.

Другие вопросы по тегам