LWN.net Logo

Distributions

Ubuntu's new App Developer site

October 12, 2011

This article was contributed by Nathan Willis

Ubuntu launched its renovated developer portal at the end of September, consolidating a number of application development tools and documentation resources under one banner: developer.ubuntu.com. The new site still merges a few discrete tasks — such as searching for applications (an end-user activity), developing and distributing applications (a developer activity, naturally), and writing third-party tutorials (a non-developer contributor activity) — but it presents a cleaner, global view of the application development process, particularly for those new to the community.

The announcement (which was written by Ubuntu translations coordinator David Planella) describes the site as the "central point of reference for any topics related to application development. […] a site that should grow organically to provide the tools, share the knowledge and act as the springboard to foster app proliferation and developer community growth." The layout splits the content into four parts: "Get Started," "Resources," "Publish," and "Community" — although the main page also includes several unrelated items, such as a rotating menu of free software and commercial applications that users can find in the Ubuntu Software Center (USC), which is the distribution's new name for its built-in application directory and one-click installer.

The prominence of USC should help clarify exactly who the site is for: this App Developer portal is a resource for people writing third-party applications that they wish to offer to Ubuntu users. It is not, by and large, aimed at people who are interested in learning how to contribute to the distribution itself, or to get their application into one of the official Ubuntu repositories. Ubuntu has run smaller initiatives for independent application developers in the past, including tools such as the templating system Quickly and the GUI revision control utility Ground Control. The App Developer site represents a consolidation of these earlier efforts, with a heavy dose of documentation linked in for good measure.

The nickel tour

Much of the documentation content on the App Developer site consists of links to upstream "official" sources, which can seem a bit confusing when the official source is a page hosted at a different ubuntu.com subdomain. The layout, however, does a good job of splitting up a wide range of topics and organizing them coherently. The "Get Started" section introduces the development environments recommended for writing Ubuntu-compatible applications. Quickly (and with it, PyGTK) comes first, but there are separate sections for Qt Creator, Eclipse, and MonoDevelop. At the moment, the non-Quickly IDEs are sparse in their documentation, relying on external links, but there are some on-site resources, so perhaps the library will expand over time. There also seems to be an unspoken emphasis on developing GUI applications, which is perhaps to be expected for a desktop-oriented distribution.

The "Resources" section is much larger; it encompasses documentation for the current Ubuntu architecture, plus language references (ranging from C to QML to Vala), help for project maintenance tasks (such as hosting and packaging), and tutorials. By volume alone, this is probably the most useful portion of the site. Some of the material is little more than links to projects' external home pages, but even then, the mere act of categorizing and listing the official sites is helpful. After all, above the Linux kernel and low-level toolkits, it may not be obvious to a third-party developer how the various distributions differ from one another. The Resources section lays out precisely what APIs and toolkits ship with (presumably the current version of) Ubuntu, including widespread offerings like OpenGL and D-Bus, but Ubuntu's original projects as well: Application Indicators, the Unity shell, uTouch, etc.

The project maintenance tools section focuses on two of Ubuntu's official choices, Launchpad and Bazaar, which is to be expected, but also includes a variety of other tools created elsewhere, such as Glade and Qt Designer. The thinnest content section is tutorials, which consists of just three original resources right now (four if you count the Quickly tutorial), although the project is soliciting for new submissions in multiple spots around the site. There are a few places where the various categories appear to overlap with each other (for example, the Ubuntu Developer Stack and Ubuntu Platform view repeat a lot of information). On the whole, though, it does not take long to navigate to anything, and there do not seem to be any large pieces overlooked. There are some APIs and frameworks that clearly need more information, for example there does not seem to be any Xine framework documentation on the site, but then again there does not seem to be any Xine documentation anywhere else to which one could link. Even the "official" hacker's guide describes itself as "a pretty free-form document containing a loose collection of articles describing various aspects of xine's internals."

"Publish" is the most specialized section, because it focuses on the process of getting an application reviewed and approved for distribution through USC. Within Ubuntu, USC presents a categorized application directory to users in a GUI installer and is meant to provide a simpler interface to searching for and installing distribution-supplied applications than a full-featured Apt front-end. It is also meant to handle the installation and removal of one-off .deb packages. The USC service provides a way for third-party developers to get their work into the USC application, while keeping it distinct from the official Ubuntu project repositories. As outlined on the site, the process involves registering an account (which is subsequently accessible via the "My Apps" tab on the App Developer site), uploading installable packages and metadata, and (if desired), setting a price. Many of the for-pay offerings seem to be cross-platform games, although not all. All of the submissions are reviewed by an Applications Review Board. The Ubuntu wiki outlines the review process in greater detail, and the board itself will be maintaining a public mailing list and holding open meetings.

