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".

- 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.
- Dodane: 14.06.2009 przez riklaunim