I just wanted to say that you can and most likely should use UIKit without touching interface builder.
It's been over 5 years since I've used interface builder and I have no regrets. Just build your UI programatically relying mostly on UIStackViews, constraints and multiple levels of views embedded in views. Write your own helpers on top of UIKit to help you compose views in a more compact way. I basically have a dozen functions I re-use over and over and over to build complex UI from these simple primitives.
I'm probably 2 to 5x times more productive building UIs now than I ever was using interface builder. To say nothing about having proper version control and being able to abstract views much better.
Will it be painful when you start? likely, but since you are exposed to everything your programmer brain will figure out how to solve the repetitive tasks very fast by building a helper function.
I just wanted to say that you can and most likely should use UIKit without touching interface builder. It's been over 5 years since I've used interface builder and I have no regrets. Just build your UI programatically relying mostly on UIStackViews, constraints and multiple levels of views embedded in views. Write your own helpers on top of UIKit to help you compose views in a more compact way. I basically have a dozen functions I re-use over and over and over to build complex UI from these simple primitives.