Canonical Voices

Posts tagged with 'sdk'

David Callé

Scopes come with a very flexible customization system. From picking the text color to rearranging how results are laid out, a scope can easily look like a generic RSS reader, a music library or even a store front.

In this new article, you will learn how to make your scope shine by customizing its results, changing its colors, adding a logo and adapting its layout to present your data in the best possible way. Read…

screenshot20145615_125616591

Read more
David Callé

A scope is a tailored view for a set of data, that can use custom layouts, display and branding options. From RSS news feeds to weather data and search engine results, the flexibility of scopes allows you to provide a simple, recognizable and consistent experience with the rest of the OS.

Scopes can also integrate with system-wide user accounts (email, social networks…), split your content into categories and aggregate into each others (for example, a “shopping” scope aggregating results from several store scopes).

unity-8-scopes

In this tutorial, you will learn how to write a scope in C++ for SoundCloud, using the Ubuntu SDK. Read…

Read more
Michael Hall

As part of the continued development of the Ubuntu platform, the Content Hub has gained the ability to share links (and soon text) as a content type, just as it has been able to share images and other file-based content in the past. This allows applications to more easily, and more consistently, share things to a user’s social media accounts.

Consolidating APIs

facebook-sharing
Thanks to the collaborative work going on between the Content Hub and the Ubuntu Webapps developers, it is now possible for remote websites to be packaged with local user scripts that provide deep integration with our platform services. One of the first to take advantage of this is the Facebook webapp, which while displaying remote content via a web browser wrapper, is also a Content Hub importer. This means that when you go to share an image from the Gallery app, the Facebook webapp is displayed as an optional sharing target for that image. If you select it, it will use the Facebook web interface to upload that image to your timeline, without having to go through the separate Friends API.

This work not only brings the social sharing user experience inline with the rest of the system’s content sharing experience, it also provide a much simpler API for application developers to use for accomplishing the same thing. As a result, the Friends API is being deprecated in favor of the new Content Hub functionality.

What it means for App Devs

Because this is an API change, there are things that you as an app developer need to be aware of. First, though the API is being deprecated immediately, it is not being removed from the device images until after the release of 14.10, which will continue to support the ubuntu-sdk-14.04 framework which included the Friends API. The API will not be included in the final ubuntu-sdk-14.10 framework, or any new 14.10-dev frameworks after -dev2.

After the 14.10 release in October, when device images start to build for utopic+1, the ubuntu-sdk-14.04 framework will no longer be on the images. So if you haven’t updated your Click package by then to use the ubuntu-sdk-14.10 framework, it won’t be available to install on devices with the new image. If you are not using the Friends API, this would simply be a matter of changing your package metadata to the new framework version.  For new apps, it will default to the newer version to begin with, so you shouldn’t have to do anything.

Read more
Michael Hall

ubuntu-phone-three-1As we enter the final months before the first Ubuntu phones ship from our partners Meizu and Bq, the numbers of apps, users and downloads continues to grow at a steady pace. Today I’m excited to announce that we have more than ten thousand unique users of Ubuntu on phones or tablets!

Users

Ubuntu phone (and tablet) users sign into their Ubuntu One account on their device in order to download or update the applications on their phone. This allows us to provide many useful features that users expect coming from Android or iOS, such as being able to re-install their collection of apps on a new phone or after resetting their current one, or browsing the store’s website (coming soon) and having the option to install an app directly to their device from there. As a side effect, it means we know how many unique Ubuntu One accounts have connected to the store to in order to download an app, and that number has this week passed the 10,000 mark.

Excitement

Meizu-MX3Not only is this a milestone, but it’s down right amazing when you consider that there are currently no phones available to purchase with Ubuntu on them. The first phones from OEMs will be shipping later this year, but for now there isn’t a phone or tablet that comes with the new Ubuntu device OS on it. That means that each of these 10,000 people have purchased (or already had) either a supported Nexus device, or are using one of the community ports, and either wiped Android off them in favor of Ubuntu, or are dual booting. If this many people are willing to install the beta release of Ubuntu phone on their device, just imagine how many more will want to purchase a phone with Ubuntu pre-installed and with full support from the manufacturer.

Pioneers

In addition to users of Ubuntu phone, we’ve also seen a steady growth in the number of applications and application developers targeting Ubuntu phone and using the Ubuntu SDK. To celebrate them, we created Ubuntu App Pioneers page, and the first batch of Pioneers t-shirts are being sent out to those intrepid developers who, again, are so excited about a platform that isn’t even available to consumers yet that they’ve dedicated their time and energy into making it better for everyone.

Read more
Michael Hall

Ubuntu has always been about breaking new ground. We broke the ground with the desktop back in 2004, we have broken the ground with cloud orchestration across multiple clouds and providers, and we are building a powerful, innovative mobile and desktop platform that is breaking ground with convergence.

The hardest part about breaking new ground and innovating is not having the vision and creating the technology, it is getting people on board to be part of it.

We knew this was going to be a challenge when we first took the wraps off the Ubuntu app developer platform: we have a brand new platform that was still being developed, and when we started many of the key pieces were not there such as a solid developer portal, documentation, API references, training and more. Today the story is very different with a compelling, end-to-end, developer story for building powerful convergent apps.

We believed and always have believed in the power of this platform, and every single one of those people who also believed in what we are doing and wrote apps have shared the same spirit of pioneering a new platform that we have.

As such, we want to acknowledge those people.

And with this, I present Ubuntu Pioneers.

The idea is simple, we want to celebrate the first 200 app developers who get their apps in Ubuntu. We are doing this in two ways.

Firstly, we have created http://developer.ubuntu.com/pioneers which displays all of these developers and lists the apps that they have created. This will provide a permanent record of those who were there right at the beginning.

Secondly, we have designed a custom, limited-edition Ubuntu Pioneers t-shirt that we want to send to all of our pioneers. For those of you who are listed on this page, please ensure that your email address is correct in MyApps as we will be getting in touch soon.

Thank-you so much to every single person listed on that page. You are an inspiration for me, my team, and the wider Ubuntu project.

If you have that pioneering spirit and wished you were up there, fear not! We still have some space before we hit 200 developers, so go here to get started building an app.

Original by Jono Bacon

Read more
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