丰富的GUI OS X框架?
对于OSX开发图形应用程序(如WPF中可能的应用程序),我们有什么建议?
我的特定背景是Smalltalk&Java,但是我目前主要在DHTML / .NET(ASP.NET/C#)中工作。
解决方案
回答
可可。被许多人认为是有史以来最好的应用程序框架。该语言是类似于Java的Objective-C语言,启发了Java的创建者。
实际上,除非我们有特定的需求(例如希望成为跨平台的用户),否则没有可替代的Cocoa可以用于OS X开发。
回答
我不确定WPF是什么,但是OSX平台的大多数开发都是在Cocoa的Objective-C中完成的。我们可以将不赞成使用的Carbon API与其他语言(例如Java)一起使用,但是OSX的新应用程序确实应该在Objective-C中开发。我们可以从XCode作为IDE的Apple指南开始。
回答
Cocoa是在Mac OS X上使用的主要框架。这是Apple所使用的,这是大多数新开发项目所使用的,并且主要是在其中添加新功能的地方。
如果我们来自WPF,我想我们可能会发现Cocoa中的很多概念都很熟悉。 (尽管Cocoa稍早一些。)它完全围绕MVC构建,具有属性更改通知和绑定,动画支持,持久性和对象图管理框架等等。
(此外,我们可能想在标签中添加" mac"。)
回答
除了Xcode工具随附的Interface Builder,我们还可以使用QT,GTK +,AWT和SWING(对于Java背景),Tk,Squeak(对于Smalltalk背景),Shoes(非常酷的Ruby GUI小工具箱) ),FXRuby(更多Ruby),wxWidgets,XULRunner和其他一些我确定已经忘记的东西。但是,对于大多数类似本机的应用程序,Interface Builder是最好的选择。
回答
在Java背景下,不要被现在已过时的Cocoa-Java桥所困扰。在OS X的早期历史中,Apple为Cocoa库提供了(手工维护)Java接口。由于Java和Objective-C之间的语义差异,因此Cocoa的许多最强大的功能(包括键值绑定(基于其构建了许多其他功能))非常困难,导致Objetive-C和Java功能之间的差异以及最终弃用桥梁。所有Cocoa开发都最好使用Objective-C或者与动态语言(例如Python或者Ruby)的众多(自动生成的)桥梁之一进行。
有了Smalltalk背景知识,我希望我们在一两天内就能接触到Objective-C。
回答
换句话说,与以前的发布者不同:如果我们没有在InterfaceBuilder中设计界面并使用Objective-C进行操作,那么最终我们将获得一个外观,感觉,行为或者工作方式都不一样的应用程序Macintosh应用程序应该会出现,并且它会像拇指一样向用户伸出来。与其他应用程序相比,这将给用户带来不愉快的体验,因此,他们可能会希望使用其他应用程序。
如果应用程序已经使用QT并且想要快速移植,则可以接受QT之类的工具包,但是如果我们要编写新的应用程序(或者单独的GUI),则可以使用ObjC或者ObjC ++在Cocoa中编写它。
回答
我们可能会看到PyObjc,它是Python编程语言和Objective-C之间的桥梁,包括对Mac OS X组件(包括Cocoa)的绑定。
回答
具有Smalltalk背景,我建议直接使用Cocoa和Objective-C。但是,如果我们倾向于动态语言,则RubyCocoa将允许我们使用Ruby,我认为我们会发现它比Python更容易上手。