As I mentioned in a couple of tweets earlier today I've achieved some excellent initial success with a new approach. The name's just a silly pun... a "tart" is lighter-weight than a "pie", and BlackBerry-Tart is (much) lighter-weight than BlackBerry-Py.
The previous BlackBerry-Py stuff was focused on the PySide package and using the Qnx/Python entry point to launch the Python interpreter directly, using wrapped Qt libraries for the GUI portions (and others) of the app. This worked out quite well, especially on the PlayBook where we don't have Cascades yet. One downside was the size of the .bar files, at roughly 12MB minimum and maybe over 20MB with everything bundled.
Sometimes I write little because nothing's happening, other times because so much is happening I can't stop to write about it! Fortunately the last few weeks have been the second case.
In my last post  I talked about wanting to hook Python to the Qt port for the PlayBook. Since then, after considering other approaches, I decided to take a closer look at PySide . My quick review of it concluded that I'd be duplicating key parts of its functionality if I tried doing anything from scratch.
With encouragement from the #BlackBerryDev IRC channel on Freenode, Xitij Ritesh Patel (who has been "BBX-Python's" biggest fan) and I set up a Rackspace Cloud server and got to work, sharing a single userid via screen for some remote pair programming.
Just a quick update since it's been months of silence (and waiting, mostly) and things are starting to move again.
Tonight I decided that it was time to take the QML "Hello World" code I'd written a couple of weeks ago, and see what it would take to hook that up to Python somehow.
Earlier today I wrote about how it turns out that the Tablet OS (2.0.0 beta or later) actually recognizes Python as a direct "entry point" for apps, as it does for apps built using AIR or the Native SDK (WebWorks apps use the AIR entry point at this time).
With the original crude launcher, we'd developed a small set of experiments and demonstration scripts, which you had to copy over the network to "documents/scripts", with the bbxrun.py file sitting above to let you select which one to run.
I've taken the whole mess and packaged it up using the new approach, with a signed .bar file up so you can try it out for yourself if you'd like. (Download link is at the end of this post.)
Okay, this is just too cool not to mention right away!
Jeff Kehres from RIM has been following the progress on and off, and pointed out today the existence of the blackberry-pythonpackager that's already included in the NDK tools.
I therefore herewith present the classic tiny "hello, world" app for the PlayBook, written in Python and with output going only to the appdata/logs/log file (to which stdout is redirected by default).
print "hello, world"
This is definitely not ready for serious use, but I thought I'd share a screenshot with the first text rendering support for BBX-Python.
Here are a few quick notes on what's happened with BBX-Python since the last update.
My recent posts have talked about running Python 3.2 on the PlayBook. While all versions of the PlayBook OS have used Python internally , the beta 2.0 OS is the first to have a Python interpreter with read permissions set such that apps can access it... for now, anyway. (Unfortunately we have no guarantees that it will remain accessible, but your input to RIM will help influence decisions about that.)
This project is in an early stage, and could go any number of directions (perhaps all at the same time).
In case you've been following the work on a native launcher for Python apps on BBX (PlayBook), you'll be happy to I've just set up a BBX-Python project web page with the code hosted the bbx-python bitbucket repository.