Canonical Voices

Posts tagged with 'english'

Tim Peeters

Return of the Ubuntu UI Toolkit

Next month will be the release of Ubuntu 15.04 (Vivid Vervet) for desktop, and this version of Ubuntu will soon become the version that will be installed on Ubuntu phones as well. With the release of 15.04, we also release a new version of our UI toolkit: Ubuntu.Components 1.2. Below are some of the new features that it will have.

Hasta la vista, toolbar!

In Ubuntu.Components 1.1, the bottom-edge toolbar was replaced by a new header that can be used for navigating the app and trigger actions. Actions that used to be in the  toolbar were automatically moved to the header, and a useDeprecatedToolbar property was added to the MainView for developers that liked to keep the toolbar. In 1.2, the toolbar and useDeprecatedToolbar property are definitely gone which enabled us to clean up the MainView and header code, so that we can give you a fresh new visual design and more control over the looks and behavior of the header very soon.

One ListItem to rule them all

ListItem leading actions

There are many different list items in Ubuntu.Components.ListItems, but they are not always easy to customize and the performance when you use thousands of them in your app is not optimal. Therefore, we now introduce the all-new ListItem component. It replaces all of the old list items, is super-fast (even when you have ten thousands of them), you can swipe them left and right to reveal actions, they offer selection mode (to quickly select a subset of all the list items), and the user can re-order the items in a list. Awesome :)


Ubuntu Shape up (doo doo doo)

Image with transparent background in UbuntuShape

The UbuntuShape is now in the best shape ever! It has been refactored to optimize performance (for example, the rendering is now "batched" so even a lot of them can be rendered fast), semi-transparent images and colored backgrounds are supported, you can use all the fill modes and tiling that the Image component supports, there is 2D transformation support, and the implementation was made extensible so that new features can be added more easily.

Here is the code for the app that was used for the two screenshots above:

import QtQuick 2.4
import Ubuntu.Components 1.2

