Ubuntu SDK Tools

Registered by Zoltan Balogh

Ubuntu SDK development tools. IDE, device connectivity, builders, packaging, emulator, simulator, profiler, debugger, etc

Blueprint information

Status:
Not started
Approver:
David Planella
Priority:
Undefined
Drafter:
Zoltan Balogh
Direction:
Needs approval
Assignee:
Zoltan Balogh
Definition:
New
Series goal:
Accepted for saucy
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

As a developer I want to use an IDE with editing, local compiling, debugging and testing capabilities.
As a developer I want to install and test my application on the target device.
As a developer I need an emulator and simulator to test my application on the host system.
As a developer I want to use a UI designer tool.
As a developer I need a set of developer tools for automatic testing (Launchpad API, etc), revision control, performance analysis, etc.
As a developer I need packaging, publishing, updating, revoking tools and channels.

====
Notes from vUDS session http://summit.ubuntu.com/uds-1303/meeting/21625/appdev-1303-ubuntu-sdk-tools/

1. Introduction (bzoltan)

2. As a developer I want to use an IDE with editing, local compiling, debugging, profiling and testing capabilities.

We have QtCreator! We are adding extra plugins for Ubuntu-specific features, documentation etc.
Why not Eclipse? Because QtCreator has many QML

3. As a developer I want to install, profile and test my application on the target device.

One QtCreator plugin will compile and deploy the application to the target device. The target is controlled via a SSH connection.

Chroot? Cross-compilation? Build on device? pbuilder slow!
ARM build device and image for it?

qml-phone-shell has been already profiling the executable on the device. Check the ./run_on_device & ./build scripts in lp:unity/phablet for how it works.

4. As a developer I need an emulator and simulator to test my application on the host system.

One emulator idea: http://review.cyanogenmod.org/#/c/32336/
Allows i386 images to be built, which then can be run in Qemu/VirtualBox/VM. But how to deal with device-specific abilities like sensors, GSM, etc.

Another option is a clever multi-arch thing via QEMU. On your host it detects the executable binary type, if arm it brings up a Qemu emulator and runs it inside there.

http://www.android-x86.org/documents/qemuhowto

Proposal: run i386 Android images.

QtSimulator integration?

[aside] can bring up qml-phone-shell on an i386 machine right now. If the QtUbuntu plugin is not available (i.e. when on desktop), it falls back to an emulation layer.

5. As a developer I want to use a UI designer tool.

QtCreator 2.7 beta (with Qt5.0.1) has designer for Qt Quick 2 by default. [albeit with the discussed lackings in how it shows Ubuntu UI toolkit components]
Questions:
1. how does it deal with our components? With the grid unit & theming system. qml2puppet is probably very confused by our theming system.
2. how useful is it? We should test it out.

6. As a developer I need a set of developer tools for automatic testing (Launchpad API, etc), revision control, performance analysis, etc.

Automated tests performed with qtest for unit tests and autopilot for integration & UI tests.

7. As a developer I need packaging, publishing, updating, revoking tools and channels.

We don't have it yet. We have debian packaging & Software Center, but we need to determine how suitable that is for a mobile platform.
Tizen & Sailfish are not really innovating in this area yet.

Package format a big question, and not enough research has been done yet. Security, infrastructure and foundation teams need to be involved.
====

Android 4.2.2 x86 port:
https://01.org/android-ia/downloads/2013/android-4.2.2r1-ia0

(?)

Work Items

Work items:
Study the debugging and profiling of QML apps launched on the device: TODO
Investigate how to integrate the UI Toolkit to the QtC UI designer: TODO
Application life-cycle tools: TODO
Ubuntu Touch Shell simulation: TODO
Study http://review.cyanogenmod.org/#/c/32336/: TODO
[ogra] Research OpenGL passthrough options for QEMU: TODO
[ogra] Followup with tvoss and perhaps lool on options for MIR EGL passthrough: TODO

Dependency tree

* Blueprints in grey have been implemented.