Abhiram Dwivedi wrote:
Hello,

I want to know if its possible to build a standalone GUI app for Mac using 
python. I need to build some application and still going through pythong 
tutorials. It seems Cocoa is the only option, but I want to be sure before 
moving away from python.

I need to integrate it with RSS and growl notifications as well.

Thanks in advance.

Ah, welcome to the wonderful world of Python GUI toolkits! So many to choose from...

You can use PyObjC, wxPython, PyQt, and Tkinter--these are the major "native" GUI toolkits on Mac. Gtk/PyGtk is still an X11 application mainly (there's a port to running natively on OSX in progress, but it's not stable yet).

A few quick notes:

1. PyObjC is, as you say, the "most-Mac" approach. It allows full access to the Cocoa frameworks. The main drawback to using PyObjC is that it is pretty much a thin wrapper over Objective-C, and so you really need to understand Objective-C to learn the Cocoa frameworks. There have been a lot of changes between PyObjC 2.0 and older versions, and a lot of the documentation is either out-of-date or nonexistent. The best approach to learning PyObjC these days seems to be to buy a good Cocoa textbook and translate the examples to Python. (Aaron Hillegass's book is highly recommended and has just been updated--see http://www.amazon.com/exec/obidos/ASIN/0321503619/bignerdranch-20.)

2. wxPython is cross-platform but looks great on the Mac with some attention to UI design, is well-documented (both in terms of available sample code online and books), and has a supportive community. It doesn't provide many Mac-specific hooks like PyObjC does, but it's quite sufficient for a nice application. One possible drawback to wxPython is that it runs on top of the Carbon frameworks, which are now deprecated on the Mac and will probably go away in the next several years. The plan to port wxPython to use Cocoa is somewhat hazy at this moment--wxWidget's Mac maintainer says he is implementing things gradually.

3. PyQt is also cross-platform, and also looks good on the Mac with some attention to UI design--it might take a bit more effort here. It also has a supportive community, and good documentation--lots of online code samples and a new book can help you get going. Like wxPython, it doesn't provide many Mac-specific hooks. PyQt currently runs on Carbon, but the underlying toolkit (Qt) is actively being ported to Cocoa by its developers, Trolltech, so it is heading in Apple's recommended direction.

4. Tkinter comes with Python, and is easier to learn than the other toolkits. Basic Tkinter is well-documented and has a supportive community around it. The drawback is that it is a more spartan toolkit out of the box, and you have to work with a lot of extension packages to get a more sophisticated GUI. I use Tkinter as my toolkit and have not found a compelling reason to switch, but I've also done a lot of work on assembling a set of libraries that give the UI of my Python program the polish that Mac users demand. Like wxPython and PyQt, Tkinter doesn't offer a lot of Mac-specific hooks, and it also runs on Carbon. The plan to port Tkinter to Cocoa is also somewhat hazy at this point; a developer says he's working on it, but no releases or even much public discussion of his progress have been posted.


As far as the other components of your app, the available Python libraries for RSS would work (the best one is Mark Pilgrim's Universal Feed Parser, see http://feedparser.org/). Growl has Python bindings, and can also be called from the command-line via AppleScript.

Hope this helps,
Kevin

--
Kevin Walzer
Code by Kevin
http://www.codebykevin.com
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to