User:Peterschneider/develop overview

Contents

[edit] Developing on Maemo Platform

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

[edit] 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
  • once your application has a high quality - be promoted on Nokia user site

Image:Applicationdevelopment.png

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 in Scratchbox.

You will find step-by-step on instructions on how to build your own application in the "How to build application page". Also tutorials and a complete online training are available on maemo.org. The Maemo Tutorial is a good introduction to development using Scratchbox and debugging tools are described in depth in the Maemo Debugging Guide.

[edit] 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. The tutorials on maemo.org provide help on how to work with the different open source components of the Maemo platform. Platform development is possible both for enhancements of components developed in open source projects in other communities such as D-Bus and for Maemo-specific components such as the Maemo libraries. Contributions to open source components that are managed through existing open source projects should be shared always to the upstream projects to ensure that your work is consider in future releases of the Maemo platform. Contributions to Maemo-specific software components can also be managed and developed through the Maemo garage.


[edit] Resources available for Maemo developers

A wide range of resources are available for developers, mostly on maemo.org, but also from Forum Nokia, the developer organization of Nokia. The following resources summarize the current offering:

  • Maemo SDK: The Maemo SDK creates a sandboxed development environment on a GNU/Linux desktop system largely built on the Scratchbox cross-compilation toolkit.
  • Maemo.org: Maemo.org website has a lot of different repositories that are meant to be used with standard Debian package installation tools. Documentation include tutorials, API references, manuals and several other guides.
  • Maemo online training: Maemo training courses provide an efficient overview of the tools and methodologies needed when developing applications and platform services.
  • Forum Nokia: Consulting and technical service for application development on Maemo.