Looking at that code reveals that it doesn't try to account for fractional positioning. If you set self.center on a view that is an even number of pixels wide, it will result in a non-pixel-aligned origin on non-retina displays, which results in in blurry rendering. If you're iOS-7 and iPhone only these days, that may not matter, but there are still millions of non-retina iPads out there, and in fact you can still buy new ones on the Apple store (both the original iPad mini and the iPad 2 are still for sale).
I've written lots of code for iOS and have generally always preferred programmatic layout over IB, but you have to be a little more careful than this post is implying. Beefing up your helper routines to take into account issues like the above is critical to making sure your UIs always look their best.
This is a really good point. I struggled with this when I was doing some CoreGraphics, I just couldn't get a line to not "blur" when it should have been crisp. The problem was exactly what you're pointing out.
FWIW, I side on the NIB/Storyboard if your UI is even remotely complicated (sort of the opposite of what the article is saying). Having to nudge a ton of controls around in code is a huge PITA and time saved using NIBs and Storyboards (properly).
I share your concern about drift, but in practice I've never seen it become a problem. On the other hand, blurry views really stick out. The easiest way to avoid them is to have a category method on UIView called something like "alignOrigin", in which you grab the value of "self.window.screen.scale" and make sure to snap both the x and y of the origin to be a multiple of the reciprocal of that scale. For example, if the scale is 1, you snap to integer bounds. If it's 2.0, you snap to multiples of 0.5. If you call that method every time you adjust the view's position (especially after manipulating "center"), that'll keep everything looking sharp at all times, and is future-proof against any new screen densities Apple might someday release.
Looking at that code reveals that it doesn't try to account for fractional positioning. If you set self.center on a view that is an even number of pixels wide, it will result in a non-pixel-aligned origin on non-retina displays, which results in in blurry rendering. If you're iOS-7 and iPhone only these days, that may not matter, but there are still millions of non-retina iPads out there, and in fact you can still buy new ones on the Apple store (both the original iPad mini and the iPad 2 are still for sale).
I've written lots of code for iOS and have generally always preferred programmatic layout over IB, but you have to be a little more careful than this post is implying. Beefing up your helper routines to take into account issues like the above is critical to making sure your UIs always look their best.