【发布时间】:2010-03-18 19:17:30
【问题描述】:
是否有任何理由不在不使用界面生成器的情况下编写 iphone 应用程序?
(或者换句话说,可以在没有构建器的情况下编写应用程序吗?)
【问题讨论】:
-
我希望有人在我参加的 iPhone 技术讲座上提出这个问题,这样可以节省我大量使用 IB 的时间
是否有任何理由不在不使用界面生成器的情况下编写 iphone 应用程序?
(或者换句话说,可以在没有构建器的情况下编写应用程序吗?)
【问题讨论】:
就我个人而言,我的应用程序中没有使用任何 NIB,但这更多的是我如何开始进行开发而不是其他任何事情。当第一个 beta SDK 发布时,我从 Mac 开发(我几乎每天都使用 Interface Builder)过渡到 iPhone。最初,没有 Interface Builder,即使它来了,你也不能用它做很多事情,所以我从来没有花时间在 iPhone 上真正了解它。更多的是我做我熟悉的事情。
Jeff LaMarche 在他的文章“Don't Fear the Interface Builder”中提出了一个令人信服的论点,建议您尽可能使用 Interface Builder,我鼓励新开发人员在开始编程用户界面生成之前先学习使用它。它为使用标准元素的界面节省了大量时间。
有些人认为使用纯编程接口可以获得性能优势,但 Matt Gallagher ran a series of benchmarks 发现这种加速通常只有 5-10% 左右。如果您真的想缩短应用程序启动时间的最后一点,您可以使用 Adrian Kosmaczewski 的 nib2objc 来两全其美,它会从您的 NIB 文件生成 Objective-C。
但是,很多时候您需要以编程方式操作界面,例如自定义视图和动画。此代码可以与 Interface Builder 并行存在,而不会造成太多混乱。同样,此时更多的是个人喜好问题,但我的建议是使用 Interface Builder,因为它可以节省您的时间。
【讨论】:
我从未编写过使用 Interface Builder(.xib 文件)的 iPhone 应用程序,但这只是个人喜好:我喜欢应用程序是 100% 代码。
原因是如果您以后需要更改某些内容,我不喜欢需要设计时工具的应用程序。它创建的依赖关系可能在今天或下个月不会成为问题,但可能会在 3 年后成为问题。
所以,答案是:是的,不使用 Interface Builder 编写 iPhone 应用程序也没问题。
【讨论】:
当然,在没有 IB 的情况下编写应用程序绝对没问题。这需要更多设置(我相信您必须对 Info.plist 文件进行一些修改),但这当然是可能的,而且人们一直都在这样做。
就个人而言,我更喜欢在大多数任务中使用 Interface Builder,但通常只是为了获得基本布局(因此我不必处理计算矩形等)。我更喜欢在代码中进行任何进一步的定制。
【讨论】:
如果您愿意,您可以手动编辑 .XIB 文件。毕竟,它们是 XML。不能帮助在项目中至少有一个。或者,您可以从代码创建所有控件。据我所知,后者需要更少的输入。
然后,在某些应用程序中,XIB 文件将毫无用处。我说的是游戏,艺术/设计方面的考虑胜过拥有原生小部件的便利性。
所以是的,在设计级别(没有原生小部件)和实现级别(是原生小部件,但没有 IB)都可以。
【讨论】: