Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Depends on how stock your UI is. The app I work on is very heavily customized (e.g., lots of subclasses of UIButton, UITableViewCell, etc etc), and iOS7 broke a lot due to underlying implementation changes. We're also pretty graphically intense, so iOS7 also likewise broke a lot of optimizations.

Quick examples:

- The entire way iOS handles text rendering has changed (makes sense, CoreText), so methods that calculate text rendering now return different results than they did before. More crucially, text measurements can now return non-round numbers, so if you're using the results without rounding them off, you will get pixel alignment problems galore. Previous versions of iOS rounded off results before returning them to you (though this is not guaranteed via documentation, or even addressed).

- Text rendering has also changed, so even if you're not using the system fonts, the exact same font will render with subtly different widths and heights. In densely packed UIs this can be problematic.

- UITableViewCell's underlying implementation has changed. More specifically, backgroundView is now by default a plain white view, where it was nil before. If you have table views that are transparent, surprise, they are now all white. There are also some subtle differences that can cause trouble if you've heavily customized UITableView - I suspect personally that UITableView now has a UICollectionView (or UICollectionView-esque) based implementation (it seemed entirely separate before), since some of the behavior now aligns.



Interesting. We do a lot of custom drawing as well (like I said, our app dates back to iOS 3, so we even have a messy custom transition animation layer that wouldn't have been necessary with newer OSes) but it sounds like we've sidestepped some of the issues you've run into just by chance.

For instance, we already had custom text metrics code since our app's font is italic, and that code already rounded to non-retina boundaries. And I think nearly all our tableviews already had custom backgroundViews.

Our biggest incompatibility was a progress HUD popup that subclassed UIAlertView, and that drawing broke completely in iOS 7 (it just turned into a little blurry white bar in the middle of the screen.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: