构建本机移动用户界面

移动工程师Tony Nguyen的问答

当您首次加入Personal Capital时,有关移动开发的最大惊喜是什么?

在以前的职位上,我的同事和雇主使用“所见即所得”(WYSIWYG)编辑器来构建其移动应用程序的用户界面。

这意味着使用用于Xcode(iOS)的界面生成器和用于Android的布局编辑器。

但是在Personal Capital,我们通过代码构建UI。

为什么Personal Capital移动工程选择不使用所见即所得编辑器?

最大的原因是性能。

在将XIB文件和情节提要加载,解析和转换为代码时,编译器必须处理更多的开销。 这会产生不必要的工作。 在大型项目中,这可能会对性能(例如应用程序启动)产生重大影响。 移动应用程序的初始应用程序启动至关重要,因为它会影响用户是否使用您的应用程序以及使用该应用程序的时间。

另一个原因是可重用性。 在代码中构建UI可以让我们通过继承重用UI组件。 例如,单个应用程序中的大多数UI组件具有相同的样式。 代替重复创建UI组件,我们可以使用基本的UI类,该类包含我们想要的所有属性,并仅实例化该对象。 任何小的偏差,我们都可以简单地从基数开始扩展并相应地进行更改。 通过从代码编写UI,我们可以使代码保持DRY(不要重复自己),并使代码更加一致。

以编程方式创建UI的学习曲线如何?

最难的部分是新员工需要大量增加。

没有关于界面外观的即时反馈。 我发现缺少即时反馈确实迫使我理解并思考为什么以及在哪里需要放置UI元素。 如果您多加考虑,有时可以简化复杂的UI布局!

对于那些习惯使用所见即所得编辑器的开发人员来说,学习曲线有些陡峭。 但是,我们认为以编程方式创建UI有利于开发人员的成长。 您真的很了解以编程方式完成的工作—尤其是视图生命周期可能变得多么复杂和令人困惑!

但是,一旦克服了学习曲线,就会发现您对应用程序中发生的事情有了更好的控制。

与使用WYSIWYG编辑器构建的iOS UI相比,编码的iOS UI更易于测试吗?

我们发现,以编程方式构建UI时,与通过WYSIWYG编辑器相比,UI测试更为简单,因为在编程视图中强制分离了责任。 好的做法是不要将业务逻辑与构建UI混合使用。 这使我们更容易测试。

我们使用Xcode的XCTest框架编写测试-如果您对我们的贡献感兴趣,我们正在招聘!

Interesting Posts