I dropped using my lovely Mac SE30 in the early nineties because of lack of good databases, and moved back to Windows until 2010. SQLite and Core Data seemed powerful enough to serve my need of prototyping and building enterprise application. Alas – they weren’t.
Being fostered on Paradox databases first, and later MS SQL Server, Core Data on iOS is a hell of complications.
Enter Sensible Table View (STV) Framework
Last year however, a cool framework from Sensible Cocoa (at $100) came to my knowledge and I bought it.
Sadly, the framework, created by Tarek Sakr, lacked documentation, at least at my level. I tried, but had to drop it.
I then had a round with Filemaker Pro, witch provide a nice way to prototype database application. I didn’t however, see any way to make sellable apps in the App Store, and in late spring, when my test-version expired, I dropped it also.
STV 3.0 – finally a decent version
Then Sensible Cocoa began promoting an upcoming new version with documentation, and I had something to wait for. When it arrived, I had to shell out another $125 (I hate being billed for developer stuff!), but no documentation appeared. Finally in version 3.08 it appeared and I could start using it. Vacation approached however, and now I’m in it.
I thought I’d just follow the book, and write every code character. By the way, copying isn’t without danger either…
Copying code from PDF sometimes includes strange invisible characters that destroys the project. You get a lot of not-resolvable and not-visible errors. The solution is to first copy the text to a text-editor like Byword, then copy it again, and finally paste it to XCode.
Back to school
The two-first sections was well known to me, and I started again with Section 3, Setting up STV. Tarek explains well but asks us to name the view-controller RootViewController, which he later calls iPhoneViewController, before he settles down on iPhoneRootViewController for the main part of his book.
A silly detail, but for SQL server people like me, it drove me nut. In the learning phase, inconsistencies just slows us down. I hope Tarek correct these annoyances….
In Section 4 begins the fun — Exploring the possibilities. Tarek let us create a decent task app, and he starts us with a simple task object. He guides you through his structure:
- Setting up the screen
- Create the objects definition
- Create property definitions
- Create an instance of the objects
- Create the section(s) for the task object
It’s fun and it’s a bit magical!
Tarek describes his ingenious STV30 architecture like this:
An SCTableViewModel defines a table view model with several sections, each section being of type
SCTableViewSection. Each SCTableViewSection can contain several cells, each cell being of type
SCTableViewCell. SCTableViewModel’s functionality can also be extended using
SCTableViewModelDataSource and SCTableViewModelDelegate.
Progression is smooth and well
Tarek leads you from the single Task object, to a list of objects, adding TaskStep object, and gradually opening for more advanced controls like switch and date-pickers.
I’m now finished with the objects and heading for the real stuff – Core Data. I’ll update the post when I’m further down in Tarek’s PDF…
Preliminary conclusion
For me STV is still a of bit black magic, and I’m not sure if I dare to release a commercial app on that. But for prototyping I’m all in. I agree with Tarek -
STV3.0 is exciting indeed!