LoCodeChallenge

The Challenge

The LoCode Challenge is an initiative to promote development projects coming from LoCo Teams and specifically for local users.

What it's all about

The premise is simple, build locally relevant apps and scopes for Ubuntu users who live, work and play in the same place you do. This means targeting local data sources or web services, focusing on things with a local geographic interest. Such local-focused apps and scopes will make the Ubuntu user experience much more relevant and personal.

Why we're doing it

There are two major changes coming to the Ubuntu ecosystem, the new Ubuntu SDK and the 100 Scopes project. Both of these bring an opportunity for LoCo Teams to get involved with development for Ubuntu. Not only will this benefit the SDK and Scopes project by giving them more attention, it also gives LoCo Teams an opportunity to show off their talents and interests by shining some of that attention on things of a more local interest.

Who can get involved?

Absolutely anybody can get involved. If you are a member of a LoCo Team, or have one in your area, you should see if any other members want to join you in creating something. You can use this project to give your whole team something to collaborate on. It's not just for developers either, if there are designers, project managers, or beta testers in your team, there will be something for them to do.

Even if there isn't a LoCo Team near you, we still want to see apps of interest to your area. If you find someone near by who also wants to contribute, that's a good enough reason to form a LoCo Team of your own!

Choose your project type

SDK Apps

Using the new Ubuntu SDK you can write applications that will run on the Ubuntu Desktop as well as on future Ubuntu phones and tablets. The SDK has also been optimized for touch-based input devices and provides a form-factor independent UI toolkit that lets your app easily scale to different screen sizes, orientations and resolutions.

Using the Ubuntu SDK, you can write apps using the declarative QML (Qt Modeling Language) to quickly build your interface, and Javascript to add backend functionality. The SDK also includes extensions to QtCreator that provide a variety of Ubuntu App templates to get you started, as well as tools for packaging and running your app on a supported Ubuntu Touch device.

To install the Ubuntu SDK, browse the API documentation, and get started writing your first app, go to the Getting Started page on the Ubuntu Developer Portal.

Unity Scopes

Ubuntu's Unity shell provides a unique way of integrating a variety of local and online content directly into the user's desktop experience via the Unity Dash. The Dash is the primary way of finding content (applications, files, images, etc) in Ubuntu, and it allows any number of Scopes to be added to provide every imaginable type of content.

To learn more about Unity Scopes and how to write your own, see the Scopes Tutorial on the Ubuntu Developer Portal.

Getting started

Running your Project

You can organize your project and team however you want, but we encourage you to make use of Launchpad and Bzr, the official development tools for the Ubuntu project. Launchpad is free to use for any open source project, and provides team management, a bug tracker, source code and package hosting.

Create a Project

Anybody can register a new project in Launchpad, just provide a name and short description of your project, as well as the license it will be released under. If you select one of the open source licenses, you can use all of Launchpad's features for free. Once your project is registered, you can enable bug tracking, translations support and more.

Register your project

Form a Team

Launchpad is built for collaborating, and creating a team allows multiple people to manage a project and it's source code. While anybody can submit a merge proposal to your project, only the Maintainer or Driver for the project can approve them and commit them to the main development branch. By creating a team and making that team the driver for your project, you can spread that responsibility to more than just yourself.

Create your Team

Revision Control with Bzr

Bzr is a distributed version control system, much like Git or Mercurial. Launchpad is built around Bzr, and integrates Bzr branches into your project's development workflow. Not only does it provide easy branching and merging, it lets you associate a branch commit to a bug report, allows for easy tracking and review of merge proposals, and much more.

Learn more about using Bzr with Launchpad

Package hosting with PPAs

In addition to hosting your source code, Launchpad can also be used to host installable .deb packages for your app. This makes it easy for users to install and keep up to date with new versions of your app. Your project's team can create one or more PPAs (Personal Package Archives) for your app, and push new versions whenever they are ready.

Learn more about package hosting on Launchpad

The Projects

Promoting your Project

Even if your app is focused on local use, we still want to let the world know that you're making it! So be sure to blog about it, post it to our App Developers community on Google+, submit it to /r/Ubuntu on Reddit, tweet it, Facebook it, however you can spread the word.

And, of course, add your project to the table below so that other LoCo teams taking up this challenge can get inspiration and motivation from you!

List of projects

Add your project to the list

LoCo Team

Project

Status

LoCodeChallenge (last edited 2013-07-10 20:24:15 by mhall119)