Get installed and get productive
Here you can install everything needed to get developing apps and scopes for Ubuntu.
- Start by Installing the Ubuntu SDK.
- To install Ubuntu on a supported device, check out the Ubuntu installation guide for devices.
Tip: A device is not required: you can develop and run apps and scopes using the Ubuntu emulator right in your Ubuntu desktop. For more info, see Ubuntu SDK
Quickstart guide to Ubuntu development
The Ubuntu development model
Ubuntu for devices provides two ways to enhance the functionality for users:
- Apps - mobile and convergent apps written using QML, HTML5 and Cordova . Learn more about apps ›
- Scopes - provide dedicated views to find, organize and show a variety of content types, originating on the Internet or the local device. Learn more about scopes ›
The development model for Ubuntu apps and Ubuntu scopes is very similar.
Frameworks: targetting APIs for development
Ubuntu applications and scopes are packaged, distributed and deployed using a format called click packaging. When packaged, all apps and scopes must also specify which set of Ubuntu APIs they are developed for – this is done with framework revisions. Framework revisions define the version of the relevant Ubuntu APIs that are available. APIs bundled in a framework have been designed to be compatible and provide an easy path for developers to target their apps to a version that provides the functionality they need and to upgrade between versions. As an example, 'ubuntu-sdk-14.10-qml' is a framework revision that indicates the app is using versions of the Qt and QtQuick as defined for the 14.10 release.
Security and app isolation
All Ubuntu apps and scopes are confined, meaning they only have access to their own resources and are isolated from other apps and parts of the system. Thus the developer must specify which policy groups are needed for the app or scope to function properly within the confinement rules providing security and privacy.
Developing apps with Ubuntu desktop as a host
Typically a developer will use one of the supported desktop releases (Ubuntu 14.04 LTS is currently recommended) and target a framework for the set of devices they are interested in. In order to develop for these frameworks two things are needed: an appropriate build environment and a corresponding testing environment. Both will be set up when using the Ubuntu SDK IDE.
The build environment
A build environment, or click target, will be required to develop and test an app or scope. This environment will make it possible to build the software for a different architecture if cross-compilation is required (e.g. an app that uses C++) and to run it on different devices (the desktop, a phone/tablet or the emulator). Whenever a target is required the IDE will help to configure it based on the framework and target architecture (e.g. i386 or armhf). The architecture will correspond to the test environment the developer is using and ultimately what the products are built with.
Testing applications on devices
As far as testing environments, the developer can choose an Ubuntu emulator, which can be x86 or armhf, or real hardware with a reference device, such as the Nexus 4 or Nexus 7. While it is possible that simple apps may work in the local desktop environment, it is only in one of these supported testing environments that the entire set of framework APIs are available. It is generally recommended that an app or scope be packaged as a click and installed to the device or emulator in order to properly test it. Again the IDE will assist with creating, validating, deploying and installing the package.