Help shaping up Ubuntu Touch by joining the core apps development teams

Community-driven apps that will power the next million phones

The Ubuntu Core Apps project started as an initiative born out of the initial Ubuntu Touch announcement, with a call to our community to participate in building the core set of applications which will be considered for shipping on Ubuntu phones.

With this, we started an exciting project that provides a unique opportunity for community members to create Free Software that could run on millions of handsets.

If you’re running Ubuntu Touch on a device, you can already see the results of the work our amazing volunteer developers have been doing: Calculator, Clock, Calendar, Weather, Terminal, File Manager… these apps and more are part of this project. Together with the Canonical designers and other community designers, we’ve also got a solid UX and design story for our applications.

In essence, each core app development team organizes their work and time in the way that works best for them, where the Canonical Community, Design and Engineering teams participate in several different areas:

  • Development infrastructure
  • Engineering management
  • Community mentorship and support
  • Design guidance

With this post I’d like to share how any developer can contribute to core apps and join the core dev teams. It’s not only an opportunity to shape up Ubuntu Touch, but also to work in a truly open development environment, with the best Open Source developers and designers out there!

Participating in the core apps project

Getting started to contributing to core apps is just a few minutes away. Here are some really easy steps for developers to get all set up.

Step 1: install all core apps

While some of the apps are already installed on the Ubuntu Touch image, you’ll be doing your development on the desktop. As part of the convergency story, core apps run equally well on phones, tablets or desktops, so the first step will be to get familiar with them and do some dogfooding.

  1. Open a terminal by pressing Ctrl+t and type the commands below, followed by Enter.
  2. Install the Ubuntu SDK: sudo add-apt-repository ppa:canonical-qt5-edgers/qt5-proper && sudo add-apt-repository ppa:ubuntu-sdk-team/ppa && sudo apt-get update && sudo apt-get install ubuntu-sdk
  3. Install the core apps: sudo add-apt-repository ppa:ubuntu-touch-coreapps-drivers/daily && sudo apt-get update && sudo apt-get install touch-coreapps

If you get stuck here, check out the SDK’s getting started page or ask on Ask Ubuntu

At this point you’ll be able to launch any of the core apps from the Dash.

  • Try opening the Dash clicking on the Ubuntu button in the Launcher, and type the first letters of each one of the apps to launch them. You should now be able to install:
    1. Calculator
    2. Calendar
    3. Clock
    4. Document viewer
    5. Dropping Letters
    6. Email
    7. File Manager
    8. Music
    9. RSS Reader
    10. Stock Ticker
    11. Sudoku
    12. Terminal
    13. Weather

Step 2: pick an app and find something to work on

Once you’ve road-tested all of the apps, you’ll have a good overview of their functionality, and where you think you can help. At this point, the best thing to do is to pick an app you’re interested in contributing to and find more about it:

  1. Go to the core apps overview page
  2. Click on the app you’re interested in. This will show you:
    • The public project where the app is being developed and where the code is hosted
    • The development team who is writing the app
    • The IRC channel where to discuss about the app’s development in real time
    • The blueprint we use to track the items to work on to implement the functional requirements
    • The burn-down chart we use to provide an overview of the status of the work

The best way to get started is to look at the existing code for the app. Here’s how:

  1. If you haven’t already, open a terminal with Ctrl+t and type this command to install the Bazaar revision control system: sudo apt-get install bzr
  2. Get a local copy of the code. Run this command, replacing ubuntu-clock-app by the app you’ve chosen. You’ll find the exact name to replace on the project section of the app’s detail page you opened earlier on: bzr branch lp:ubuntu-clock-app
  3. Start Qt Creator, the Ubuntu’s SDK IDE by clicking the Ubuntu button on the Launcher and typing “ubuntu sdk”
  4. In Qt Creator, press Ctrl+o to navigate to the location where you’ve just downloaded the code to and choose the .qmlproject file to open the app’s project in the IDE
  5. You can now study the code and launch it with either the Ctrl+r key combination or by pressing the big green “Run” button in Qt Creator

Before you start doing any changes in the code, you might want to get in touch with us to ensure no one is already working on what you’re intending to start on. Two good places to look at are:

Step 3: send a merge proposal with your contribution

In our distributed collaborative environment, where thousands of volunteers participate in Ubuntu from all over the world, we use a distributed version control system, Bazaar to manage the code’s revisions.  The code for all core apps is hosted in public projects in Launchpad, the online tool where we do all development.

You can easily do your changes to the code locally, publish them in a public branch and then send a request for the core app development teams to review and merge your code.

Check out the core apps development guide for the full details ›

Many ways to contribute

Although development is where you can make most of an impact at this point, there are many other ways to participate. You can:

Get in touch

We’d like to hear from you!. If you’ve got QML programming skills and would be interested in joining one of the core apps teams, get in touch with Michael Hall, David Planella or Alan Pope and we’ll gladly guide you in the first steps to becoming a core app dev.

You can also join any of the public IRC core app development meetings.

Looking forward to welcoming you in the core apps project!