To say I’ve seen many frameworks and projects that are supposed to make an iOS developer’s life easier is a bit understated.
Now that my company has become the largest iOS focused development shop here in Germany, I guess – like many others – we constantly strive to optimize our workflow. Not sticking to the NIH-syndrom is an important aspect of this.
Table Views are omnipresent in iPhone and iPad development. They are used for all sorts of things, from simple lists to complex forms. Unfortunately, for what they do and how often you need them, they are surprisingly complex to set up.
Sensible TableView rocks
There have been many attempts to simplify UITableView (that’s the Apple class behind Table Views) programming. I personally tried a lot, found many that addressed parts of my requirements but never really fell in love with any.
If you’re in the same situation like I was, stop seeking, here’s the ultimate solution: Sensible TableView by Sensible Cocoa.
(Use this code to get a US$ 10 discount SCSTVRR1211)
Sensible TableView (STV) is the most comprehensive, fully featured and best designed Table View framework I’ve ever seen. It literally shortens a task that took 4-5 hours in the past to just a few minutes.
As an example, the table view to the right takes roughly five lines of code. That’s it!
You don’t have to deal with UITableView’s many delegate methods nor do you have to reinvent the wheel time and again, as STV gracefully handles all of this for you in the background.
The way STV works is pretty unique, too.
It basically takes your Objective-C data transfer objects or – should you use it – your Core Data objects and leverages the Objective-C runtime to learn about their structure and properties. From that information it automagically creates a fully functional, basic Table View Model.
This model is driving your UITableView.
Understanding this architectural design decision is extremely important: STV does in no way dictate what you do with your UITableView.
If, for example, you happen to use one of those famous pull-to-refresh Table Views, which often mean you have to subclass UITableView, that is absolutely fine for STV.
You hand over whatever UITableView you use to STV and it takes your exact UITableView implementation and interacts with it.
That gives you all the magic, while at the same time leaving you in total control – an aspect which is very relevant for most developers I know.
Based on the Table View Model that STV derived from your data model classes, you can start to fine tune every aspect. From look and feel to behavior and data validation. Yes, data validation is completely integrated! Take a look at the many bundled cell styles you get out-of-the box. Of course you can add entirely custom cells, too.
Finally Data Binding comes to iOS
The fine folks over at Sensible Cocoa also decided to implement true data binding leveraging Cocoa’s Key-Value-Coding features. In a nutshell, when you allow editing, your underlying data objects are automatically updated (given, the entered data passed the validation rules you configured).
It’s really difficult to describe with words how much of a time saver Sensible TableView really is. At the end of this article, we’ve embedded a 30+ minute introduction video created by Tarek Sakr, the guy behind Sensible Cocoa. If you are a professional iOS developer, we highly recommend to take a break and watch the entire video.
But there’s even more I love about STV:
- It’s absolutely lightweight. STV comprises just 9 classes. Forget about hard-to-digest frameworks like Three20 and many others. All you have to add to your project is 18 files and you never see Table Views like before.
- The code Sensible Cocoa ships is very well documented. I’d even say that what you learn from going through Tarek’s code alone is worth your money. If you are like me, you learn best from reading excellent code. Trying to understand the inner workings of STV was such a valuable experience!
- Sensible TableView’s documentation is fully integrated into Xcode. You don’t get a PDF or a set of stand-alone HTML files. You get a docset that will be part of the Xcode integrated Developer Documentation. Obviously, you can work with it in exactly the way, you work with Apple’s own documentation. Huge advantage and just another proof of how much love for the detail Sensible Cocoa has put into every aspect of the product.
- Samples and excellent customer support. Along with the source code for the complete framework, you get great personal support. Whether it’s the forum at Sensible Cocoa or if you try to get in touch with Tarek personally. You’re never left alone. I’ve learned, that this is as important as the quality of the product itself.
There’s so much more about Sensible TableView, that you could possibly write an entire book about it. And maybe I will. :-)