Canonical Voices

Posts tagged with 'sdk'

Jono Bacon

The focus on content is a core principle that drives how we build Ubuntu. This not only includes getting the clutter out of the way and maximizing your view on your content (such as integrated window borders and overlay scroll-bars), but it also includes searching for, browsing, and consuming content as easily as possible.

At the core of this latter approach to content is the Ubuntu dash and the scopes that power it. For those unfamiliar with this technology, when you tap or click the Ubuntu button on your Ubuntu computer, smart-phone, or tablet you currently see a number of different views such as Home, Apps, Music, and Videos.

Within these views we have a series of “scopes” that deliver both online and offline content. As an example, in our music scope we show music on your computer/device as well as music available to download or purchase online too.

All of this integrates search right into the heart of Ubuntu; no longer do you need to open up a software store, music app, or video app to access content you either own or would like to aquire…it is all integrated into the core of Ubuntu.

Ever since we released this technology we have been evaluating the feedback from our users, through formalized user testing, as well as input from content providers who are keen to deliver content via these services. We have reviewed all of this feedback and made a set of changes that improve and refine how the dash and scopes work, and we want to share some of those updates here.

This post does not summarize all improvements we are making; we have other refinements in store, and we will provide those updates closer to the time.

All screenshots in this post are of working code on the phone and tablet, much of which you can see at MWC this week. This technology will also be coming to the desktop at a later date.

The Core of the Dash

One of the constraining aspects about our previous dash was some of the limitations in terms of how scope results are presented to the user. Ubuntu users will be very familiar with a search resulting in the same visual structure of how results appear, which you can then click a result to see a preview view with more details.

We have refined and improved this by building a “dash toolkit” that can be used to customize how results are displayed now.

As an example, here are some screenshots of the dash displaying different types of results:

The Scopes Store

In our previous dash the notion of scopes were something that the Ubuntu development team were primarily involved in – we would ship a number of scopes switched on by default and the user could enable/disable those scopes where appropriate.

In our new dash we are treating scopes almost like in-dash apps; that is, a scope is something a provider can ship to users and the user can enable or disable the scopes that are of most interest to them. This makes the dash infinitely pluggable, more tuned to the user’s needs, and combined with the customization of how results are displayed, it makes the dash far more compelling for both users and content providers.

This range of scopes is delivered by the Scopes store which provides a range of categories and available scopes.

As an example, if you are a Grooveshark fan you can head into the Scopes store and add the Grooveshark scope and now your search will return Grooveshark content.
In action

Let’s take this new technology for a spin to demonstrate how it works.

In the screenshot below we can see the familiar apps scope. Here we can see apps that are installed, apps available to download, and we can search for apps too:

Let’s now see a more customized scope in the form of a guide to Barcelona:

Here you can see a combination of recommended places to visit, transport information, weather and more:

This scope is pulling together a variety of online components in a customized view and can be shipped as a scope that you can install on your computer or device.

Let’s look at another example. Here we have a scope for World Cup information:

Finally, let’s take a look at how we browse and install scopes. This is the scopes store:

Here we can select a scope easily and install it by tapping it.

When will I get this?

This technology is going to be arriving for Ubuntu for smart-phones and tablets in the next few weeks. Those of you using Ubuntu for devices can expect to find it as part of a norma system update.

For the desktop this technology will arrive at a later date when converge our Unity 8 platform on the desktop. We expect this to be around the time of Ubuntu 14.10 – Ubuntu 15.04.

The Developer Story

This new technology opens up a wealth of opportunities for developers. Over the coming weeks we will be providing a full tutorial, API documentation, quick-start guides, and more on developer.ubuntu.com to help you get stared building and deliver scopes to users.

We will announce when this content has been released on this blog.

FAQ

Why did you change the dash and scopes?

Based on feedback from our users, through formalized user testing, and input from content providers, we wanted to make a series of improvements to refine how the dash and scopes work.

When can we expect this technology to arrive?

We expect these improvements to be landing in the Ubuntu for phones and tablets images in the next few weeks.

How can I enable/disable scopes?

You determine which scopes are searched by adding them to (or removing them from) your favourites list. Even if a scope is not in your favourites list, you can explicitly navigate to that scope and start a search, without adding that scope to your favourites list. So, you are in complete control at all times of which scopes are searched.

What security/privacy measures are you putting in place with this technology?

While we will ship with a set of default scopes, the user can switch of any scopes if they choose to do so.

Each scope runs as a separate process in its own sandbox, secure via AppArmor. The sandbox is enforced at the kernel level, so it is impossible for a scope implementation to break out of the sandbox (for example, by making system calls directly).

Scopes that are installed in the device have exactly one of two possible AppArmor profiles: network access or file system access. If a scope can access the network (for example, to retrieve email headers from a remote imap account), that scope cannot access the file system. Conversely, if a scope can access the file system (for example, to search for locally-installed media files), it cannot access the network. This prevents a scope from retrieving sensitive information from the file system and then shipping it out via the network to some remote server.

Scopes are also prevented from accessing each others’ network endpoints. This means that a scope installed on the device cannot send queries to other scopes on the device in an attempt to collect private information.

