PyObjC i Cocoa kontra PyQt4

Mając chwilę czasu na zabawę z Pythonem pod Mac OS X postanowiłem się przyjrzeć bardziej natywnej formie tworzenia aplikacji napisanych w Pythonie pod tą platformę. Leopard i wydane wraz z nim (i nowsze) wersje XCode posiadają prosto z pudełka wsparcie dla PyObjC - mostu pomiędzy Objective-C a Pythonem. Za pomocą IDE (XCode) możemy utworzyć projekt Cocoa-Python, graficznie zbudować interfejs, graficznie łączyć elementy interfejsu z naszymi kontrolerami w kodzie... niby fajnie, ale jest parę "ale".

pyxcode
  • Brak dobrej i czytelnej dokumentacji dla PyObjC, brak prostego tutoriala wprowadzającego w tworzenie prostej aplikacji z GUI i obsługę dostępnych narzędzi. Istnieje wprawdzie tutorial An Epic Introduction to PyObjC and Cocoa, ale to praktycznie jedyny aktualny tutorial, którego autor zakłada że znamy mniej lub bardziej biblioteki i narzędzia Leoparda. Generalnie trzeba siedzieć z dokumentacją do Objective-C i "przekładać" to na Pythona samemu.
  • Jak sam projekt się określa, PyObjC to "most" pomiędzy Objective-C a Pythonem, przez co kod w Pythonie wygląda czasami dziwnie. Np. wywołania metod Objective-C z Pythona:
    def dragImageForRowsWithIndexes_tableColumns_event_offset_(self,dragRows,tableColumns,dragEvent,dragImageOffset):
     pass
    
  • Stworzona aplikacja będzie działać tylko na jednej platformie.
  • Bazując na swoich odczuciach i opiniach z różnych blogów - PyObjC jest "zrozumiały i przyjemny" dla programistów znających architekturę i biblioteki OS X. Nie potrafią przyswoić generalnie tworzenia GUI w stylu PyQt4/PyGTK+. Programiści przychodzący z zewnątrz mają na odwrót - nie mogą ogarnąć PyObjC :)
Można spokojnie tworzyć aplikacje np. w PyQt4, które będą działały na wszystkich obsługiwanych przez tą bibliotekę systemach operacyjnych, jednakże trzeba stworzoną aplikację przetestować i dość często dopasować pod dany system operacyjny.

RkBlog

Interfejsy Graficzne, 14 June 2009, Piotr Maliński

Comment article
RkBlog main page Search RSS Contact