You can expect the next versions of KTdict to be much better: I just completed the course iPhone Application Programming of Stanford university. The course is taught by two Apple engineers . The lectures are videotaped and available for free at iTunes U. I watched all off the lectures, looked at most of the code examples, didn’t do any exercises but started right away improving KTdict.
Before I wrote KTdict for iPhone, I had some experience with Cocoa programming for the Mac. I started out assuming that everything is more or less the same and only looked at documentation when I didn’t get something working as I liked without. The course was therefore quite an enlightenment for me.
Therefore, my advice for fellow iPhone programmers with Mac experience:
You need to become familiar with the concept of view-controllers, navigation-controllers, tab-bars, table-views and table-view controllers. This is essentially the UI-magic which gets you an application from your 24-inch iMac with Mouse and Keyboard onto a 3.5 inch iPhone with a finger.
So please: Watch lecture 1-8 of the Stanford course and read the documentation of the classes UIViewController, UITableViewController, UINavigationController and UITabBarController before you start coding your first iPhone application.
The other important item I learned are powerful tools for debugging which I didn’t really use so far:
It is definitely worth installing the Clang static analyzer. This tool is pretty good in finding some typical programming errors, especially related to Cocoa’s retain / release memory management model (the iPhone does not support garbage collection like MacOS 10.5+). Also, seeing the master use the performance tools like leak-check was quite helpful.
Benefit of all this: A new, better, less buggy version of KTdict is already submitted in the app-store. Let’s hope Apple will release it very soon despite tons of iPhone OS 3.0 apps in the pipe!