DevelopmentEnvironment

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

This specification describes an application development environment for Ubuntu Mobile and Embedded (UME), including the necessary tools and documentation, and a means to make them available as a convenient bundle.

Release Note

Rationale

An easily accessible development environment is an important part of encouraging application developers to target UME. Due to the design of UME, all of the necessary components should be available in the Ubuntu archive, and so it is natural to allow an Ubuntu desktop to be easily enabled for UME application development.

The packages in the ubuntu-mobile-dev seed were chosen based on that we wanted a developer to be able to start developing packages for the device, either on the device itself, or inside a chroot that is used for development.

Use Cases

  • Frances is a developer of mobile applications, and is interested in developing for UME. She uses her existing Ubuntu desktop system to install the UME development environment and is able to begin writing and testing the new application immediately
  • Carl is the owner of a UME-based device, and using his basic development skills, would like to create a simple application for his own use. He installs an Ubuntu desktop system, because it provides a simple way to set this up, and begins work

Assumptions

The initial target platforms for UME do not require cross-compilation.

Design

Developer Bundle / SDK

The process can done in two ways:

  • Manually, by creating a chroot environment, installing the required packages and preparing the chroot to run the hildon-desktop. This procedure is described here.

  • Using the moblin-image-creator as described here, and installing the developer-tools FSET.

Test tool

This should be a script which launches a UME environment on the user's desktop using a nested X server or similar. It should allow a program to be specified, which would be launched within the session automatically, making it convenient to run from a developer's source tree. Running ume-xephyr-start will check for xserver-xephyr, set the DISPLAY=:2, start xephyr and launch the UI.

Implementation

Create an ubuntu-mobile-dev seed, and populate it with the following packages:

  • Mobile-Include: *-dev *-dbg *-debug
  • libgtk2.0-doc
  • libglib2.0-doc
  • xserver-xephyr
  • build-essential
  • python-doc
  • autotools-dev
  • automake, autoconf, libtool
  • python-hildon-dev
  • libhildon*-{dev,dbg}
  • libosso*-{dev,dbg}
  • libdbus*-{doc,dev,dbg}
  • telepathy-devel{,-gtk}
  • pkg-config
  • osso-af-settings
  • python-hildondesktop (needs packaging/uploading)

Point the developer-tools FSET to install ubuntu-mobile-dev.

Document how to get a development environment, both on a device itself, along with a developer's desktop system, as well as that the packages installed are for application development, and that running a command to pull in xserver-xorg-dev and x11proto-*-dev will give an environment suitable for X driver development, and that installing the latest kernel headers will give an environment suitable for kernel driver development.

Test Plan

  • Check that the ubuntu-mobile-dev package is correctly populated by germinate.
  • Check that installing ubuntu-mobile-dev pulls in everything that is expected.
  • Check that marking the developer-tools FSET to be installed using moblin-image-creator pulls in ubuntu-mobile-dev and everything that it depends on.
  • Check the documentation is correct, and can be found easily.


CategorySpec

MobileAndEmbedded/DevelopmentEnvironment (last edited 2008-08-06 16:16:44 by localhost)