> Pretty soon they understood that to get Creo the kind of user experience they desired, they had to rewrite one of the core modules of Apple developer stack: the UIKit.<p>> Read it again: entirely rewrite a core component created by some of the smartest programmers in the world, with no access to their source code.<p>They didn't though. Looking through their documentation[1], they subclassed all (or some?) UIKit components and offer those instead of what UIKit offers – which is what allows them to hook into each object's properties for their IDE (I'd guess).<p>It's cool, and I understand why they did this given their offering (a drag-and-drop IDE to create apps) – but they definitely didn't rewrite a massive, complex, UI framework. Similarly, they blocked off a bunch of UIKit stuff that could genuinely be useful. It looks like you can't provide your own collection view layouts, for example.<p>[1] <a href="https://docs.creolabs.com/classes/CollectionView.html" rel="nofollow">https://docs.creolabs.com/classes/CollectionView.html</a>