Finally, the "Community" section of the site links together a set of development community resources, including lists, IRC channels, and blogs, plus information on application developer events, and an invitation to join the Applications Review Board. Notably, this section of the site is for the application developer community, not the broader Ubuntu user or contributor communities. As such, it does not deal with users' questions, installation or help topics, or many of the other Ubuntu project lists and IRC outlets.

Chapter two

As of press time, a few short weeks after its initial launch, there are areas of the App Developer site that need fleshing-out, but the effort has done an excellent job of building a tightly-focused resource for independent software developers — a task that could easily succumb to feature-creep. For example, although I would like to see the site offer more support resources for non-coding tasks like translation, that subject is already covered in Launchpad. As is, the App Developer site defers to existing documentation, and adding in a discussion of translation tools would duplicate information. Similarly, many community-based translation efforts are coordinated by Ubuntu's LoCos. While linking the "Community" section of the App Developer site directly to those groups might put them in touch, it would also begin to blur the line between developing an independent application and working on the Ubuntu distribution itself.

In its present, streamlined form, the site reaches out to an audience for whom — as far as I am aware — the other large distributions are not building resources. Fedora's only developer documentation is geared towards becoming a contributor to the distribution; there are tidbits that would be helpful to independent application developers, but they are scattered across the project's massive wiki. OpenSUSE comes closer, as it discusses the setup of private projects (particularly in the context of using the Open Build Service), but it is still primarily aimed at distribution collaborators. This is not to suggest that providing contributor portals is bad, it is simply a different group. As the Ubuntu site shows, there are a number of paths that new developers may be on: some may not have extensive experience developing for (or even using) desktop Linux, others may be new to development altogether. Even the simple architecture block diagram provided on the platform overview page helps orient a new developer.

I noticed that GNOME recently added a similar architecture diagram to its developer site (and went one better by making it clickable); KDE's is much wordier, but it, too is reaching out to developers unfamiliar with its stack. As David Nelson recently argued on the Document Foundation mailing list, global design documentation is essential to making a free platform complete: "I would like to put it to you that no software source code is truly open until it has been rendered as understandable as possible to as many people as possible." One of the many reasons that is true is because it lowers the barrier to entry — even if the newcomer is working on a stand-alone application, not contributing to the project core.

Planella described the App Developer site as part of the distribution's ongoing effort at "making Ubuntu a target for app developers." Of course, Canonical does use USC's ability to offer paid applications as one of its revenue sources — the company charges developers a 20 percent cut of the revenue collected for paid application sales. That is cheaper than the 30 percent cut charged by both Apple and Amazon (not including the annual fee both of those companies charge to join their developer programs). A detailed FAQ explains the commercial application process in more detail. For free applications, the primary benefits of distributing a package through USC (rather than, say, a PPA) are the discoverability of USC's application directory and its simplified installation.

But the site is not geared solely towards getting more applications into USC. The Canonical Design Team's blog post about the launch emphasized more of the community-oriented features, which is presumably of greater interest to those writing open source applications. Whether a visitor is writing open or closed applications, the bulk of the site consists of informational resources.

I hope that the site does continue to "grow organically" as Planella suggested, with much-needed tutorials, but also encompassing more tools. Naturally, Launchpad is the best fit for developers looking to deliver typical applications on Ubuntu desktops (if for nothing else than the single sign-on and simplicity of personal package archives), but a strong argument could be made that the App Developer site ought to include resources for Gitorious or GitHub as well, and perhaps explore server-side applications. I would not venture to suggest how best the site can attract high-quality tutorial-writers, but I suspect that inserting "send in your tutorial" banners on the pages will not be sufficient on its own. Ultimately, then, the App Developer site is a good model for other distributions and large projects to look toward with an eye on how they can tailor the idea to their target developers.

Comments (1 posted)

Brief items

Distribution quotes of the week

Clearly, the community has spoken. Yes, [Beefy Miracle] is a silly name. But it's no sillier than Slutty Salamander or whatever the latest Adjective Animal from Ubuntu is. And let's face it, there have been some less-than-awesome names in the previous 16 Fedora releases. Opponents of the name (and there are many, from what I can tell) can take solace in the fact that they'll no longer have to hear anyone lobby for it. And the rest of us will just have to get to work trying to figure out what names to suggest for Fedora 18.
-- Ben Cotton

OK so Beefy Miracle will be F17. Could we have this be the last release name, please? I am not sure that release names really fire anyone up for our release cycles as our audience is much more oriented on engineering bling than marketing buzz :). [And really how many double entendre jokes will we have to deal with this?]
-- Stephen Smoogen

