elementary OS is a massive effort to build the best, most beautiful, and easiest desktop computing platform. So far we’ve created one of the most popular icon sets, the meticulously crafted (and equally popular) elementary theme, a suite of cohesive well-designed apps, the Granite development library to make building beautiful apps easier, and much more. Today it’s time to announce the next step for the elementary platform: AppCenter.

The Origins of AppCenter

AppCenter began three years ago simply as a user interface experiment of Daniel Fore. While it was frequently brought up behind-the-scenes, it was never fully realized.

Fast forward to May, 2012: Lubuntu developer Stephen Smally contacted elementary with information regarding a new fast software center for the Lubuntu project. He had seen our efforts and we agreed to collaborate on a backend implementation on which we could each build our preferred frontend. The backend project officially hit Launchpad in July, 2012 as libappstore and frontend work picked back up in AppCenter.

Before AppCenter

It’s no secret that much of the underlying technology in elementary OS has been inherited from Ubuntu; elementary OS is forged from the same DNA. One element that we’ve inherited in particular is the vast array software and repositories.

These repositories contain countless apps, tools, and libraries, but they've also acquired a few leftovers over the years. There’s a lot of excellent software, but there’s even more cruft. The experience so far in elementary OS with Software Center has been subpar: users end up being flooded with apps that don’t work, apps that look bad, apps intended to be run on an entirely different platform, etc. There’s no easy way to tell if an app will work well or is well-designed.

First Steps: Version 0.1

AppCenter exists today as an app with an early 0.1 release. This means it doesn’t have every feature we hope to include, but that it can be used as a solid and fast place to get apps for elementary. It currently includes the basic features which are necessary for a good user experience such as (obviously) installing/removing apps, displaying screenshots, and performing simple searches. The user interface is very fast and navigable due not only to the excellent design, but the technologies upon which we have chosen to build.

An important part of AppCenter is the aforementioned development library libappstore. It’s designed to enable developers to write application stores by providing a high level PackageKit interface which puts any required information in a database. PackageKit itself is the core of both libappstore and AppCenter: it allows us to develop AppCenter in a way that is largely distro independent, meaning it can potentially be made to install/remove applications on any Linux-based desktop operating system.

Next Steps

This early release is only the first step toward the perfect app store for elementary OS. We won’t be including AppCenter in Luna by default, but we plan to include it in the following release of elementary OS.

Work is already underway on implementing features such as ratings, reviews, and featured apps. We’re also making AppCenter even faster with improvements to libappstore’s database and app info management, partially due to the migration to the FreeDesktop.Org AppStream initiative. This not only gives us a speed boost in AppCenter, but allows us to collaborate with other developers and use standardized open technologies.

The Near Future

At this point, we’ll have a solid app to handle our app installations. But what’s next? With AppCenter, we’re planning on flipping the currently poor Linux desktop app-install experience around.

We’re working on a review process that will cover both new apps and apps that are already in the repositories. Apps will undergo a combination of automated and hand testing, then receive a score based on the results. Apps that pass a certain threshold will get added to a whitelist and published in AppCenter, while apps that fail will be held back. We’ll publish the results, allowing the developers to know what they need to fix in order for the app to get into the store and in front of users.

Afraid your favorite app won’t make the cut? Fear not! Non-whitelisted apps from the repositories will still be installable; you’ll be able to just search for the package name in AppCenter and find it.

We also plan to handle app updates right within AppCenter, allowing users to see exactly what app is getting updated, how big that update is, etc. Of course, if users prefer, they will be able to enable auto-updates so their apps are always up-to-date.

This whole process will give the users a better experience: a curated selection of high-quality open source apps that they can be confident will work well on their system, as well as a centralized location for downloading those apps and their updates.

Farther into the Future

This is only the beginning. We’re working hard to build an even better future both for app developers and our users. While we don’t have exact details to announce today, know that we’re working on new ways for open source developers to both distribute and monetize their projects.