【问题标题】:Should I make one app for both phone and tablet devices, or one for each?我应该为手机和平板设备制作一个应用程序,还是各一个?
【发布时间】:2012-09-27 05:55:47
【问题描述】:

我必须为 ios 手机和平板电脑开发一个应用程序。应用程序逻辑相同,而 UI 完全不同。我想知道我应该如何处理这个问题:为两者制作 1 个大应用程序,或者为手机应用程序和平板电脑应用程序(然后将 2 个 ipa 作为 1 个应用程序上传到市场)。

当我创建 1 个应用程序时,我应该在代码中检查它是手机还是平板电脑以重定向到适当的活动。此外,我应该包含兼容性代码以使其能够为手机编译。如果我要制作 2 个应用程序,我不需要那个检查,我也不需要包含兼容性代码,所以应用程序会小很多。但在这种情况下,我必须在开发过程中不断地将应用程序逻辑从一个项目复制/粘贴到另一个项目。

这就是我想知道的原因,在这种情况下,最佳做法是什么?我一直在搜索这方面的信息,但我只找到有关如何管理不同 xml 布局的文章,或者没有太多信息的文章。

我用谷歌搜索,发现这里有一篇关于 android 的文章 Android app for phone and tablet: 1 or 2 apps?

但我需要了解 ios 应用

【问题讨论】:

    标签: ios iphone ipad compatibility


    【解决方案1】:

    如果您想构建两个应用程序或一个通用应用程序,这实际上更像是一个营销问题。您是否希望用户只需购买一次并在两个平台上运行? iPad 版本是否做得更多,您宁愿收取额外费用?

    一旦您决定在需要的地方共享代码很容易,如果您有两个单独的应用程序,您可以为 iPad 创建一个目标,为 iPhone 创建一个目标 - 每个目标都可以共享任何代码、资源或数据模型你喜欢。让 iPad 和 iPhone 版本继承的最小应用程序委托也是一个好主意。

    如果它是通用的,您最终可能会检查您所在的平台,但通常一旦您加载了主界面文件,您就不需要做太多的检测了。

    【讨论】:

      【解决方案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];
      }
      

      现在使用两个用于 iPad 和 iPhone 的 xib 以及相同的通用 .h 和 .m 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-15
        • 2021-08-02
        相关资源
        最近更新 更多