Category Archives: Development

Tutorial: iOS Reverse Engineering Part I: LLDB

ObjDia_UIWebViewScrollViewAfterLLDB

Hello World! Little Jonathan’s First Reverse Engineering Before I was knee high to a grasshopper as a kid in Minnesota my dad, a mechanical engineer by education, did a bad, bad thing he would occasionally regret. He taught me how to take things apart… When I was a few years old, I approached my grandfather […]

Read more ...

Tutorial: iOS Reverse Engineering Part II: class-dump & Hopper

ObjDia_UIWebViewScrollViewAfterClassDump

In the previous tutorial you used LLBD to gain insight as to whether and how you might become the delegate of UIWebView‘s scrollView while learning some tips and tricks for using LLDB to discover how to insert code into the UIScrollViewDelegate methods of the UIWebView without getting in the way of Apple’s implementation of the […]

Read more ...

Rate Limiting UITableView and UICollectionView Reloads

stopwatch_icon_featured

UICollectionView and UITableView are workhorse classes on iOS. As UICollectionView and UITableView contents become more complex and dynamic in your iOS apps it can prove difficult to maintain UI state and performance, especially when dealing with dynamic layout in UICollectionView or variable row height in UITableView. Oftentimes, the simplest code path is to simply reloadData. […]

Read more ...

Tutorial: Auto Layout Part 2

Button_with_non-HIG_Spacing-300x71

Using Auto Layout in Interface Builder can prove trying. While it works reasonably well when you declare constraints on simple views hierarchies, Auto Layout in IB has a couple of major limitations. As you saw in our previous Auto Layout tutorial, you cannot declare constraints across views that do not share the same superview in […]

Read more ...

Tutorial: Auto Layout Part 1

Two_Buttons_with_HIG_Spacing-300x81

What is Auto Layout? Auto Layout changes the way that you create your iOS and OS X user interfaces in simple, but powerful ways. Rather than explicitly setting the origin and size of UI elements, you declare constraints between views that describe how UI elements are displayed. Constraints represent the relationship between two user interface […]

Read more ...