苹果iOS程序开发经常会遇到下面这个问题: 到底是一套代码兼容 iPhone 和 iPad(含iTouch)还是做两个应用去分别支持iPhone和iPad?其实这不光是成需要需要考虑的程序结构上的问题,而是一个产品规划的问题。这里面涉及到决策的问题,按照我经历的几个iOS开发项目,我总结出一下的几点经验:首先需要考虑你提供的功能对于iPhone和iPad这两类用户是否有不同的需求?也就是意味着你的应用对iPad 和 iPhone用户来说是否有不同的界面和交互设计?如果有则干脆就两套代码,两个App单独开发。功能上用公用的函数库来共享,在代码架构上就是通过 GIT 的 Submodule的形式来维护公用库。各自产品自己建立项目baseline进行开发。需要考虑你的App是否需要针对iPhone和iPad不同的分辨率进行布局设计。这会设计到iOS 设备现有的分辨率如下:iPhone / iPod Touch普通屏 320 x 480 像素 iPhone 1、3G、3GS;iPod Touch 1、2、3 3:2 Retina 屏 640 x 960 像素 iPhone 4、4S,iPod Touch 4 16:9 Retina 屏 640 x 1136 像素 iPhone 5,iPod Touch 5 iPad普通屏 768 x 1024像素 iPad 1, iPad2,iPad mini Retina屏 1536 x 2048像素 New iPad,iPad 4, iPad mini 2 做一款 兼容 iPad 和 iPhone 所有型号手机的程序,光Splash Screen就需要做6种。但 320x480 和 640x960 (768x1024 与 1536x2048)只是4倍的关系 @2x 的关系。但是还要考虑到 iPad版本一般需要支持横屏。所以工作量还是蛮大的。而且不容易协调。导致整个项目的迭代遇到很多问题,无法正式发布产品。第三,项目开发人员的数量能够决定到底是一套代码支持 iPhone 和 iPad还是 分开。如果开发人员数量很少,那么为了高效和介绍代码浪费,而且一套代码+配置文件的方式是比较好的选择。因为任何一个开发人员都不愿意重复写自己已经写过的代码。公用代码是比较好的方式。在可控范围内减少维护人员的支出。相反,如果开发人员数量较多,那分开项目并行开发是比较有效提高效率的方式,但这也会带来沟通效率上的损失。不同水平的开发人员协同工作来短板效应。综上,如果时间紧急,那么可以考虑迭代+一套代码维护。如果是大项目,从零开发,那么需要分项目+共享库的架构开始设计,最终决策取决于你自己对项目的进度把控以及需求裁减。
上一篇:JAVA基础面试题