What languages can I write these scopes in?

C++, Javascript, and Go.

Read more
Michael Hall

Convergent File ManagerConvergence is going to be a major theme for Ubuntu 14.04, not just at the OS and Unity 8 levels, but also for the apps that run on it. The Core Apps, those apps that were developed by the community and included by default in the last release, are no exception to this. We want to make sure they all converge neatly and usefully on both a tablet and on the desktop. So once again we are asking for community design input, this time to take the existing application interfaces and extend them to new form factors.

How to submit your designs

We have detailed the kind of features we want to see for each of the Core Apps on a Convergence wiki page. If you have a convergence design idea you would like to submit, send it as a file attachment or link to it online in an email to design@canonical.com along with any additional notes, descriptions, or user stories.  The design team will be reviewing the submitted designs live on their bi-weekly Design Clinics (Dec 4th and Dec 18th) at 1400 UTC.  But before you submit your ideas, keep reading to see what they should include.

Extend what’s there

We don’t want to add too many features this cycle, there’s going to be enough work to do just building the convergence into the app.  Use the existing features and designs as your starting point, and re-imagine those same features and designs on a tablet or desktop.  Design new features or modify existing ones when it makes the experience better on a different form factor, but remember that we want the user to experience it as the same application across the board, so try and keep the differences to a minimum.

Form follows function

There’s more to a good design than just a good looking UI, especially when designing convergence.  Make sure that you take the user’s activity into account, plan out how they will access the different features of the app, make sure it’s both intuitive and simple.  The more detail you put into this the more likely you are to discover possible problems with your designs, or come up with better solutions that you had originally intended.

Think outside the screen

There is more to convergence that just a different screen size, and your designs should take that into consideration.  While it’s important to make good use of the added space in the UI, think about how the user is going to interact with it.  You hold a tablet differently than you do a phone, so make sure your designs work well there.

On the desktop you have even more to think about, when the user has a keyboard and mouse, but likely not a touch screen, you want to make sure the interface isn’t cumbersome.  Think about how scrolling will be different too, while it’s easy to swipe both vertically and horizontally on a phone or tablet, you usually only have a vertical scroll wheel on a desktop mouse.  But, you also have more precise control over a mouse pointer than you do with a finger-tip, so your interface should take advantage of that too.

Resources available to you

Now that you know what’s needed, here are some resources to help you.  Once again we have our community Balsamiq account available to anybody who wants to use it to create mockups (email me if you need an account).  I have created a new project for Core Apps Convergence that you can use to add your designs.  You can then submit links to your designs to the Design Team’s email above.  The Design Team has also provided a detailed Design Guide for Ubuntu SDK apps, including a section on Responsive Layouts that give some suggested patterns for different form factors.  You can also choose to use any tools you are comfortable with, as long as they Design Team and community developers can view it.

Read more
Michael Hall

At the same time that Ubuntu 13.10 was released, we also went live with a new API documentation website here on the Ubuntu Developer Portal. This website will slowly replace our previous static docs, which came in a variety of formats, with a single structured place for all of our developer APIs. This new site, backed by Python and Django, will let us make our API documentation more easily discoverable, more comprehensive, and more interactive over time.

Screenshot from 2013-10-17 09:54:41

We launched the site with only the documentation for the Ubuntu UI Toolkit, as well as upstream QtQuick components. But in the past week we’ve added on to that API documentation for the new Content Hub, which allows confined apps to request access to files (pictures, music, etc) stored outside of their sandbox, as well as a full new section of HTML5 API docs covering the visual components developed to match the look and feel of their Qt/QML counterparts.

Read more
Michael Hall

App Showdown Winners

The judging is finished and the scores are in, we now have the winners of this year’s Ubuntu App Showdown!  Over the course of six weeks, and using a beta release of the new Ubuntu SDK, our community of app developers were able to put together a number of stunningly beautiful, useful, and often highly entertaining apps.

We had everything from games to productivity tools submitted to the competition, written in QML, C++ and HTML5. Some were ports of apps that already existed on other platforms, but the vast majority were original apps created specifically for the Ubuntu platform. Best of all, these apps are all available to download and install from the new Click store on Ubuntu phones and tablets, so if you have a Nexus device or one with a community image of Ubuntu, you can try these and many more for yourself.  Now, on to the winners!

Original Apps #1: Karma Machine

karma_machine_subredditkarma_machine_contentkarma_machine_commentsKarma Machine is wonderful app for browsing Reddit, and what geek wouldn’t want a good Reddit app?  Developed by Brian Robles, Karma Machine has nearly everything you could want in a Reddit app, and takes advantage of touch gestures to make it easy to upvote and downvote both articles and comments.  It even supports user accounts so you can see your favorite subreddits easily.  On top of it’s functionality, Karma Machine is also visually appealing, with a good mix of animations, overlays and overall use of colors and layouts.  It is simply one of the best Reddit clients on any platform (having written my own Reddit client, that’s saying something!), and having it as an original Ubuntu app makes it a valuable addition to our ecosystem.  With all that, it’s little wonder that Karma Machine was tied for the top spot on the judges list!

