Giao diện GUI X phong phú?


6

Bạn sẽ đề xuất gì cho việc phát triển OS X của một ứng dụng đồ họa giống như những ứng dụng có thể có trong WPF?

Nền tảng cụ thể của tôi nằm trong Smalltalk & Java, nhưng hiện tại tôi đang làm việc chủ yếu trong DHTML/.NET (ASP.NET/C#).

15

Ca cao. Được nhiều người coi là khung ứng dụng tốt nhất từ ​​trước tới nay. Ngôn ngữ là Objective-C, ngôn ngữ giống như SmallTalk đã truyền cảm hứng cho những người sáng tạo của Java.

Thực sự, không có sự thay thế hợp lý nào đối với Cocoa để phát triển OS X, trừ khi bạn có nhu cầu cụ thể như muốn trở thành nền tảng chéo.


1

Tôi không chắc WPF là gì, nhưng hầu hết phát triển cho nền tảng OSX được thực hiện trong Objective-C với Cocoa. Bạn có thể sử dụng API Carbon không được chấp nhận với các ngôn ngữ khác như Java, nhưng các ứng dụng mới cho OSX thực sự cần được phát triển trong Mục tiêu-C. Bạn có thể bắt đầu với Apple's guide bằng XCode làm IDE của bạn.


2

Ca cao là khung chính để sử dụng trên Mac OS X. Đó là những gì Apple sử dụng, đó là những gì phát triển mới nhất sử dụng và đó là nơi các tính năng mới được bổ sung chủ yếu.

Nếu bạn đến từ WPF, tôi nghĩ bạn có thể tìm thấy khá một vài khái niệm trong Cocoa quen thuộc. (Mặc dù thực tế là Cocoa chỉ lớn hơn một chút). Nó được xây dựng hoàn toàn xung quanh MVC, có các thông báo thay đổi thuộc tính và các ràng buộc, có hỗ trợ hoạt hình, có khung quản lý đồ thị bền bỉ và đối tượng, v.v.

(Ngoài ra, bạn có thể muốn thêm "mac" để các thẻ.)


4

Bên cạnh giao diện Builder được bao gồm như là một phần trong những công cụ Xcode, bạn cũng có thể sử dụng QT, GTK +, AWT & SWING (cho nền Java của bạn), Tk, Squeak (cho nền Smalltalk của bạn), Giày dép (rất ít bộ công cụ GUI của Ruby), FXRuby (nhiều Ruby), wxWidgets, XULRunner, và những người khác tôi chắc chắn tôi đã quên. Tuy nhiên, đối với hầu hết các ứng dụng gốc, Trình tạo giao diện là lựa chọn tốt nhất của bạn.


2

Với nền Java của bạn, không bị bỏ qua bởi cây cầu Cocoa-Java không còn được dùng nữa. Sớm trong lịch sử OS X, Apple đã cung cấp một giao diện Java (được bảo trì cẩn thận bằng tay) cho các thư viện Cocoa. Do sự khác biệt ngữ nghĩa giữa Java và Objective-C, nhiều tính năng mạnh mẽ nhất của Cocoa, bao gồm ràng buộc khóa-giá trị (khi nhiều tính năng khác được xây dựng) là rất khó, dẫn đến sự phân kỳ của các khả năng của Objetive-C và Java và sự ngưng sử dụng cuối cùng của cây cầu. Tất cả phát triển Cocoa được thực hiện tốt nhất với Objective-C hoặc một trong nhiều cầu (được tạo tự động) cho các ngôn ngữ động như Python hoặc Ruby.

Với nền của bạn trong smalltalk, tôi hy vọng bạn có thể chọn Objective-C sau một hoặc hai ngày.


0

Để đặt nó theo cách khác so với áp phích trước: nếu bạn không thiết kế giao diện trong InterfaceBuilder và thao tác với Objective-C, thì bạn sẽ kết thúc bằng ứng dụng không nhìn, cảm nhận, hành động, hoặc làm việc theo cách ứng dụng Macintosh, và nó sẽ dính ra như một ngón tay cái đau cho người dùng. Nó sẽ là một trải nghiệm khó chịu cho người dùng so với các ứng dụng khác, và họ có thể sẽ mong muốn một ứng dụng khác vì nó.

Bộ công cụ như QT có thể chấp nhận được nếu ứng dụng của bạn đã sử dụng QT và bạn muốn chuyển nó nhanh, nhưng nếu bạn đang viết một ứng dụng mới (hoặc GUI riêng) thì hãy viết nó trong Cocoa bằng ObjC hoặc ObjC++.


0

Bạn có thể xem PyObjc là cầu nối giữa ngôn ngữ lập trình Python và Objective-C, bao gồm các ràng buộc cho các thành phần Mac OS X, bao gồm Cocoa.


0

Với nền Smalltalk, tôi muốn giới thiệu thẳng Cocoa và Objective-C. Tuy nhiên, nếu bạn đang hướng tới một ngôn ngữ động, RubyCocoa sẽ cho phép bạn sử dụng Ruby mà tôi nghĩ bạn sẽ dễ dàng tìm thấy hơn Python.