ios - 使用界面生成器真的是一种不好的做法吗?

标签 ios interface-builder

<分区>

我开始在一家新公司开发 ios。 在这里他们教我永远不要使用 iterface-builder,说它很难维护代码并且有一些限制。

在 netbeans 中使用 java 应用程序的界面构建,我看到很多“错误代码”,但我没有看到它使用 IB,此外我在互联网上看到很多 IB 代码,只有少数代码没有它。

那么对于一个没有人是 ios 开发初学者的大公司来说,使用 IB 是一种不好的做法吗?

最佳答案

(提前声明一下,我强烈反对使用Interface Builder,我会解释一些原因)

Here they taught me to never use Interface Builder, saying it's hard to maintain the code and it has a few limitations.

这只是部分正确。一般来说,我不喜欢 Interface Builder 和 Xcode 的主要原因是很多初学者程序员认为这是开发 iOS/OS X 应用程序的唯一方法。他们从未听说过 gccclang,他们不知道编译器和链接器错误消息是什么意思,他们不会使用 make ,他们不知道 Objective-C 语言、Cocoa (Touch) API、IDE 和编译器之间的区别。

毕竟,他们开始使用 Interface Builder 和 Xcode 及其所有古怪的、有时奇怪的/不合逻辑的功能(以及错误),但是当他们需要开发一些不明显的东西时,他们不会甚至意识到有一种方法,例如,以编程方式创建 View 和 View Controller (是的,我在 StackOverflow 上看到了这个问题)。

因此,当滥用(或者更确切地说,过早使用)时,Interface Builder 和所有“方便”的功能会导致程序员学习错误的概念并错过一些重要的实践和经验。

但是,如果您是一名高级开发人员,拥有所有必要的技能,并且您觉得您可以从头开始编写整个应用程序,只使用一个简单的文本编辑器和一个 Makefile,那么您绝对可以使用 IB,如果您觉得这比敲代码更舒服,甚至鼓励您这样做。

所以,总结一下:

Using interface builder is really a bad practice?

没有。滥用它而不努力学习 UI 东西的编程方法是不好的做法。

Post scriptum:我有很多 iOS 开发经验,但我仍然觉得 Interface Builder 相当不方便且不一致。我通常对所有事情都使用代码。但这似乎是我个人的喜好。然而,一个优势是,如果一个人通过代码创建所有内容,那么无法访问这些 Apple 特定工具的另一个程序员也将能够为该项目做出贡献。这是“难以维护”部分成真的时刻......

例如,在我没有足够的钱购买 Mac 之前,我使用 Linux 开发 iOS 应用程序 (yes, that is actually possible)。我不能使用 IB 和 Xcode,但我已经完成了大量的应用程序和调整(当然是针对越狱的 iOS),这很好。

Post scriptum #2:避免使用 IB 的另一个原因可能是需要动态 UI。如果您严重依赖动画、自定义 UI 元素等,则很难在 Interface Builder 中完成所有操作。去年夏天,我不得不重写一个应用程序的登录屏幕,老实说,如果我必须使用 Interface Builder,我不知道如何实现我们设计师的想法。 UI/UX 是如此动态,它有如此多的改变方式,因此绝对有必要对每个像素进行精细控制。这是代码比 IB 更擅长的事情。

关于ios - 使用界面生成器真的是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13936928/

相关文章:

ios - 如何单独对应用程序中的任何 ViewController 进行 UI 测试

ios - IBInspectable 属性停止显示

ios - 如何使用 Autolayout 调整我的 super View 大小以匹配其 subview 的大小?

objective-c - awakeFromNib 之后 NSWindow 为零

objective-c - 重新启动应用程序的按钮

iOS/ Cordova : InAppBrowser not working

ios - 在 cocoapod 中使用多个 Assets 目录

iphone - UINavigationBar 色调颜色渐变

cocoa - 将菜单项绑定(bind)到第一响应者的属性

ios - 快速列出iOS应用的可用语言