Here in the Ubuntu family we have a burning ambition to create Operating Systems for Desktop and Server that is simple, easy to use, available in your language, and entirely free. We believe in technological freedom, open standards, and breaking down the digital divide.
Part of delivering this vision is to provide a wide variety and selection of apps; people love and need apps to do their work. Fortunately we have a stunning developer platform to harness, we have just needed to focus our efforts on improving the awareness, accessibility, usability, and delivery of that platform.
In the Ubuntu 11.10 cycle we have performed a lot of work to ease how you can create apps for Ubuntu and how you can get your apps in the *Ubuntu Software Center* and available to millions of Ubuntu users.
Ubuntu 11.10 is a great platform for creating and delivering applications. We provide:
* **A powerful platform** – Ubuntu provides a power development platform out of the box. Powerful developer tools, comprehensive audio/video/graphics support, support for [integrating with Ubuntu One](https://one.ubuntu.com/developer/), and much more means that whatever the vision for your app in your head, you can deliver it in Ubuntu.
* **Flexible Development Choices** – in Ubuntu we don’t force you into a box with your choice of development framework, but we instead have a variety of powerful options available. Whether you want to write your apps in Python with [PyGTK and Quickly](https://developer.ubuntu.com/get-started/), write them in [C++ and QML with the Qt framework](https://developer.ubuntu.com/get-started/qt-creator), or other solutions, we have options to suit all tastes.
* **Collaborative Development Tools** – writing the first cut of your app is only the beginning. If you are writing an Open Source app we also have a comprehensive collaborative development tool called Launchpad available which allows you to collaborate around code, bugs, planning features, translations, providing support, building packages, and more.
* **Simple Experience for Your Users** – Ubuntu provides an easy to use Ubuntu Software Center that is filled with different apps across a wide range of genres, complete with ratings and reviews, and many can be tested before they are downloaded. Your app will appear seamlessly in the Ubuntu Software Center. When a user chooses your app it is installed effortlessly.
* **We support Open Source and Commercial Apps** – want to sell your app in the Ubuntu Software Center? No problem, we provide a means to handle the app payments as well as reports for how many sales you have made. Want to give your app away for free? No problem, you can deploy your Open Source apps in the Ubuntu Software Center too!
So let’s talk about how all this works.
## Creating Your App
To create your app, you should first go to the freshly released [developer.ubuntu.com](https://developer.ubuntu.com):
developer.ubuntu.com includes everything you need to get started.
There you can see a video tutorial for [creating an Ubuntu app in five minutes](https://developer.ubuntu.com/get-started/). You can also find [resources](https://developer.ubuntu.com/resources/) including API documentation and tutorials for the platform, developer tools, and more.
If you are creating an Open Source app it is recommended that you upload your application to Launchpad:
Launchpad provides a raft of features for working together on your apps.
Launchpad provides a variety of different features for working with others around your apps:
* **Working On Code** – Launchpad and Bazaar distributed versional control strip away the barriers to contributing to your project. In just a few key strokes anyone can create their own local branch of your trunk with full version control. When they’re ready, they can upload their branch to Launchpad and propose it for merging back into your trunk. Code review — by web and email — gives you a public forum to discuss and approve or reject the merge. You can even use Launchpad to import Git, CVS and Subversion repositories into Bazaar branches.
* **Bug Tracking** – Free software communities often share code, meaning the same bugs can crop up in different contexts. With Launchpad, you can share bug reports, statuses, patches and comments across project boundaries. You can even share bug data with other trackers, such as Bugzilla and Trac. There’s also everything else you need in a bug tracker: web, email and API interfaces, links between bugs and fixes, team-based delegation and more.
* **Translations** – See your software translated by a community of over 47,000 people working in 293 languages. Launchpad makes translation easy for everyone. Translators get a simple web interface, with automatic suggestions from a library of more than 16 million strings. You, as project owner, decide the balance between openness and quality. And you get standard GNU GetText files for integration with your software.
* **Build Ubuntu Packages** – Build and distribute Ubuntu packages using your own personal APT repository, hosted by Launchpad. Whether you’re publishing experimental builds, backports or betas, your Personal Package Archive lets end-users install your packages using the tools they already know and with automatic updates.
* **Create Feature Specifications** – Community planning for your project’s road map. Anyone can use Launchpad to register a blueprint for your project, while you decide the priority and time-scales. Target chunks of work to forthcoming releases, see who’s working on them and track their progress.
* **Support and Questions** – Track help requests just like bug reports, with community support contacts, statuses and email notifications. When you come across common questions add them to your FAQ library and you get a searchable knowledge base for free. If a support request is actually a bug, no problem: one click and it becomes a bug report.
A powerful feature in Launchpad is the *Personal Package Archive* support. This provides a fantastic way of releasing your software to a set of testers so you can resolve bugs before you propose it for inclusion in the Ubuntu Software Center.
## Getting Your App Into Ubuntu
With your Free or Commercial app ready to make available to millions of Ubuntu users, you can use the [Ubuntu MyApps Portal](https://myapps.developer.ubuntu.com/dev/) to propose your application, keep up to date on it’s submission status, and in the case of commercial apps, see how many sales you have made and how much revenue it has generated. You can find out full details of how to add your app and how the submission process works by [clicking here](https://developer.ubuntu.com/publish/).
Getting your app in Ubuntu has never been easier!
Commercial applications will be reviewed by the Canonical apps team and free apps will be reviewed by the Ubuntu community Application Review Board team. When your app passes some suitability assessments (e.g. ensuring it runs, installs correctly, does not include illegal or illicit content) it will be approved and added to the *Ubuntu Software Center*:
Installing your app on Ubuntu is only a click away for your users.
If you want to find out more about selling your apps on Ubuntu, be sure to see the [FAQ](https://developer.ubuntu.com/publish/commercial-software-faqs/).
## Getting Help
We want to provide a strong, supporting environment for developers. Be sure to see the following resources:
* **Mailing List** – [join](https://lists.ubuntu.com/mailman/listinfo/ubuntu-app-devel)
* **Support Channel** – [join](https://webchat.freenode.net/?channels=ubuntu-app-devel)
* **Ubuntu Developer Blog** – [subscribe](https://developer.ubuntu.com/?&feed=rss2)
* **@ubuntuappdev on Twitter** – [follow](https://twitter.com/#!/ubuntuappdev)
Be sure to share your ideas, comments, and news about apps that you are working on to bring to Ubuntu!