Avoid using cross-platform interface tools; the result will never be as good as the native implementation, which is especially bad for OS X, where most customers expect a certain level of Polish in their applications. Implementing the core logic in a platform-independent language such as C ++ and supporting a different code base for the interface on each platform can be a good solution, especially if you have a very complex model.
In any case, you should not have too much difficulty learning Cocoa if you are a good .NET programmer; I did the opposite a few years ago and did not experience any particular problems. Objective-C is more C-oriented than C #, but if you know the basics of pointers and you will be fine. Cocoa and .NET definitely have their differences in certain areas, but they are both high-level frameworks that you shouldn't have too many problems with. Get a good book (Hillegass is the author) and go through it so that you understand how the two APIs use different design templates in certain areas and do not try to deal with the framework if it is different from what you use to.
In my experience, this will ultimately make you a better programmer, expanding your knowledge, even if you no longer write Cocoa applications.
source share