Bogate frameworki GUI OS X?


6

Co byś polecił dla rozwoju OS X aplikacji graficznej, takiej jak możliwa w WPF?

Moje specyficzne tło jest w Smalltalk & Java, ale obecnie pracuję głównie w DHTML/.NET (ASP.NET/C#).

15

Kakao. Uważany przez wielu za najlepsze ramy aplikacji w historii. Językiem jest Objective-C, język podobny do SmallTalk, który zainspirował twórców Javy.

Naprawdę, nie ma rozsądnej alternatywy dla Cocoa dla rozwoju OS X, chyba że masz konkretne potrzeby, takie jak chęć bycia wieloplatformowym.


1

Nie jestem pewien, co to jest WPF, ale większość rozwoju platformy OSX odbywa się w Objective-C z kakao. Możesz użyć przestarzałych API Carbon w innych językach, takich jak Java, ale nowe aplikacje dla OSX naprawdę powinny być rozwijane w Objective-C. Możesz zacząć od Apple's guide z XCode jako IDE.


2

Kakao jest podstawową strukturą do wykorzystania w systemie Mac OS X. To, co używa Apple, jest tym, czego używa większość nowych projektów, i to tam właśnie dodawane są nowe funkcje.

Jeśli pochodzisz z WPF, myślę, że możesz znaleźć kilka z pojęć znanych z Cocoa. (Pomimo faktu, że Cocoa jest tylko trochę starsze.) Jest zbudowany całkowicie wokół MVC, istnieją powiadomienia o zmianach właściwości i powiązania, jest wsparcie dla animacji, istnieje struktura zarządzania trwałością i obiekt-wykres, i tak dalej.

(Również może chcesz dodać "Mac" z tagów.)


4

Oprócz konstruktora Interface, który jest dołączony jako część narzędzi Xcode, można również użyć QT, GTK +, AWT & Swing (dla twojego tła Java), Tk, Squeak (dla twojego tła Smalltalk), Shoes (bardzo fajny mały zestaw narzędzi GUI Ruby), FXRuby (więcej Ruby), wxWidgets, XULRunner i innych Jestem pewien, że zapomniałem. Jednak w przypadku najbardziej natywnych aplikacji najlepszym rozwiązaniem jest Interface Builder.


2

Z twoim tłem Java, nie zostań sidetracked przez teraz przestarzały most Cocoa-Java. Na początku historii OS X, Apple dostarczyło (pracowicie utrzymywany ręcznie) interfejs Java dla bibliotek Cocoa. Ze względu na różnice semantyczne między Javą i Objective-C, wiele z najpotężniejszych funkcji Cocoa, w tym tworzenie powiązań Key-Value (na których budowane jest wiele innych funkcji) jest bardzo trudne, co prowadzi do rozbieżności w zakresie Objetive-C i Java oraz ewentualne zaniechanie mostu. Cały rozwój kakao najlepiej wykonywać przy użyciu Objective-C lub jednego z wielu (automatycznie generowanych) mostów do dynamicznych języków, takich jak Python lub Ruby.

Z twoim tłem w smalltalk, oczekiwałbym, że mógłbyś wziąć Cel-C w dzień albo dwa.


0

Mówiąc inaczej niż poprzednie plakaty: jeśli nie projektujesz swojego interfejsu w InterfaceBuilder i nie manipulujesz nim za pomocą Objective-C, to otrzymasz aplikację, która nie wygląda, nie działa, nie działa, lub pracować tak, jak powinna wyglądać aplikacja na komputerze Macintosh, i będzie wyglądać jak brzydki kciuk dla użytkowników. Będzie to nieprzyjemne doświadczenie dla użytkownika w porównaniu z innymi aplikacjami i prawdopodobnie będą one wymagały innej aplikacji z tego powodu.

Zestawy narzędzi, takie jak QT, są dopuszczalne, jeśli twoja aplikacja używa już QT i chcesz ją szybko przenieść, ale jeśli piszesz nową aplikację (lub oddzielny GUI), napisz ją w Cocoa używając ObjC lub ObjC++.


0

Możesz rzucić okiem na PyObjc, który jest pomostem między językiem programowania Python i Objective-C, w tym powiązaniami dla komponentów Mac OS X, w tym Cocoa.


0

Na tle Smalltalk polecam proste kakao i Objective-C. Jednakże, jeśli jesteś skłonny do dynamicznego języka, RubyCocoa pozwoli ci użyć Ruby, która moim zdaniem będzie łatwiejsza do pobrania niż Python.