1. The list of lists - Cocoa Touch 3rd Party libraries

    There are many good ways for one to improve his coding speed and skills. One of these ways is to read, use and contribute to open source projects. For Cocoa Touch there are quite a lot of such projects and here’s a list of websites that try to aggregate them.

    http://cocoacontrols.com/ - best maintained list so far. It includes commercial libs too. Nicely presented with pictures, ratings and licensing.

    http://cocoaobjects.com/

    http://iosframeworks.com/ - “A curated catalog of iOS frameworks and classes for the pragmatic iOS developer” as they call themselves. iOS Frameworks has many frameworks, not only single function libraries.

    http://www.cocoapedia.org/wiki/Category:Components – A smaller list, from cocoapedia.

    Some 3rd party developer frameworks which handle some of the tedious common tasks done during development:

    https://github.com/defagos/CoconutKit

    http://tapku.com/

    http://cocoacoding.com/2011/03/21/3rd-party-developer-frameworks/

    And for the adventurous there is always:

    https://github.com/languages/Objective-C

  2. [Review] Pro Objective-C Design Patterns for iOS

    It’s a long time since I posted something serious here. Shame on me! Cheap excuse: I have been busy. Busy with work and busy enjoying the German air of my new home.

    Another thing that kept me busy was this neat book published by Apress: “Pro Obj-C Design Patterns for iOS”, by Carlo Chung. True to the short paragraph on the cover “Use Objective-C design patterns to bring your iOS skill to the next level”, the book takes a deep dive into how various design patterns can be applied in the Cocoa Touch Framework and in Objective-C in general.

    This book is in a pro series, so it’s not “iOS Development 101” or “Start using Objective-C in 24 hours”

    In its 23 chapters, the book covers the most common software design deja-vu scenarios for:

    • Object creation Interface adaptation
    • Decoupling of objects
    • Abstract collection
    • Algorithm encapsulation
    • Performance and object access
    • State of objects

    If you’re reading about design patterns for the first time, my advice is to take a few minutes, pause reading the book and think about each pattern you read. While the examples are well explained, source code and diagrams, sometimes in day-to-day software design the exact examples from the book can be missed. As long as the governing concepts and use cases are well understood, they can be a lot of help.

    All too often, developers grind trough building good apps on willpower and a vigorous focus on code development, leaving them unaware of and unable to benefit from the underlying structural and functional design patterns.

    If you want to take your iOS (and not only) coding skills to the next level, make your personal library a favor, get this book and thoroughly read it. Have a good read!

  3. Lua vs. Obj-C

    Lua

    For some time now I’ve been digging into Lua. Coming from Python, the power of a clean syntax and good documentation is impossible to ignore.

    Lua is a powerful, fast, lightweight, embeddable scripting language.

    Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.

    It’s that exotic, super-fast scripting language that very few use, right? Partially right. It’s extensively used in the gaming industry (e.g. World of Warcraft) usually together with C++.

    Lua comes with a console, which is great tool for fast experimenting of logic and syntax.

    Lua + iOS

    spidey vs hulk

    All fine and dandy, but how can this help me on iOS development? Stefan found the right answer: iPhone Wax .

    Wax is a framework that lets you write native iPhone apps in Lua. It bridges Objective-C and Lua using the Objective-C runtime. With Wax, anything you can do in Objective-C is automatically available in Lua!” Corey Johnson, main guy behind Wax

    As anyone with iOS development experience knows, Obj-C is very strict about classes, requiring a certain mindset to write good, maintainable and modular applications. Wax doesn’t alter this approach at all.

    Memory management is another worry that goes away in Wax, because of the automatic garbage collection.

    By this point, Wax looked completely different than any other write-quick-iphone-apps gimicks out there, including PhoneGap, Titanium, Rhomobile, Corona SDK. Do note that I mention “iPhone apps”, since the result of Wax is not cross platform. Well, a solid application should take advatage of the hardware platform and the only part that can be cross platform is the interface, even that within certain limits.

    Cocoa with a sprinkle of Lua

    Wax looked good in theory. A UITabBarController is a UITabBar, a delegate is a delegate, 3rd party libs work how they are intended to (Facebook, ASIHTTPRequest, custom written ones). Now let’s see it in practice.

    Read the full article…