MainView {
    //useDeprecatedToolbar: false // terminated

    Page {
        title: "Return of the UITK"

        ListItemActions {
            id: exampleLeadingActions
            actions: [
                Action {
                    iconName: "tick"
                Action {
                    iconName: "delete"

        ListView {
            anchors.fill: parent
            model: 10
            delegate: ListItem {
                id: listItem
                Label {
                    anchors {
                        left: parent.left
                        verticalCenter: parent.verticalCenter
                    text: "List item "+index
                leadingActions: exampleLeadingActions

                UbuntuShape {
                    anchors {
                        right: parent.right
                        bottom: parent.bottom
                    backgroundMode: listItem.highlighted ?
                                        UbuntuShape.VerticalGradient :
                    backgroundColor: listItem.highlighted ?
                    source: Image {
                        source: "logo.png"
                    sourceFillMode: UbuntuShape.PreserveAspectFit

Besides these new features, we fixed a whole bunch of bugs and we are working hard on the next version of the UI toolkit that we will be blogging about in the near future, so stay tuned for more good stuff!


Read more
Zoltán Balogh

So if you are new to QtCreator the first thing that freaks you out will be the concept of Kits. Yes it does look complicated, big and you might want to ask why do I need this.

Right, let’s take few steps back and look at the bigger picture.

Most programmers start their hobby or carrier with basic (not that one) pc programming. You have the compiler and libraries on your machine, you start hacking around with your code and once you think it will pass at least the syntax check you go to the terminal, compile the code and be happy when you see the binary executable. If it runs without segfaults then you start to gain confidence and you are the happiest kid on Earth once the program does what you coded it for.

That is a fairly simple and common scenario, still it has all the components what actually make an SDK. And i guess you know that in the SDK, the K stands for Kit.

Let’s continue with this thinking. You want to show the program to your friends. That is nothing strange, even coders are social beings. If your program is using dynamically linked libraries from the system then your friends need a bit of luck to have the very same system libraries on their machine as you have on yours. Not to mention that you compiled your program for one specific processor architecture and nothing guarantees that your friends have the same architecture as you had.

So, we are safe and good as long our program stays on our computer but trouble with libraries, binary compatibility and processor architecture will pop up when we want to move our program around without recompiling it again. And imagine, we are still talking about PC to PC porting. Let’s raise the bar.

How does it go when you want to write an application for a mobile device? Most likely your computer is an x86 based PC and these days most mobile devices have some sort of ARM processor. So, here we go, our native local compiler what made us so happy just few paragraphs back is now obsolete and we will need a compiler what can produce an ARM binary for the specific device. It could be armv6, armv7 or whatever exotic ARM processor your target device is built with. Good, we now have a compiler but our code is still using a bunch of libraries. In the Ubuntu world and specially with the ultimate convergence on our roadmap this part of the story is a bit easier and will get even better soon. But still if your PC is running the LTS Ubuntu release (14.04 right now) you do not necessarily expect the same libraries and header files being present on your machine as on a target device what is on 15.04 or even newer.

I guess at this point many would say with a disappointed tone that after you learned that your good old compiler is obsolete now all your locally installed development libraries and header files are useless too. Think of Borat saying “nice”.

Okay, so we are left without compiler, libraries and header files. But they should come from somewhere, right?

And that is where the Kits come into the picture. The official definition of the QtCreator Kits sure sounds a bit academic and dry, so let’s skip it. In short, Kits are the set of values that define one environment, such as a device, compiler, Qt version, debugger command, and some metadata.

I love bicycling so I use cycling analogies whenever it is possible. Imagine that you are in the mood to have a ride downhill in the forest. You will take your mountain bike, knee and elbow pad, lots of water, some snacks and your clothes what take dirt better, a massive helmet and your camera. If you just cycle to your office you take your city bike, lighter helmet and you put on regular street wear. Different target, different set of equipment. How cool it would be just to snap your finger and say out loud “ride to the city”  and all the equipment would just appear in front of you.


That is exactly what happens when you have Kits set up in your QtCreator and you are building your application for and running them on different targets.

QtCreator is an IDE and developers who choose to work with IDEs do expect a certain level of comfort. For example we do not want to resolder and rewire our environment just because we want to build our project for a different target. We want to flip a switch and expect that the new binaries are made with a different compiler against a different set of libraries and headers. That is what QtCreator’s target selector is for. You simply change from the LTS Desktop Kit to the 15.04 based armhf target and you have a whole different compiler toolchain and API set at your service.

At this point Kits looks pretty and easy. You might ask what is the catch then. Why IDEs and SDKs do not come with such cool and well integrated Kits? Well there is a price for every cool feature.  At this moment each Kit in ready for action state is about 1.7GB. So kits are big and the SDK does not know what Kits you want to use. What means is that if we want to install all kits you might use the SDK would be 8-10GB easily.

Why kits are so big and can they be made smaller?

That is a fair question I got very often. First of all, the kits are fully functional chroots in the case of the Ubuntu SDK. It means that other than the compiler toolchain we have all the bells and whistles one needs when entering a chroot. Just enter the click chroot and issue the dpkg -l command to see that yes, we do have a full blown Ubuntu under the hood. In our SDK model the toolchain and the native developer tools live in the click chroots and these chroots are bootstrapped just as any other chroot. It means that each library, development package and API is installed as if it were installed on a desktop Ubuntu. And that means pulling in a good bunch of dependencies you might not need ever. Yes, we are working on making the Kits smaller and we are considering to support static kits next to the present dynamic bootstrapped kits.

Alright, so far we have covered what Kits are, what they contain. The most important question is do you need to care about all of these? Do you need to to configure and set up these kits yourself. Luckily the answer to these questions is no.

In the Ubuntu SDK these Kits are created on the first start of the SDK and set up automatically when a new emulator is deployed or a new device is plugged in. Of course you can visit the builder chroots under the Ubuntu and Build & Run sections in the dialog what opens with the Tools->Options… menu. But most of the application developers can be productive without knowing anything about these. Of course understanding what they are is good and if you are into development tools and SDKs then it is fun to look behind the curtains a bit.

Read more
Zsombor Egri

Creating a theme for your application

The theming engine is one of the least documented features of Ubuntu UI Toolkit. While we are preparing to create the third generation theming engine, which will support sub-theming and runtime palette color customizations, there are more and more app developers asking about how to create their own theme for the application itself. There were also questions on how to create a shared theme so other applications can use these themes. But let’s get first the application theming.

The application themes are application specific, and should be located in the application’s installation folder. They can derive from a pre-defined system theme (Ambiance or SuruDark) as well as be standalone themes, not reusing any system defined themes. However this latest one is not recommended, as in this case you must implement the style of every component, which in one way requires lot of work, and secondly it uses few APIs which are not stable/documented.

Assuming the theme is located in a separate folder called MyTheme, the second step would be to create a file called “parent_theme” where you put the URI of the theme your application theme derives from. Your parent_theme would look like

// parent_theme

Now, let’s change some palette values. The way to do that is to create a Palette.qml file, and override some values you want.

// Palette.qml

import QtQuick 2.4
import Ubuntu.Components 1.2
import Ubuntu.Components.Themes.SuruDark 1.1 as SuruDark

SuruDark.Palette {
    normal.background: “#A21E1C”
    selected.backgroundText: “lightblue”

If you want to change some component styles, you have to look into the parent theme and check the style component you want to change. It can be that the parent theme doesn’t have the style component defined, in which case you must follow its parent theme, and search for the component there. This is the case if you want to change the Button’s style, SuruDark theme doesn’t have the style component defined, therefore you must take the one from its parent, Ambiance. So the redefined ButtonStyle would look like:

// ButtonStyle.qml

import QtQuick 2.4
import Ubuntu.Components 1.2

// Note: you must import the Ambiance theme!
import Ubuntu.Components.Themes.Ambiance 1.1 as Base

Base.ButtonStyle {
    // Let’s override the default color

For now only a few style component is exported from the two supported system themes, in case you see one you’d like to override just file a bug. Then there are only a handful of style APIs made stable, therefore overriding the non-documented styles may be dangerous, as their API may change. The stable style APIs are listed in Ubuntu.Components.Styles module and their implementation and unstable APIs are in Ambiance and SuruDark themes.

And finally you can load the theme in the application as follows:

// main.qml

import QtQuick 2.4
import Ubuntu.Components 1.2

MainView {
    // Your code comes here

    // Set your theme
    Component.onCompleted: = “MyTheme”


That’s it. Enjoy your colors!

P.S. A sample code is available here.

Read more
David Callé

Announcing the Ubuntu Porting guide 2.0

In the last few weeks, Ubuntu has reached a major milestone with the first flash sales of the BQ Aquarius - Ubuntu Edition. This is only the beginning of seeing Ubuntu on a wider selection of phones and tablets, and thanks to an incredibly enthusiast porting community, more devices have been part of that show. Some of these skilled porters have even set up their own image server to provide updates over-the-air!

To ease the porting process, the Porting Guide has been updated to reflect the current procedure of enabling new devices. From setting up your dev environment, to configuring the kernel and debugging AppArmor, it covers the main points of making a fully working port. Currently focusing on AOSP ports, it will be extended in due time to detail CyanogenMod-specific processes.

If you are interested in porting, please make sure you provide feedback on any issues and roadblocks that could arise, either on Launchpad or on the ubuntu-phone mailing-list.

Thank you and good work, fellow devices adventurers!

Read more
David Planella

This is a guest post from Jordi Allue, Senior SW Architect at Tuso technologies
In September 2014, Ubuntu invited Tuso Technologies to be one of the first Ubuntu Phone OS developers with a version of Fiabee’s Cloud-Mobile Collaboration, Synchronisation and Sharing App for the new Ubuntu Phone OS. We jumped at the opportunity because it was in line with Tuso Technologies’ cross-platform compatibility strategy and found it to be an interesting challenge. The process was far simpler and faster than we originally expected, and the results exceeded our expectations.

Fiabee is a carrier-grade, enterprise caliber, cloud-mobile Collaboration, Synchronization and Sharing Software-as-a-Service (SaaS). With Fiabee, Telecom Operators, Internet Service Providers and other Managed Service Providers generate new revenues and reduce churn by taking market share away from large OTT App (Over The Top Application) providers.

Ubuntu Phone Apps are created natively or in HTML5 within a WebApp. Fiabee’s existing HTML5 app, which includes CSS3 and Javascript, was the ideal match for Ubuntu Phone.

We started the process by installing Ubuntu’s Software Development Kit (SDK) and making ourselves familiar with it. The installation was straight forward with a simple "apt-get install ubuntu-sdk" instruction. Although we had no prior experience with Ubuntu’s Integration Development Environment (IDE), based on Qt Creator, the tutorials available on Ubuntu’s website helped us create our first HTML5 trial app. Next we tested the app directly on an Ubuntu Phone, getting familiar with Ubuntu’s Operating System (OS) and IDE was the most challenging of the tasks. That said, it only took us a few days to prepare the infrastructure to develop our own app. For those who don’t have an Ubuntu Phone, Ubuntu’s SDK provides a mobile device emulator.

From there on, it was easy to adapt Fiabee’s web application to Ubuntu’s environment. With the help of the SDK instructions and manuals, we integrated the Web app into the development project, ran it on the device and created the deployment package. After configuration, we adapted the visual appearance and operation to Ubuntu’s standards.

We were amazed to find that the functions of Fiabee’s App which are often difficult to adapt were almost automatic with Ubuntu Phone, such as accessing the phone’s file system, interacting with third party Apps or opening documents downloaded from the cloud. This demonstrates that Ubuntu OS is truly “open”. During the last steps of creating the package and uploading it to the Ubuntu App Directory, we had a minor problem with the definition of the App’s security policies but that was quickly resolved with the help of Ubuntu’s App Directory Tech Support team.

From our perspective, bringing Fiabee to Ubuntu Phones was a piece of cake. It was a quicker and an easier experience than we’ve had with other platforms, despite it being new and notably different from the others with its App interaction menu. We were able to carry over all the functionalities of the Fiabee App without losing any, as was the case with other platforms, and without having to invest re-development time. It was as simple as tweeking Fiabee’s existing web app. With Fiabee’s App for Ubuntu Phones, we continue to deliver a good user experience to Fiabee users with a further extended range of mobile devices with which to access our service.

About Tuso technologies SL. Founded in late 2008, with offices in Barcelona, Spain, and Palo Alto, USA, Tuso Technologies develops carrier-grade, enterprise-caliber, cloud-mobile Value-Added-Services (VAS), including Fiabee, Locategy & Open API, selected by leading Mobile Network Operators, ISV and corporations such as Telefonica (Movistar), France Telecom (Orange) , Ono (Vodafone), R Cable, Panda Security, Applus+ among others.

Read more
Victor Palau

Not long back Chris Wayne published a post about a scope creator tool.  Last week, I was visiting bq and we decided with Victor Gonzalez  that we should have a scope for Canal bq. The folks at bq do an excellent job at creating “how to” and “first steps” videos, and they have started publishing some for the bq Aquaris E4.5 Ubuntu Edition.

Here is a few screenshots of the scope that is now available to download from the store:


The impressive thing is that it took us about 5 min to get a working version of the scope.  Here is what needed to do:

  • First, we followed Chris’ instructions to install the scope creator tool.
  • Once we had it set up on my laptop, we run:
    scopecreator create youtube com.ubuntu.developer.victorbq canalbq
    cd canalbq
  • Next, we configured the scope. The configuration is done in a json file called manifest.json. This file describes the content of what you will publish later to the store. You need to care about: “title”, “description”, “version” and “mantainer”. The rest are values populated by the tool:
    scopecreator edit config
    "name": "com.ubuntu.developer.victorbq.canalbq",
    "description": "Canal bq",
    "framework": "ubuntu-sdk-14.10",
    "architecture": "armhf",
    "title": "Canal bq",
    "hooks": {
    "canalbq": {
    "scope": "canalbq",
    "apparmor": "scope-security.json"
    "version": "0.3",
    "maintainer": "Victor Gonzalez <>"
  • The following step was to set up the branding: Easy! Branding is define on an .ini file. “Display name” will be the name listed on the “manage” window once installed, and also will be the title of your scope if you don’t use a “PageHeader.Logo”. the [Appearance] section describes the colours and logos to use when banding a scope.
    scopecreator edit branding
    DisplayName=Canal bq
    Description=Youtube custommized channel
    Author=Canonical Ltd.
  • The final part is to define the departments (drop down menu) for the scope. This is also a json file and it is unique the youtube scope template. You can either use “playlists” or “channels” (or both) as departments. The id PLjQOV_HHlukyNGBFaSVGFVWrbj3vjtMjd corresponds to a play list from youtube, with url=
    scopecreator edit channels{
    “maxResults”: “20”,
    “playlists”: [
    “id”: “PLjQOV_HHlukyNGBFaSVGFVWrbj3vjtMjd”,
    “reminder”:”Aquaris E4,5 Ubuntu Edition”
    “id”: “PLjQOV_HHlukzBhuG97XVYsw96F-pd9P2I”,
    “reminder”: “Tecnópolis”
    “id”: “PLC46C98114CA9991F”,
    “reminder”: “aula bq”
    “id”: “PLE7ACC7492AD7D844”,
    “reminder”: “primeros pasos”
    “id”: “PL551D151492F07D63”,
    “reminder”: “accesorios”
    “id”: “PLjQOV_HHlukyIT8Jr3aI1jtoblUTD4mn0”,
    “reminder”: “3d”

After this, the only thing left to do is replace the placeholder icon, with the bq logo:
And build, check and publish the scope:
scopecreator build

This last command generates the click file that you need to upload to the store. If you have a device (for example a Nexus4 or an emulator ), it can also install it so you can test it. If you get any issues getting the scope to run, you might want to check your json files on It is a great web tool that will help you make sure your json doc is ship shaped!

It is super simple to create a scope for a youtube channel! so what are you going to create next?

Read more
David Planella

Announcing the Scope Showdown winners

We're thrilled to announce the results of the Ubuntu Scope Showdown: a contest to develop a scope in 6 weeks and win exciting prizes. Fleshing out Ubuntu's innovative take at the content and services experience, participants had the opportunity to use the new development tools to create a complete scope from scratch and publish it to the store in just a few weeks.

Contest submissions were reviewed by an international panel of judges including Canonical employees and members of the wider Ubuntu community:

The winner is: Cinema scope

The Cinema Scope by Daniele Laudani is the winner of this Scope Showdown edition. Daniele's scope scored the best judge ratings for its visual appeal, usability, general interest and use of scope features. To him goes the Dell XPS 13 developer laptop preloaded with Ubuntu. Enjoy!

Outstanding runner ups

The quality of all winning scopes was impressive, which resulted in a draw in some of the runner ups. In the end, rather than a tie break, we decided to include an extra prize as a recognition to their outstanding work. And without further ado, we're proud to present the additional winners.

Discerning Duck

Riccardo Padovani, of Ubuntu Core Apps fame, takes home with the Discerning Duck scope the Logitech UE Boom Bluetooth speakers, compatible with the Ubuntu phone.


Developer Bogdan Cuza, with the Mixcloud scope scores a Nexus 7 tablet running Ubuntu with all winner scopes preinstalled.


Sam Segers, with the Places scope, is the winner of an Ubuntu bundle, including:

  • An Ubuntu messenger bag
  • An Ubuntu infographic T-shirt
  • An Ubuntu neoprene laptop sleeve

RSS Feeds

Matthew Jump, with the RSS Feeds scope also wins an Ubuntu bundle including:

  • An Ubuntu backpack
  • An Ubuntu Circle of Friends Dot Design T-shirt
  • An Ubuntu Neoprene Laptop Sleeve

Your Shot

Kunal Parmar, another Core App Developer, wins with the Your Shot scope yet another Ubuntu bundle:

  • An Ubuntu backpack
  • An Ubuntu Circle of Friends Dot Design T-shirt
  • An Ubuntu Neoprene Laptop Sleeve

Scopes everywhere

Congratulations to all winners, and to all participants: everyone did a fantastic job. Given the early adoption of scopes and developer tools, judges and reviewers were particularly impressed by the quality of the submissions.

Remember you can install any of the winner scopes and more from the Ubuntu Software Store. It's now time to start thinking beyond the apps grid and bringing interesting scopes that enable Ubuntu phone users to get the data that matters to them. Looking forward to seeing scopes everywhere!

Get started writing a scope today >

Read more
Michael Hall

The 5 weeks after the Ubuntu Scopes Showdown announcement are coming to an end, it's time to start putting the pencils down and submitting your scopes for the judges to do their reviews. While you've still got two days to fix some bugs and do some final polish, the 3rd of December is the last day for submissions to be accepted for the Showdown. Remember that to qualify, you'll need to:

Register your scope for the contest

Submit your scope to the Ubuntu Software Store

Registering your scope

To register your scope for the judges' review, you'll simply need a couple of minutes to fill in the registration form. It might be worth filling it in advance, even if you are planning to upload your app at the last minute. You can submit the form now and still upload new revisions of your app until the 3rd of December. Register your scope for participation


Submitting your scope

Submitting your scope to the store should also be quick and easy. The upload workflow is exactly the same as for apps, and with automated reviews it takes just a few minutes from upload to your scope being available for everyone on the Ubuntu Software Store. To ensure your scope is discoverable and looks good, you might want to check out the scope upload tips › And when you're ready to start the upload, you can follow the 5-step process to get it published ›

Need help?

If you need help with any of the above, feel free to reach out in any of the channels below:

The Ubuntu App Developers IRC channel

The Ubuntu App Showdown subreddit

The Ubuntu App Developers G+ community

Looking forward to seeing your scopes in the store!

Read more
David Callé

Now that your scope is in a working state, it’s time to get it ready for publication. In this tutorial you will learn how to make your scope look good when the user is browsing the store or the list of scopes installed on the phone.
In the next steps, we are going to prepare a few graphics, edit the <scope>.ini file located in the data directory of your project and package the scope for the store.



Read more
David Planella

Over a week ago, we announced the Ubuntu Scope Showdown: a competition to write a scope for Ubuntu on phones in 5 weeks and win exciting prizes.

Scopes are Ubuntu’s innovative take at revolutionizing the content and services experience. For users, they provide quick and intuitive access to content without the need of loading an app. For developers and operators, scopes provide an easy path to surface their content and customize the UX in a way that is very flexible and integrated.

After the initial contest kickoff, we’ve already had a number of participants blogging, sharing updates and teasers about their work. Here’s a peek at some of their progress.

A variety of scopes

In the words of Robert Schroll, of Beru fame, e-mail apps are just passé. So much that he decided to explore an interesting concept: reading your e-mail with a scope. With a nice extra touch: Ubuntu Online accounts integration.

 Because e-mail apps are so 90s - the Gmail scope

Because e-mail apps are so 90s – the Gmail scope

After listening to one of Daniel Holbach’s mixes, Bogdan Cuza thought they alone deserve a scope, and so the Mixcloud scope was born. The rest, as they say, is history.

Can't get enough of those Balkan Beats - the Mixcloud scope

Can’t get enough of those Balkan Beats – the Mixcloud scope

You don’t know where to eat tonight? No worries, Sam Segers has you covered. Check out his Google places scope to easily find somewhere new to go.

Your cooking skills not up to your date's expectations? The Google places scope comes to the rescue

Your cooking skills not up to your date’s expectations? The Google places scope comes to the rescue

Developer Dan has a treat for all of us movie lovers: the Cinema scope. Features categories and departments, with settings, TV series and genres coming up soon! Check out the details on his blog.

Helping Ubuntu users see what stuff dreams are made of since 2014 - the Cinema scope

Helping Ubuntu users watch stuff dreams are made of since 2014 – the Cinema scope

Riccardo Padovani is bringing the dark horse -or well, duck?- of search engines into Ubuntu. Armed with the DuckDuckGo scope, get results like a pro with “real privacy, smarter search and less clutter”.

Duck is the new black - the DuckDuckGo scope

Duck is the new black – the DuckDuckGo scope

A wishlist of scopes

As Alan Pope and Michael Hall, I do have my wishlist of scopes for content that I’d like to have accessible at a flick of the finger on my phone. Maybe someone of you can make our day?

  • 8tracks scope: I love music, and I love mixes. 8tracks is a music streaming service to listen to the mixes their community members create and to get creative submitting mixes. As an avid mixer and listener, I’d be using this all of the time, especially if it came with Online Accounts integration that showed me content relevant to my interests.
  • Ask Ubuntu scope: the biggest Ubuntu Q&A site. I regularly check the ‘application-development‘ tag there to see any new questions and if I can help a fellow Ubuntu developer (and you should too). It’d be absolutely awesome to get those updates easily on my phone screen, with settings to filter on tags and the ability to upvote/downvote questions and answers.

Not sure what to write a scope for yet? Well, check out the ideas over at the Showdown reddit, or let your imagination run wild with a comprehensive list of APIs to get more inspiration!

A prize for your scopes

It’s not too late to enter the Showdown, you too can write a scope and win prizes! Here are some tips to get started:

Looking forward to seeing the next batch of scopes participants come up with!

The post The Ubuntu Scope Showdown – progress showcase appeared first on David Planella.

Read more
David Planella

As part of the Ubuntu App Developer Week, I just ran a live on-air session on how to internationalize your Ubuntu apps. Some of the participants on the live chat asked me if I could share the slides somewhere online.

So here they are for your viewing pleasure :) If you’ve got any questions on i18n or in Ubuntu app development in general, feel free to ask in the comments or ping me (dpm) on IRC.

The video

The slides


The post Internationalizing your apps at the Ubuntu App Developer Week appeared first on David Planella.

Read more
David Planella

A sample of the wider Ubuntu Community team, with Canonicalers and volunteer core app developers

A sample of the wider Ubuntu Community team, with Canonicalers and volunteer core app developers

After the recent news of Jono stepping down as the Ubuntu Community Manager to seek new challenges at XPRIZE, a new era in Ubuntu begins. Jono’s leadership, passion and drive to continually push the boundaries have been contagious over the years, and have been the catalyst for growing the unique community of individuals that defines Ubuntu today.

Jono is now joining the ranks of non-Canonical Ubuntu members, and while this will change the angle of participation, I’m certain that it won’t change his energy and dedication one bit. But most importantly, it’s a testament to his work that his former team will continue to thrive and take up the torch in pushing those boundaries.

For us, it will be business as usual in the sense of implementing our roadmap, continuing to grow a strong and open community, being innovative in how we do it, and coordinating the logistics around our plans. So not much will be different in that regard, but obviously some organizational bits will change.

As part of the transition, the Ubuntu Community Team at Canonical in full, that is, Michael Hall, Daniel Holbach, Alan Pope, Nicholas Skaggs and myself, will now be hosting the weekly Ubuntu Q&A, starting today at 18:00 UTC on Ubuntu On Air (click here for the time at your location).

The Ubuntu Community Team Q&A

Openness, both in being a transparent and welcoming community, is one of the core values of Ubuntu, and we believe the channels should be always open for a healthy information flow and to help contributors get involved.

As such, the Ubuntu Community Team Q&A will continue to provide a weekly, 1-hour-long session open for participation to anyone who wants to ask their questions about Ubuntu. In fact, as in former editions, you can ask the Community Team just anything about Free Software, Technology, or whatever you come up with. As before, the only questions we won’t answer are those related to technical support, where you’ll be much better served using Ask Ubuntu, the Ubuntu forums or IRC.

Join the Ubuntu Community Team Q&A at 18:00 UTC today and ask your questions >

The Ubuntu Online Summit is coming soon!

Also, following the thread of events and participation, the new Ubuntu Online Summit (UOS) is coming up very soon, and it’s an excellent opportunity to learn about getting involved in Ubuntu, organizing or presenting the plans of the different Ubuntu teams for the next months.

UOS will be held on June 10th – 12th and it will be a combination of the former Ubuntu Developer Summit and the more user-facing events we’ve been organizing in the past. This opens the door to a wider audience that can follow a richer mix of developer and user or contributor content.

If you want to learn about the details, check out Michael’s UOS post on how it’s going to work. If you want to contribute and make a difference in Ubuntu, do register a session too!

Looking forward to seeing you soon!

The post A new era for the Ubuntu community team, or business as usual appeared first on David Planella.

Read more
David Planella

Ubuntu emulator guide

Following the initial announcement, the Ubuntu emulator is going to become a primary Engineering platform for development. Quoting Alexander Sack, when ready, the goal is to

[…] start using the emulator for everything you usually would do on the phone. We really want to make the emulator a class A engineering platform for everyone

While the final emulator is still work in progress, we’re continually seeing the improvements in finishing all the pieces to make it a first-class citizen for development, both for the platform itself and for app developers. However, as it stands today, the emulator is already functional, so I’ve decided to prepare a quickstart guide to highlight the great work the Foundations and Phonedations teams (along with many other contributors) are producing to make it possible.

While you should consider this as guide as a preview, you can already use it to start getting familiar with the emulator for testing, platform development and writing apps.


To install and run the Ubuntu emulator, you will need:

  • Ubuntu 14.04 or later (see installation notes for older versions)
  • 512MB of RAM dedicated to the emulator
  • 4GB of disk space
  • OpenGL-capable desktop drivers (most graphics drivers/cards are)

Installing the emulator

If you are using Ubuntu 14.04, installation is as easy as opening a terminal, pressing Ctrl+Alt+T and running these commands, followed by Enter:

sudo add-apt-repository ppa:ubuntu-sdk-team/ppa && sudo apt-get update
sudo apt-get install ubuntu-emulator

Alternatively, if you are running an older stable release such as Ubuntu 12.04, you can install the emulator by manually downloading its packages first:

Show me how

  1. Create a folder named MARKDOWN_HASHb3eeabb8ee11c2be770b684d95219ecbMARKDOWN_HASH in your home directory
  2. Go to the goget-ubuntu-touch packages page in Launchpad
  3. Scroll down to Trusty Tahr and click on the arrow to the left to expand it
  4. Scroll further to the bottom of the page and click on the MARKDOWN_HASH05556613978ce6821766bb234e2ff0f2MARKDOWN_HASH package corresponding to your architecture (i386 or amd64) to download in the MARKDOWN_HASH1e681dc9c2bfe6538971553668079349MARKDOWN_HASH folder you created
  5. Now go to the Android packages page in Launchpad
  6. Scroll down to Trusty Tahr and click on the arrow to the left to expand it
  7. Scroll further to the bottom of the page and click on the MARKDOWN_HASH1843750ed619186a2ce7bdabba6f8062MARKDOWN_HASH package corresponding to download it at the same MARKDOWN_HASH1e681dc9c2bfe6538971553668079349MARKDOWN_HASH folder
  8. Open a terminal with Ctrl+Alt+T
  9. Change the directory to the location where you downloaded the package writing the following command in the terminal: MARKDOWN_HASH8844018ed0ccc8c506d6aff82c62c46fMARKDOWN_HASH
  10. Then run this command to install the packages: MARKDOWN_HASH0452d2d16235c62b87fd735e6496c661MARKDOWN_HASH
  11. Once the installation is successful you can close the terminal and remove the MARKDOWN_HASH1e681dc9c2bfe6538971553668079349MARKDOWN_HASH folder and its contents

Installation notes

  • Downloaded images are cached at ~/.cache/ubuntuimage –using the standard XDG_CACHE_DIR location.
  • Instances are stored at ~/.local/share/ubuntu-emulator –using the standard XDG_DATA_DIR location.
  • While an image upgrade feature is in the works, for now you can simply create an instance of a newer image over the previous one.

Running the emulator

Ubuntu emulator guide

The ubuntu-emulator tool makes it again really easy to manage instances and run the emulator. Typically, you’ll be opening a terminal and running these commands the first time you create an instance (where myinstance is the name you’ve chosen for it):

sudo ubuntu-emulator create myinstance --arch=i386
ubuntu-emulator run myinstance

You can create any instances you need for different purposes. And once the instance has been created, you’ll be generally using the ubuntu-emulator run myinstance command to start an emulator session based on that instance.

Notice how in the command above the --arch parameter was specified to override the default architecture (armhf). Using the i386 arch will make the emulator run at a (much faster) native speed.

Other parameters you might want to experiment with are also: --scale=0.7 and --memory=720. In these examples, we’re scaling down the UI to be 70% of the original size (useful for smaller screens) and specifying a maximum of 720MB for the emulator to use (on systems with memory to spare).

There are 3 main elements you’ll be interacting with when running the emulator:

  • The phone UI – this is the visual part of the emulator, where you can interact with the UI in the same way you’d do it with a phone. You can use your mouse to simulate taps and slides. Bonus points if you can recognize the phone model where the UI is in ;)
  • The remote session on the terminal – upon starting the emulator, a terminal will also be launched alongside. Use the phablet username and the same password to log in to an interactive ADB session on the emulator. You can also launch other terminal sessions using other communication protocols –see the link at the end of this guide for more details.
  • The ubuntu-emulator tool – with this CLI tool, you can manage the lifetime and runtime of Ubuntu images. Common subcommands of ubuntu-emulator include create (to create new instances), destroy (to destroy existing instances), run (as we’ve already seen, to run instances), snapshot (to create and restore snapshots of a given point in time) and more. Use ubuntu-emulator --help to learn about these commands and ubuntu-emulator command --help to learn more about a particular command and its options.

Runtime notes

  • Make sure you’ve got enough space to install the emulator and create new instances, otherwise the operation will fail (or take a long time) without warning.
  • At this time, the emulator takes a while to load for the first time. During that time, you’ll see a black screen inside the phone skin. Just wait a bit until it’s finished loading and the welcome screen appears.
  • By default the latest built image from the devel-proposed channel is used. This can be changed during creation with the --channel and --revision options.
  • If your host has a network connection, the emulator will use that transparently, even though the network indicator might show otherwise.
  • To talk to the emulator, you can use standard adb. The emulator should appear under the list of the adb devices command.

Learn more and contribute

I hope this guide has whetted your appetite to start testing the emulator! You can also contribute making the emulator a first-class target for Ubuntu development. The easiest way is to install it and give it ago. If something is not working you can then file a bug.

If you want to fix a bug yourself or contribute to code, the best thing is to ask the developers about how to get started by subscribing to the Ubuntu phone mailing list.

If you want to learn more about the emulator, including how to create instance snapshots and other cool features, head out to the Ubuntu Emulator wiki page.

And next… support for the tablet form factor and SDK integration. Can’t wait for those features to land!

The post A quickstart guide to the Ubuntu emulator appeared first on David Planella.

Read more
David Planella

Ubuntu, the human touch
Ubuntu, el sistema operatiu lliure més popular i innovador en núvols computacionals, en servidors i en milions d’ordinadors personals, entra al món dels dispositius mòbils. Després d’anunciar la versió per a mòbils i tauletes en l’anterior edició, l’Ubuntu, patrocinat per l’empresa Canonical, torna al Mobile World Congress a Barcelona. Aquest cop amb més força, més novetats i a punt de presentar la que en serà la versió nova: 14.04 LTS.

Ubuntu és molt més que una plataforma: és un projecte obert que disposa d’una extensa comunitat d’usuaris, desenvolupadors i voluntaris que s’agrupen en equips locals arreu del món per col·laborar-hi i promocionar-lo.

Aprofitant la celebració del Mobile World Congress, el dissabte 1 de març l’equip català de l’Ubuntu organitza la primera Escola d’aplicacions Ubuntu a Barcelona, un esdeveniment gratuït on es presentaran amb detall els conceptes de disseny i d’arquitectura de l’Ubuntu en mòbils i tauletes. Per completar la jornada, els participants aprendran a crear diferents tipus d’aplicacions per a l’Ubuntu en el taller de desenvolupament d’aplicacions natives i web.

Contingut de la jornada

Fonaments de la plataforma Ubuntu
11:00 – 11:55 Fonaments: la plataforma Ubuntu
12:05 – 13:00 Fonaments: l’Ubuntu SDK com a entorn de desenvolupament

Taller de creació d’aplicacions
15:00 – 15:55 Aplicacions: el model d’aplicació i aplicacions natives
16:05 – 17:00 Aplicacions: aplicacions web i publicació d’aplicacions

L’Escola d’aplicacions Ubuntu està dirigida a desenvolupadors i usuaris amb perfil tècnic, per la qual cosa s’assumeixen uns coneixements mínims de programació.

Es recomana dur un portàtil amb Ubuntu 12.04 o superior, tot i que és possible participar amb altres sistemes a través d’una imatge virtual que es proporcionarà en el taller. Aquells participants que duguin un dispositiu Nexus 4, Nexus 7 (razor) o Nexus 10 tindran l’opció d’instal·lar l’Ubuntu com a sistema únic o bé com a arrencada dual.

Quan i on

Escola d’aplicacions Ubuntu
Ponent: David Planella (Canonical)
Data: dissabte 1 de març de 2014
MOB (Makers Of Barcelona)
C/ Bailén 11, baixos
08010 Barcelona



La jornada és gratuïta, amb places limitades a 40 participants.

Registreu-vos en línia per participar-hi >

The post Escola d’aplicacions Ubuntu a Barcelona appeared first on David Planella.

Read more
David Planella


Following the call for volunteers to organize App Dev Schools across the globe, we’re excited to say that there are already events planned in 3 different countries. Every single App Dev School will help growing our community of app developers and drive adoption of our favourite free OS on all devices, everywhere.

Our LoCo community has got an incredible track record for organizing release parties, Ubuntu Hours, Global Jams, and all sorts of meet-ups for Ubuntu enthusiasts and folks who are new to Ubuntu. Ubuntu App Developer Schools are very new, but in the same way LoCos are, they’re going to become crucial in the new era of mobile devices and convergence. So we would like to see more of them and we need your help!

You can run an App Dev School too

If you’ve already organized an event, you already know the drill, but if it’s your first one, here are some guidelines on how you can put one together:

  1. Find a place to run an event and pick a date when to run it.
  2. Find some other folks in your LoCo who would be interested in helping.
  3. To promote it, remember to add it to the LoCo Directory
  4. Get the material and tune it for your event if needed.
  5. Promote the event locally and encourage people to join.
  6. Practice the material a few times before the big day, then show up, run the class and have fun.
  7. Take lots of pictures!

The ever awesome José Antonio Rey has made it even easier for Spanish-speaking LoCos to run events by having translated the materials into Spanish, so do get in touch with him if you’d like to use them.

And finally, for those of you who don’t have mobile devices to show Ubuntu on, the emulator is a nice alternative to use for app development and presentations. To help you get started, I’ve put together a quickstart guide to the Ubuntu emulator.

If you’re thinking about organizing one and you’ve got questions or need help, get in touch with me at

Looking forward to seeing all your App Dev Schools around the world!

The post Announcing the first Ubuntu App Dev Schools appeared first on David Planella.

Read more
David Planella

Ubuntu Core Apps Hack Days

Core Apps Hack days are an easy way for app developers to get started contributing to one of the most important and visible parts of Ubuntu, and learn and share knowledge with an exciting community of some of the best Open Source developers around. As core app developer Riccardo Padovani, puts it:

I started to contribute to Ubuntu Touch with a Core App Hack Day in July and I still have not stopped!

Driven by the success of previous editions, we’re thrilled to announce another week of Ubuntu Core Apps Hack Days starting tomorrow, Friday the 24th of January

The goals

In one month’s time, the Mobile World Congress will bring a unique opportunity to present the Ubuntu phone and tablet to some of the most influential names in the mobile industry. It is also an opportunity to showcase a truly free OS and the stunning work our community of core app developers (and many others!) have already achieved.

Thus we’d like to set the theme for these Hack Days to Sprinting to MWC, and use them to focus on convergence and finishing off the set of features agreed upon at the last Ubuntu Developer Summit (UDS).

The schedule

We’ll be running a week’s worth of Hack Days, online at the #ubuntu-app-devel IRC channel, from 9:00UTC to 21:00UTC, focusing on two apps a day:

Get involved

There are many ways to making core apps even more awesome! If you want to contribute, choose the one that best matches your interests or skills. The first thing I’d recommend would be to run the apps on a device to get a feel for how they work. If you don’t have a real device to test, a good alternative is to use the Ubuntu emulator.

Once you’re familiar with them, here’s how you can start your journey to becoming a core apps contributor:

  1. Join the #ubuntu-app-devel IRC channel and say hi! >
  2. Find something to work on or ask someone on the channel. Here are some examples to get started

To learn more about contributing, check out the Hack Days page >.

Looking forward to seeing the new faces in the core apps project!

The post The Ubuntu Core Apps Hack Days are back! appeared first on David Planella.

Read more
David Planella

Human Touch-700px

It’s going to be one of the most exciting years in the history of Ubuntu. We’re seeing innovation and stunning work across the board, and a huge momentum and interest from OEMs and carriers to ship a phone with Ubuntu, with already a confirmed partner.

With our favourite OS expanding to yet another order of magnitude, every contribution is becoming even more important. And with phones shipping all over the globe, multilingual support and Ubuntu translators are going to be one of the keys to Ubuntu’s success.

In the same way you’ve helped us bring an excellent localized experience to the desktop throughout the years, we now need your help ensuring the phone reaches that level of excellence too. Once more, you can bring Ubuntu on phones to millions in their language.

To make it easier to focus on the most important parts, here’s a summary of the main Ubuntu components that can be translated in Launchpad, our collaborative translation tool.

And if you’re new to translating Ubuntu, you can also help! Check out our Translations Quickstart guide >

Unity and scopes

Unity is essentially Ubuntu’s UI, and version 8 is what is currently running on the phone and will ultimately run on all form factors once we achieve full convergence.

By translating Unity, the most visible user interface parts will appear in your language. Scopes are also part of Unity, and enable bringing content to users in a natural and organized way. The Click Update Manager is launched in the Applications scope when you install a new app.


Indicators are another Unity technology that enables quick access to system settings that you access every day, such as networking, location, sound, etc., as well as the messaging menu. Translating indicators will localize their menus when you swipe from the top edge.

Core and system apps

You can think of core and system apps as being the same thing: a set the essential apps every user would expect preinstalled on their devices. Translating core apps, you’ll make it possible to have a richer localized experience with clock, camera, weather, calculator and more.

Testing translations

With the addition of multiple supported form factors, testing is important not only to ensure that translations are correct, but also that they fit in UI components of different widths. So please double-check that long texts fit in in the smaller factors such as the phone.

Translation testing on a running phone or on the emulator deserves an article of its own, so please stay tuned for the next update coming soon.

Happy translating!

Image: Human touch, by David Planella, under a CC BY-SA 2.0 license

The post Make Ubuntu speak your language appeared first on David Planella.

Read more
Victor Palau

Since I lead the Ubuntu Edge campaign, I have been trying to keep up with other crowd funding projects.  I am mainly interested on technology and gadgets, and I have found it hard to navigate Kickstarter, but also to have to keep hoping between Kickstarter and Indiegogo to see what is going on.  Specially since now, seems like interesting projects are evently split between them.  You might share my friction on this… so I give you Techfunder:

Get it on Google Play

Techfunder is an Android app that provides an easy way to browse crowd funding projects launched across the main industry websites. Techfunder gathers Technology and Design projects from Kickstarter and Indiegogo.

Using Techfunder side navigation you can easily switch between:

  •  Popular
  •  New this week
  •  Staff Picks
  •  Design – Popular

Then you can browse as many projects on a compact scrollable list. Just click on the project you are interested to expand into a full screen view.From there you can tell the world about it using the share button. 

If you want to contribute or found out more about it, click on the “browse” button and Techfunder will launch the project page in your web browser. When you are finished, just press the Android back button to return to Techfunder.

I am currently planning to add a favourites/watchlist functionality and looking into a way to select additional crowd sourcing platform. I hope you enjoy it!

Read more
Victor Palau

Since I lead the Ubuntu Edge campaign, I have been trying to keep up with other crowd funding projects.  I am mainly interested on technology and gadgets, and I have found it hard to navigate Kickstarter, but also to have to keep hoping between Kickstarter and Indiegogo to see what is going on.  Specially since now, seems like interesting projects are evently split between them.  You might share my friction on this… so I give you Techfunder:

Get it on Google Play

Techfunder is an Android app that provides an easy way to browse crowd funding projects launched across the main industry websites. Techfunder gathers Technology and Design projects from Kickstarter and Indiegogo.

Using Techfunder side navigation you can easily switch between:

  •  Popular
  •  New this week
  •  Staff Picks
  •  Design – Popular

Then you can browse as many projects on a compact scrollable list. Just click on the project you are interested to expand into a full screen view.From there you can tell the world about it using the share button. 

If you want to contribute or found out more about it, click on the “browse” button and Techfunder will launch the project page in your web browser. When you are finished, just press the Android back button to return to Techfunder.

I am currently planning to add a favourites/watchlist functionality and looking into a way to select additional crowd sourcing platform. I hope you enjoy it!

Read more
David Planella

Ubuntu loves Evernote

We’ve been making good progress with Reminders, the Ubuntu app powered by Evernote. While our team of developers have been busy working on the UI, a set of other equally awesome individuals have been working in parallel to implement the backend pieces.

Today, I’m thrilled to announce that the Evernote Online Accounts provider is now available for Ubuntu as a preview. This plugin enables secure login to Evernote via OAuth, and handles the authentication process via the standard Ubuntu platform APIs, so that the Reminders app does not even have to care about the logic.

Big thanks to Alberto Mardegan and Chris Wayne for making this possible.

For developers only

At this point, the authentication plugin is provided for the purpose of developing the Reminders app only, and it will intentionally not work with regular Evernote accounts. Support for regular Evernote accounts will be enabled when the Reminders app reaches the stable release status.

The plugin talks to the Evernote sandbox service, so before using it you’ll need to create a developer account there first. Create a free Evernote developer account ›

Installing the Evernote account provider

As the required packages have not yet landed in the archive, we’ll need to install them from the core apps repository. You can open a terminal and run these commands to do the installation, either on the phone or on the desktop:

On the phone, before you can install a package you will need to switch to RW mode

sudo add-apt-repository ppa:ubuntu-touch-coreapps-drivers/daily
sudo apt-get update
sudo apt-get install account-plugin-evernote signon-plugin-oauth2

Logging into the Evernote sandbox

Evernote Account

The next step in using the plugin is to log into the Evernote sandbox. The Evernote login process, as for any other Ubuntu online account, takes place in the System Settings app. Once the plugin is installed, you’ll be able to add new Evernote accounts from the New Account screen. While the screenshots above show how to do it on the phone, this works equally well on the desktop.

Using the Evernote account provider

To enable Evernote account support in QML apps, you’ll only require an instance of the Ubuntu Online Accounts AccountServiceModel. You should check out the online API reference for more information, but in essence, an adapted version of the snippet from the documentation will do the trick:

Item {
    AccountServiceModel {
        id: accounts
        // Use the Evernote service
        service: "evernote"
    ListView {
        model: accounts
        delegate: Rectangle {
            id: rect
            Text { text: rect.model.displayName }
            AccountService {
                id: accountService
                objectHandle: rect.model.accountServiceHandle
                // Print the access token on the console
                onAuthenticated: { console.log("Access token is " + reply.AccessToken) }
                onAuthenticationError: { console.log("Authentication failed, code " + error.code) }
            MouseArea {
                anchors.fill: parent
                onClicked: accountService.authenticate()

With this code, you’ll get your Evernote account listed in the UI. Clicking on it, and upon successful authentication you’ll obtain an Evernote authentication token, that can then be passed to the Evernote API to access the NoteStore and manage notes for the account associated to that token.

This is however the first step, as you’ll need a working backend to pass that token to and to talk to the Evernote API before you can manage any notes. Read on to learn more on this.

Setting up the Evernote API Taskforce

The next phase in the project is now to focus on the creation a QML plugin that will talk to the Evernote service. This is a key piece of the infrastructure that will enable performing the essential operations of fetching, modifying and updating notes while online.

The unstoppable Michael Zanetti has been helping us bootstrapping the process, and he’s already put together an Evernote API QML plugin that performs the basic communication with the Evernote servers.

Taking this work as a foundation, we want to extend the plugin to perform all necessary operations to cover the needs of the Reminders app. With this goal in mind, we’re putting together the Evernote API taskforce: a team of developers tightly focused in developing the Evernote API QML plugin and working very closely with the Reminders app developers to ensure backend and UI perfectly fit.

So if you’ve got Qt and C++ experience, this is a call for you: join the team of core developers who bring Evernote support to Ubuntu and millions of users!

If you’re interested in participating, let us know in the comments or or drop us an e-mail on the Core Apps mailing list.

Looking forward to welcoming new developers to the team, and stay tuned for more updates!

The post Ubuntu Reminders app gets Evernote authentication appeared first on David Planella.

Read more