User:Peterschneider/develop overview

Developing on Maemo Platform

Innovation on Maemo platform can be divided into two categories: application development and platform development.

Developing applications

Developing applications for Maemo is done with the Maemo SDK. The process from creating the first prototype of your application to distributing to a wide audience consists basically of three steps:

  • share your application project in the Maemo garage
  • make your application easy to install and put in the Application Catalog in maemo.org
  • once you receive a high quality - be promoted on Nokia user site

Image:Application_development_sequence.jpg

The Maemo garage provides hosting services to get contribution to your application project from experienced developers. While your application might be still be in alpha quality, the first technology-savvy people start using your application. Once your application is maturing, achieves beta quality, and is easy to install to a device, then you can post it to the Application Catalog on maemo.org. The Application Catalog does not make it only easy to install applications for less advanced users, but also provides means for users to rate and comment your application providing your valuable feedback to fine tune your application. Nokia selects from the Application Catalog in agreement with the inventor(s) of the application which applications are promoted on Nokia's user site for devices running on the Maemo platform. Applications selected by Nokia have typically a novelty factor, are of high end-user perceived quality, and are fun to use.

Starting to develop applications for Maemo is easy if you are used to programming desktop applications, and fairly simple if you already know about Linux and GTK+. The Maemo SDK is the tool to build applications. Download the Maemo SDK to create, port and test applications using a regular PC that will behave just like a device running Maemo. The Maemo SDK provides all of its development tools inside Scratchbox. As the Scratchbox environment is practically a full GNU/Linux system, it includes the standard GNU/Linux development tools. Debugging is done with tools like GDB, valgrind, ltrace and strace. Performance profiling can be done with tools like htop, oprofile and time and compiling with the GCC toolchain. Some of these tools offer graphical user interfaces which can also be used. Of course this isn’t a comprehensive list of the tools and if the tools shipped with the SDK don’t suit to needs or personal preferences, most utilities can be easily run practically unchanged inScratchbox. The Maemo Tutorial is a good introduction to development using Scratchbox and debugging tools are described in depth in The Maemo Debugging Guide[42].

Improving the Maemo platform

Great parts of the Maemo platform are open source code and it is easy to enhance or improve the software stack.