Comments (none posted)

CyanogenMod 7.1 released

The CyanogenMod 7.1 release is out. It includes support for a lot of new devices, along with the ability to revoke permissions from applications, touch-to-focus and timer support in the camera application, and a ton of new configuration options. "As we continue to grow and improve CM, we are starting to see support from the industry grow- something that was unheard of previously. Recently, Sony Ericsson assisted our developers by providing over 20 devices, technical assistance, and compatible hardware drivers. CM-7.1 now has support for all recent SEMC devices thanks to this effort. Various other vendors have reached out to us, but we understand that it is still somewhat of a difficult situation. We will soon be providing a porting guide and some information on how vendors can get involved with the project and how/why it will benefit them."

Comments (9 posted)

Debian 5.0.9 released

The Debian project has announced the 5.0.9 point release for its oldstable distribution, Debian GNU/Linux 5.0 (lenny). "Please note that this update does not constitute a new version of Debian GNU/Linux 5.0 but only updates some of the packages included. There is no need to throw away 5.0 CDs or DVDs but only to update via an up-to-date Debian mirror after an installation, to cause any out of date packages to be updated."

Comments (none posted)

openSUSE announces first public release of openQA

The openSUSE project has announced the release of openQA 1.0, an automated testing framework. "openQA is the only comprehensive testing tool which can run tests on every level of the OS, from core functionality like the bootloader and booting the kernel up to testing applications like Firefox and LibreOffice. It shows the results in a convenient web interface and allows testers to see screenshots and even videos of the issues found. openQA is used to run nightly tests of the 'Factory' development repository for the upcoming openSUSE 12.1 release. openQA is available under the GPL version 2 or later." There are two software pieces to openQA: OS-autoinst and the web interface. OS-autoinst right now supports Fedora, Ubuntu, Debian, FreeBSD and even OpenIndiana. The web interface is openSUSE specific right now, but work is underway to make the entire tool distribution agnostic.

Full Story (comments: 10)

Distribution News

Debian GNU/Linux

bits from the DPL for September 2011

Stefano Zacchiroli presents an update on his Debian Project Leader activities during the month of September. Topics include the Wheezy release (scheduled for June 2012), upcoming sprints, trademark policy and other legal issues, various discussions on maintainers/porters responsibilities, length of the DPL term, and much more.

Full Story (comments: none)

Fedora

Results of the voting for the Fedora 17 release name

The Fedora project has announced the results of the election regarding the release name for Fedora 17: for better or worse, it will be called "Beefy Miracle." Suffice to say that the reaction on the mailing lists is not entirely positive. For those wanting to learn more, a page with the history of the name has been posted.

Full Story (comments: 30)

Ubuntu family

Ubuntu Chromium repository note

Sitsofe Wheeler notes that the Ubuntu Chromium repositories hosted on Ubuntu's launchpad are not getting updated. "It raises the eternal question about where to get your software when it is packaged by volunteers and the issues that surround branding (should most users be using a 3rd party repo rather than Google's repositories? Is the rapid pace of updates too much for distros to keep up with? How should expectations be managed?)."

Full Story (comments: none)

Newsletters and articles of interest

Distribution newsletters

Comments (none posted)

Neary: What community?

Dave Neary takes a look at Tizen in terms of its goals for the "Tizen community". He is concerned that the project is setting itself up for failure. "For Tizen, I see between three and five different types of community, each with different needs, and each of which can form at different stages in the life-cycle of the project. Trying to "sell" the project to one type of community before the project is ready for them will result in disappointment and frustration all round — managing the expectations of people approaching Tizen will be vital to its long-term success, even if it opens you up to short-term criticism. Unless each of these communities is targeted individually and separately, and at the right time, I am sceptical about the results."

Comments (none posted)

Sabayon Linux 7 arrives with experimental Fusion kernel (The H)

The H takes a look at the release of Sabayon Linux 7. "Sabayon Linux 7.0 is based on the 3.0 Linux kernel and includes a choice of either GNOME 3.2, KDE 4.7 or Xfce 4.8 as the desktop environment; the Xfce edition of Sabayon has been promoted to a non-experimental release. An experimental Fusion kernel is available as an option after install. The developers say that it is similar to Zen Linux kernel sources, calling it their "Sabayon-flavoured Linux kernel sources on steroids". It includes the Brain Fuck Scheduler (BFS), the BFQ I/O scheduler, experimental patches for DRM and Btrfs, Reiser4 and new wireless-next drivers."

Comments (none posted)

Page editor: Rebecca Sobol
Next page: Development>>

Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds