Develop and Deploy a MeeGo Application

Me too, MeeGo

Open embedded platforms are becoming popular among end-users, and are also a key selling point for many vendors. New business models like application stores are thriving around these open platforms. Many industry biggies like Google and Samsung are jumping onto this bandwagon, to tap the growing market. The latest entrants, Nokia and Intel, have used Meego, a Linux-based platform. Meego is an entirely open source platform — from the kernel to the application framework, like UI libraries and tools. The Meego project is governed by the Linux Foundation, and works like an open source project. In this article, we will take a quick look at this platform, and then develop a simple Qt application, which we can run on a Meego netbook.

The Meego project combines Nokia’s Maemo and Intel’s Moblin open source platforms to target devices like netbooks, hand-held devices, in-vehicle infotainment devices, etc. It comes with cross-platform development tools, and supports multiple hardware architectures like ARM, Intel’s Atom, etc. Meego also boots faster, and has a small footprint, which is essential for embedded systems. Meego sports a new look and feel, with integrated social networking support.

Architecture

Meego has a three-layered architecture: operating system, middleware, and UX (user experience), as illustrated in Figure 1. The operating system layer provides the necessary hardware adaptation to run Meego. Based on the Linux kernel, it also contains the Glibc C and libudev libraries.

Meego software architecture

Figure 1: Meego software architecture

The middleware layer, based on the cross-platform Qt 4.x toolkit, supports various usage models, and provides APIs to build applications. It also extends functionality through Web runtime APIs, which allows developers to build applications that can render Web content like HTML, XML, SVG, etc. The UX layer has a specific “look & feel” for netbooks, hand-held devices, and other products. It uses the whole screen to display controls, with no right-click contexts in touch-screen operation mode.

Though Maemo’s UI was initially based on GTK+, it was later ported to Qt when Nokia acquired Trolltech, the creators of Qt. The Qt APIs are used from the C++ programming language.

Development environment

Meego provides a choice of environments to develop and debug Qt applications, both on Linux and Windows, as illustrated in Figure 2. These applications can then be packaged for installation on Meego devices.

Meego development options

Figure 2: Meego development options

A simple Meego application

Let’s explore how to develop a Qt application on Linux, and install it on a Meego netbook. This page on MeeGo wiki provides a step-by-step guide to developing applications for Meego. You can install the Meego SDK, which provides the necessary environment for Meego development, on your Linux machine. The SDK uses the chroot mechanism to create a virtualised copy of a software system. The chrooted environment uses xhost to run graphical applications, as does the Meego virtual environment, which enables you to run your application in a simulator.

Once the virtual environment is set up, you can invoke Qt Creator, create a project of your choice, and develop, debug, and deploy it as described in the above wiki page. You can optionally build an RPM package as a distributable.

To deploy the application (HelloLFY) on a Meego netbook, first copy the application to a thumb drive, and plug the drive in to the Meego netbook. Now switch to the terminal mode (Alt + left arrow) and log in as root (password: meego). Create a folder like /opt/myapps and copy the application from the thumb drive to the new folder. Next, we need to create a launcher for this application. Create a file named HelloLFY.desktop in your (ordinary user account’s) home folder, and enter the following details:

[Desktop Entry]
Version=1.0
Name=Hello LFY
GenericName=Demo Application
Comment=For demo
Exec=/opt/myapps/HelloLFY
Terminal=false
Type=Application
Categories=Others;
Comment[en_US.UTF-8]=Go with Meego
GenericName[en_US.UTF-8]=My apps - HelloLFY
Name[en_US]=HelloLFY.desktop

Save the file to the local home folder, and copy it to the /usr/share/applications folder. This will ensure that the application is added to Meego’s Applications list, as shown in Figure 3.

Application launcher

Figure 3: Application launcher

Click the new launcher to launch the application. The running app appears, as shown in Figure 4.

Running the dummy application

Figure 4: Running the dummy application

As the market moves towards open platforms, new platforms emerge to claim a share of the pie. Meego is backed by two major industry leaders, giving rise to high expectations within the industry and by end-users. Other companies like Acer and Novell are also part of the Meego ecosystem. As an end user or a developer, let’s hope the competition between platforms brings us better user experiences and functionality.

All published articles are released under Creative Commons Attribution-NonCommercial 3.0 Unported License, unless otherwise noted.
Open Source For You is powered by WordPress, which gladly sits on top of a CentOS-based LEMP stack.

Creative Commons License.