【问题标题】:Rich GUI OS X Frameworks?丰富的 GUI OS X 框架?
【发布时间】:2010-09-06 08:54:42
【问题描述】:

对于像 WPF 中可能的图形应用程序的 OS X 开发,您有什么建议?

我的特定背景是 Smalltalk 和 Java,但我目前主要从事 DHTML/.NET (ASP.NET/C#) 方面的工作。

【问题讨论】:

    标签: wpf user-interface macos frameworks


    【解决方案1】:

    可可。被许多人认为是有史以来最好的应用程序框架。该语言是 Objective-C,类似于 SmallTalk 的语言,激发了 Java 的创造者。

    确实,对于 OS X 开发来说,除了 Cocoa 之外没有其他合理的替代方案,除非您有特定的需求,比如想要跨平台。

    【讨论】:

      【解决方案2】:

      我不确定 WPF 是什么,但大多数 OSX 平台的开发都是在 Objective-C 和 Cocoa 中完成的。您可以将已弃用的 Carbon API 与 Java 等其他语言一起使用,但 OSX 的新应用程序确实应该在 Objective-C 中开发。你可以从Apple's guide 开始,使用 Xcode 作为你的 IDE。

      【讨论】:

        【解决方案3】:

        Cocoa 是在 Mac OS X 上使用的主要框架。它是 Apple 使用的,是大多数新开发使用的,也是主要添加新功能的地方。

        如果您来自 WPF,我想您可能会发现 Cocoa 中的很多概念都很熟悉。 (尽管 Cocoa 稍微老一点。)它完全围绕 MVC 构建,有属性更改通知和绑定,有动画支持,有持久性和对象图管理框架等等。

        (另外,您可能想在标签中添加“mac”。)

        【讨论】:

          【解决方案4】:

          除了作为 Xcode 工具的一部分包含的 Interface Builder 之外,您还可以使用 QT、GTK+、AWT 和 SWING(用于您的 Java 背景)、Tk、Squeak(用于您的 Smalltalk 背景)、Shoes(非常酷的小Ruby GUI 工具包)、FXRuby(更多的 Ruby)、wxWidgets、XULRunner 以及其他我确定我已经忘记的东西。然而,对于最接近原生的应用程序,Interface Builder 是您的最佳选择。

          【讨论】:

            【解决方案5】:

            凭借您的 Java 背景,不要被现在已弃用的 Cocoa-Java 桥接器所牵制。在 OS X 历史的早期,Apple 为 Cocoa 库提供了一个(人工维护的)Java 接口。由于 Java 和 Objective-C 之间的语义差异,Cocoa 的许多最强大的特性,包括键值绑定(许多其他特性都建立在此之上)非常困难,导致 Objetive-C 和 Java 的能力和桥梁的最终弃用。所有 Cocoa 开发都最好使用 Objective-C 或众多(自动生成的)与 Python 或 Ruby 等动态语言的桥梁之一。

            以您在 smalltalk 方面的背景,我希望您可以在一两天内掌握 Objective-C。

            【讨论】:

              【解决方案6】:

              换一种说法,与之前的海报不同:如果您不是在 InterfaceBuilder 中设计界面并使用 Objective-C 操作它,那么您最终会得到一个没有外观、感觉、行为或以 Macintosh 应用程序应有的方式工作,它会像用户的拇指一样突出。与其他应用相比,这对用户来说将是一种不愉快的体验,他们可能会因此而渴望不同的应用。

              如果您的应用程序已经使用 QT 并且您希望快速移植它,那么 QT 之类的工具包是可以接受的,但是如果您正在编写一个新应用程序(或单独的 GUI),那么请使用 ObjC 或 ObjC++ 在 Cocoa 中编写它。

              【讨论】:

                【解决方案7】:

                您可以查看PyObjc,它是 Python 编程语言和 Objective-C 之间的桥梁,包括 Mac OS X 组件(包括 Cocoa)的绑定。

                【讨论】:

                  【解决方案8】:

                  具有 Smalltalk 背景,我推荐直接使用 Cocoa 和 Objective-C。但是,如果您倾向于使用动态语言,RubyCocoa 将允许您使用 Ruby,我认为您会发现它比 Python 更容易上手。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2017-09-30
                    • 1970-01-01
                    • 2011-05-05
                    • 2011-06-15
                    • 2023-04-08
                    • 2010-11-18
                    • 1970-01-01
                    相关资源
                    最近更新 更多