Должен ли я сделать одно приложение для телефонов и планшетов или по одному для каждого?
Я должен разработать приложение для телефонов и планшетов 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.
Если он универсален, вы можете в конечном итоге проверить, на какой платформе вы работаете, но, как правило, после загрузки файлов основного интерфейса вам не нужно много обнаруживать.