Original Apps #1: Saucy Bacon

saucy_bacon_searchsaucy_bacon_toolbarsaucy_bacon_editSomething for the foodies among us, Saucy Bacon is a great way to find and manage recipes for your favorite dish. Backed by food2fork.com, this app lets you search for recipes from all over the web.  You can save them for future reference, and mark your favorites for easy access over and over again.  And since any serious cook is going to modify a recipe to their own tastes, Saucy Bacon even lets you edit recipes downloaded from somewhere else.  You can of course add your own unique recipe to the database as well.  It even lets you add photos to the recipe card directly from the camera, showing off some nice integration with the Ubuntu SDK’s sensor APIs and hardware capabilities.  All of this mouth-watering goodness secured developer Giulio Collura’s Saucy Bacon app a tie for the #1 stop for original Ubuntu apps in our contest.

Ported Apps #1: Snake

snake_introsnake_play2snake_play

The game Snake has taken many forms on many platforms throughout the years.  It’s combination of simple rules and every-increasing difficulty has made it a popular way to kill time for decades.  Developer Brad Wells has taken this classic game from Nokia’s discontinued Meego/Harmattan mobile OS, which used a slightly older version of Qt for app development, and updated it to work on Ubuntu using the Ubuntu SDK components.  Meego had a large number of high quality apps written for it back in it’s day, and this game proves that Ubuntu for phones and tablets can give those apps a new lease on life.

Go and get them all!

The 2013 Ubuntu App Showdown was an opportunity for us to put the new Ubuntu SDK beta through some real-world testing, and kick off a new app ecosystem for Ubuntu.  During the course of these six weeks we’ve received great feedback from our developer community, worked out a large number of bugs in the SDK, and added or plan to add many new features to our platform.

In addition to being some of the first users of the Ubuntu SDK, the app developers were also among the first to use the new Click packaging format and tools as well as the new app upload process that we’ve been working on to reduce review times and ease the process of publishing apps.  The fact that all of the submitted apps have already been published in the new app store is a huge testament to the success of that work, and to the engineers involved in designing and delivering it.

Once again congratulations to Brian Robles, Giulio Collura and Brad Wells, and a big thank you to everybody who participated or helped those who participated, and all of the engineers who have worked on building the Ubuntu SDK, Click tools and app store.  And if you have a supported device, you should try out the latest Ubuntu images, and try these and the many other apps already available for it.  And if you’re an app developer, or want to become an app developer, now is your time to get started with the Ubuntu SDK!

Read more
Steve George

Today we are pleased to announce the beta release of the Ubuntu SDK! The SDK is the toolkit that will power Ubuntu’s convergence revolution, giving you one platform and one API for all Ubuntu form factors. This lets you write your app one time, in one way, and it will work everywhere.  You can read the full Ubuntu SDK Beta announcement here.

For the developers who are already writing apps using the Ubuntu SDK most of the beta’s features will already be known, as they have been landing in the daily releases as they become finished. Here’s a list of the features that have been added since the alpha:

  • Cordova Ubuntu HTML5 app template – leverage the Apache Cordova APIs to write Ubuntu apps with web technologies: HTML, JavaScript and CSS. Write your first HTML5 with the Cordova Ubuntu tutorial.
  • Ubuntu SDK HTML5 theme – a companion to all HTML5 apps: stylesheets and JavaScript code to provide the same look and feel as native apps
  • Responsive layout – applications can now adopt a more natural layout depending on form factor (phone, tablet, desktop) and orientation
  • Scope template – Scopes enable operators to prioritise their content, to achieve differentiation without fragmentation. Now easier to create with a code template
  • Click packaging preview – initial implementation of the Click technology to distribute applications. Package your apps with Click at the press of a button
  • Theme engine improvements – a reworked theme engine to make it easier and more flexible to customise the look and feel of your app
  • Unified Actions API – define actions to be used across different Ubuntu technologies: the HUD, App Indicators, the Launcher, the Messaging Menu
  • U1DB integration – the SDK now provides a database API to easily synchronise documents between devices, using the Ubuntu One cloud

Some of the biggest news here is the Cordova support and HTML5 theme, which brings together our goal of making first class HTML5 app that look and feel like native apps.  Cordova support means that apps written using the PhoneGap framework can be easily ported to Ubuntu Touch, and the HTML5 themes, written largely by community developer Adnane Belmadiaf, will allow those apps to match the native SDK components in both the way they look as well as the way the user interacts with them.

The Responsive Layouts, which landed in the daily SDK packages weeks go, gives developers the ability to adjust their application’s GUI dynamically at runtime, depending on the amount of screen space available or any number of other variables.  This is one key to making convergent apps that can adapt to be useful on both small touch screens and large monitors with a keyboard and mouse.

We’ve also put out the first set of Click packaging tools, which will provide an easier way for developers to package and distribute their applications both on their own and through the Ubuntu Software Center.  There is still a lot more work to do before all of the Click infrastructure is in place, but for now developers can start trying getting a feel for it.

All of that and more is now available, so grab the latest SDK packages, read the QML and HTML5 app development tutorials, and get a head start building your convergent Ubuntu application today!

Read more