对于像 WPF 中可能出现的图形应用程序的 OS X 开发,您会推荐什么?
我的特定背景是 Smalltalk 和 Java,但我目前主要工作在 DHTML/.NET (ASP.NET/C#)。
对于像 WPF 中可能出现的图形应用程序的 OS X 开发,您会推荐什么?
我的特定背景是 Smalltalk 和 Java,但我目前主要工作在 DHTML/.NET (ASP.NET/C#)。
可可。被许多人认为是有史以来最好的应用程序框架。该语言是 Objective-C,类似于 SmallTalk 的语言,它激发了 Java 的创造者。
确实,对于 OS X 开发,除了 Cocoa 之外没有其他合理的替代方案,除非您有特定的需求,比如想要跨平台。
除了作为 Xcode 工具的一部分包含的 Interface Builder 之外,您还可以使用 QT、GTK+、AWT 和 SWING(用于您的 Java 背景)、Tk、Squeak(用于您的 Smalltalk 背景)、Shoes(非常酷的小 Ruby GUI 工具包)、FXRuby(更多 Ruby)、wxWidgets、XULRunner 和其他我确定我已经忘记了。然而,对于最接近原生的应用程序,Interface Builder 是您最好的选择。
Cocoa 是在 Mac OS X 上使用的主要框架。它是 Apple 使用的,是大多数新开发使用的,也是主要添加新功能的地方。
如果您来自 WPF,我想您可能会发现 Cocoa 中的很多概念都很熟悉。(尽管 Cocoa 稍微老了一点。)它完全围绕 MVC 构建,有属性更改通知和绑定,有动画支持,有持久性和对象图管理框架,等等。
(此外,您可能希望在标签中添加“mac”。)
有了您的 Java 背景,不要被现在已弃用的 Cocoa-Java 桥接走。在 OS X 历史的早期,Apple 为 Cocoa 库提供了一个(人工维护的)Java 接口。由于 Java 和 Objective-C 之间的语义差异,Cocoa 的许多最强大的特性,包括键值绑定(许多其他特性都基于它构建)非常困难,导致 Objetive-C 和 Java 的能力和桥梁的最终弃用。所有 Cocoa 开发都最好使用 Objective-C 或众多(自动生成的)与 Python 或 Ruby 等动态语言的桥梁之一来完成。
凭借您在 smalltalk 方面的背景,我希望您可以在一两天内掌握 Objective-C。
我不确定 WPF 是什么,但大多数 OSX 平台的开发都是在 Objective-C 和 Cocoa 中完成的。您可以将已弃用的 Carbon API 与 Java 等其他语言一起使用,但 OSX 的新应用程序确实应该在 Objective-C 中开发。您可以从Apple 的指南开始,将 Xcode 作为您的 IDE。
换句话说,与以前的海报不同:如果您不是在 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 更容易上手。