At the recent openSUSE Conference, Frank Karlitschek introduced a new KDE initiative intended to bring developers and users closer together, Bretzn. He admitted that they came up with the name Bretzn (a kind of German pretzel) only the day before the Saturday keynote, illustrating the speed and ease that are appropriate to the initiative.
As a developer, you want to create cool Free Software and get the result out to millions of users. Unfortunately, to get the code to users you need to do more than just the fun stuff.
After you have written your application, you have to compile and package it for all operating systems you want to support. There is a wide variety of Linux distributions, and, of course, Windows and Mac too. Once you've built and packaged your software, you have to create a web site with information about the application, along with features such as commenting and bug reporting. Promotion comes next with social networking and conferences. Then you try to get it into distributions. Once the distributions ship your application, users turn up and start giving feedback, resulting in changes to the application. A new version is released, and you have to start all over again with the boring stuff.
The ambition: introducing Bretzn
Frank wants to reduce this whole cycle to 10 minutes of work (well, except for the fun part: coding). Meet project Bretzn. The goals of this project are to:
- Make it easy for developers to release an application.
- Make it easy for developers to market and for users to learn about that application.
- Make it easy for users to install the application.
Project Bretzn consists of three parts: building the package, publishing the application, marketing to users and providing feedback to the developer. The building part consists of plugins for IDEs and integration with Build Services and using Lubos Lunak's OBS (openSUSE Build Service) Generator to generate cross-platform build files automatically. Publishing sends the app to a variety of App Stores, and markets it with announcements on Facebook, Status.net compatible services such as Identi.ca, Twitter, an RSS feed and the Social Desktop. Users provide feedback by rating the application and commenting on it, by writing bug reports and sending messages to mailing lists or forums. All with one click (well, maybe a few more).
Sebastian Kugler, Dan Leinir Turthra Jensen and Frank himself have been working on Bretzn for about three months. The plans are older, however, as are some elements such as the Open Collaboration Services (OCS) AppStore.
The API is completely open, based on the Open Collaboration Services at freedesktop.org. There are free server and client implementations that support uploading and downloading of applications, abstracting Build Services and including OCS social features. Currently the API's are used by Meego, KDE and GNOME.
There are already several clients for the Open Collaboration Services AppStore:
- The openDesktop series of websites (kde-apps.org, gtk-apps.org, qt-apps.org, gnome-look.org etc)
- A Qt client (supporting Windows, Mac and Linux)
- The MeeGo Garage
- The KDE GHNS app
- A GNOME library (no GUI yet)
- Ovi, AppUp and more in development
Current features of the API include categories, screen shots, change logs, commenting, rating, search and update notification. Furthermore, applications can be either free or paid; payment goes directly to the developer. Not all AppStore clients include all features right now. The KDE GHNS (Get Hot New Stuff) client is probably the most complete as it has been around the longest.
Social features include providing notifications directly to the desktop using the Social Desktop API. This includes categories such as "what my friends like", "what my friends develop" and Knowledge Base integration.
The project is 3/4 complete, and the team intends to ship in December. They are working with other openSUSE developers to make a proof-of-concept openSUSE AppStore that they want to ship in the upcoming openSUSE 11.4 release.
Plans for the future
Future plans are showing commits of friends, linking to bug trackers so users can file bugs, allowing users to test newer versions so developers can gather feedback, and providing the ability to donate to developers.
The code will soon be available on Gitorious for all to see. Of course anyone interested in helping out is more than welcome. The team is looking for integration in other development environments such as Eclipse, NetBeans, Visual Studio, MonoDevelop and KDevelop. Also work on more App Stores, further social media integration and code cleanup is very welcome!