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
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)
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)
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)
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
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
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
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
Comments (none posted)
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)
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>>