This is a very rough draft for an idea I had. Forgive the lack of detail: the time is currently 4:18 in the morning, and I am lacking sleep. The idea stemmed from this thread: http://nuigroup.com/forums/viewthread/4944/ but is more focused in intent and direction in that I want to do this for a specific application (PyMT) and thus should be easier to implement.
As it’s a bit late for a complete proposal to be completely drafted and finalized, I’ll submit this to the GSoC site on approval or interest and continue editing the proposal there over the next couple of days. As always, your comments are very welcome!
Distributing applications is probably one of the larger problems a developer runs into. Perl has the CPAN, Python has PyPi, and various Linux distros have their own repositories for distributing applications and their source. Even entire platforms like the iPhone have their app store, where apps can be downloaded and installed directly. For the end user, repository browsers make finding applications a much smaller hassle than it usually is. For this reason, I considered an application similar to the iPhone app store, but written for PyMT. For the developer, distributing applications becomes a lot easier, as users can extend the functionality of PyMT directly through PyMT. And for the user, it saves a lot of time looking for applications and figuring out how to install them. For GSoC2009, I propose a graphical repository browser application and repository for PyMT.
The project will consist of two parts:
1. The application itself. This will exist entirely client side.
2. The repository. Exists on a server, contains code and other metadata necessary that the client requests. Developers will be able to add their applications here.
The application will provide the following functionality to the user (perhaps more, depending on how useful it is to the user):
-The virtual keyboard can be used for this!
-Applications will be listed in repository based upon genre/type/purpose/etc in a treeview. Users can peruse through this.
-Rate and comment on application post download
Application upgrade - will check for newer versions of the application on the repository, and download them.
-Removes the application files
Most of the above should be easy to implement in Python, however I’m currently unsure about how the schema for applications works in PyMT-installed apps don’t necessarily show up in the PyMT default launcher, but can be run outside of it by themselves. Can apps be added to PyMT? More research is needed on this.
I’m currently researching how other repositories (PyPI,CPAN,etc.) are implemented. I will be able to add a feature list for that tomorrow.