什么? 以编程方式进行布局? 你疯了吗? 我为什么要这样做?

当我第一次听到它时,我承认这听起来很奇怪。 一个聪明的同事向我提出了建议,我想:“这肯定是在浪费时间,因为Xcode为我提供了许多便利”,“为什么要增加项目的复杂性?”我想到了其他问题。 。 后来,我学习了更多的主题,并且对软件体系结构产生了兴趣,因此我意识到这些Xcode设施需要付费。 在这段时间里,当我考虑这个话题时,我受Facebook邀请参加了招聘过程,虽然我没有被录用,但是我发现Instagram团队不使用故事板,至少面试官告诉我那。 我想知道他们为什么要这样做吗? 他们是Facebook公司,当然有充分的理由。 您使用情节提要的优势显而易见,我们无需多说。 另一方面,您所支付的价格并不比情节提要设施亮。 在这里,我将提出这种方法的一些优点,我的意思是说,以编程方式进行布局,并且我将共享一个简单,快速的项目,因为您对它的开发方式有所了解。 我的建议是,查看每个类的行数,查看责任分配方式,查看依赖注入的角度等等。


  • 花更多的时间进行开发;
  • 有时,组织团队协作可能会更复杂;

  • 为了更加灵活地注入依赖关系,您必须创建类初始化程序,并定义如何将其作为视图控制器的输入参数。
  • 我更容易跟踪代码上的更改,我的意思是,代码比情节提要XML文件更具描述性;
  • 解耦并使其可测试非常好,并且谈论去耦,您可以创建主视图,从视图控制器中取出演示逻辑,而情节提要板很难做到。 总结关注点分离;
  • 我的意思是,更易于制造可重复使用的组件,您需要以这种方式进行思考;
  • 很棒的风格和简码;
  • 有机会更好地了解事物在幕后如何工作,UIKit,约束等;

我花了一些时间才意识到优点和缺点。 你怎么看? 请在这里发表评论。 别忘了看下面的示例,再见,下次见。

启发式/螺旋

screex –以编程方式布局示例

github.com