0% found this document useful (0 votes)
93 views33 pages

MeeGo App Development Guide

The document discusses MeeGo's application development environment and process for third party developers. It covers the development tools and SDKs available, such as Qt Creator IDE, QEMU emulator and Xephyr simulator. The document outlines the basic application development flow, from setting up the development environment to creating, building and running applications. It also provides resources for documentation, APIs, packaging guidelines and community support.

Uploaded by

Nandini Gowda
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
93 views33 pages

MeeGo App Development Guide

The document discusses MeeGo's application development environment and process for third party developers. It covers the development tools and SDKs available, such as Qt Creator IDE, QEMU emulator and Xephyr simulator. The document outlines the basic application development flow, from setting up the development environment to creating, building and running applications. It also provides resources for documentation, APIs, packaging guidelines and community support.

Uploaded by

Nandini Gowda
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd

Development process for 3rd Party

MeeGo Application Developers

Presented by:
Narayana Pattipati
[Link]@[Link]
Session flow
• Introduction and objective of the session
• What 3rd party app developers want?
• MeeGo Application Development environment
• MeeGo Application Development process - high level flow
• Resources available for the developers
• Gaps in the existing environment and ways to address them
• Discussion and getting feedback from app developers
• Q&A

2
Introduction
• MeeGo is an open platform
• Supports variety of devices with different form factors

Handset Netbook Media Phone Connected TV In-Vehicle

• These factors generated lot of interest among app developers


• App developers - individuals, companies
• Applications – Open source, Closed source, Commercial
• A great MeeGo application development environment helps in
• Attracting more app developers
• MeeGo becoming a prefered platform for app developers

3
What 3rd party app developers want?
• Stable platform
• A well defined architecture and subsystems
• Developer API
• Clear roadmap of the components
• Stable development tools
• SDK – Simulator, Emulator, IDE
• Tools & Infrastructure
• Great documentation – Architecture, API, SDK, Guidelines and manuals
• Getting Started – Tutorials, examples and sample code
• Developer community and support
• How quickly can I prototype and develop apps?
• Great user experience for the apps
• Large market penetration and revenue potential
• Good App store & ease of distribution

4
MeeGo Application Development Environment

5
Application Development – High level flow

*MeeGo garage is not up yet

6
Basic skills & HW needed
• Basic Software development skills
• C++, Qt, Qt quick
• Java Script, HTML, CSS for web based applications
• MeeGo SDK
• RPM packaging
• GNU build tools

• Minimal hardware needed


• Linux workstation
• N900, Aava handsets
• Netbook
• Reference devices for different UX
[Link]

7
Community participation & Developer engagement
• Mailing Lists
[Link]
[Link]
• IRC
[Link]
• Forums
[Link]
• Working Groups
[Link]
• Community Office Meetings
[Link]
• Local Networks
[Link]

8
Developer Documentation, API, FAQ
• Main sources of information
[Link]
[Link]
• Architecture
[Link]
• Architecture documentation for different subsystems
[Link]
• MeeGo Developers pages
[Link]
[Link]
[Link]
• MeeGo developer API
[Link]
• MeeGo Porting guide
[Link]
• MeeGo FAQ
[Link]
[Link]

9
Compliance and Guidelines
• MeeGo Compliance and Compliance tools
[Link]
[Link]
• Coding Guidelines
• UX design principles
[Link]
• UI design guidelines for different device areas
[Link]

• MeeGo Release Engineering process


[Link]

• MeeGo Packaging Guidelines


[Link]

10
Application Development options
• Native applications
• Qt Quick apps
• Rapid application development based on QML and Javascript
• Can integrate well with Qt/C++ - UI in QML and backend in Qt/C++
[Link]
• Qt / C++ apps
• Use MeeGo SDK which provides Qt Creator for development
• Web Applications
• HTML, CSS, JavaScript
• Web Runtime Environment (WRT)
• Possible to embed WRT UI into C++/Qt apps using QtWebKit module
• Use Web SDK for development
[Link]
[Link]

• MeeGo 1.1 Application development overview


[Link]

11
MeeGo SDK
• MeeGo SDK for Native apps
• Web SDK for web runtime based apps
• MeeGo SDK Development options
• QEMU virtual machine
• Change root (chroot) with Xephyr
• MeeGo on Workstation

• Currently only Handset and Netbook SDK is


available for Download

• Get started with MeeGo SDK


[Link]

[Link]
he_MeeGo_SDK_for_Linux
• Get started with Web SDK
[Link]

• MeeGo SDK mailing list for getting help


[Link]
12
MeeGo SDK – Simulator with Xephyr
• MeeGo chroot with Xephyr is your virtual MeeGo system
• MeeGo UI session or Application launch options from chroot
• Use the chroot for your development
• Qt Creator for application development
• zypper or yum
• Build Service (OBS) commandline tool osc
• Mount your VCS work area for sources
• Installation and setup instructions
[Link]
[Link]
Ubuntu_10.04_LTS

13
MeeGo SDK – QEMU based Emulator
• QEMU is a virtual machine which enables to run x86 and ARM images
on x86 work station.
• Virtualization (VT) support needed on system for graphics acceleration
• QEMU can be used for application development
• Install Qt Creator
• Install MADDE to manage development targets (toolchains)
• Configure Qt Creator to use the toolchain
• Run QtCreator outside QEMU and debug applications
• SSH into QEMU Image
• Use that session for app development, running and debugging
• Detailed steps to setup and run
[Link]

14
Install and use MeeGo on your workstation
• MeeGo is supported and tested on many Netbooks and Laptops
• Install the latest version of MeeGo on Netbook or laptop and use it for
development
• Workarounds may be needed to make applications work
• Detailed instructions to install MeeGo on Netbooks and Notebooks
[Link]
[Link]
[Link]
• List of supported devices along with workarounds can be found at
[Link]

15
MeeGo IDEs
• Qt Creator
• Native app development with Qt, Qt Quick
• Installed along with MeeGo SDK
• Can run apps on Simulator, Emulator or on device
• Detailed instructions to use Qt Creator
[Link]
[Link]
[Link]

• Eclipse, Aptana
• web based apps with WRT

• No documentation is available on Eclipse, Aptana IDEs for MeeGo

16
Qt Creator IDE – Creating a new application
• Setup MeeGo SDK environment on Linux
• Install SDK, setup build targets using MADDE
• Configure Qt Creator to use a specific target (e.g ARM, IA32)
• Configure Qt Creator to run on Simulator, Emulator or device
• Create a new application and build it
• Run on Simulator, emulator or device
• Debug the application (uses gdb internally on Linux)
• Detailed instructions
[Link]
[Link]

17
MeeGo Tools
• Developer Tools
• MeeGo Image Creator (MIC) – for creating and manipulating images
• Image Manager – A GUI image creator
• Spectacle – Packaging assistant
• Bootchart – Monitors where system spends time during startup
• Powertop – Power usage patterns of apps (while device is idle)
• Valgrind, Coverity, gprof, gcov
• MeeGo Tools repo
[Link]
[Link]

• QA Tools
• Test Runner – An automated test execution tool, takes XML test plan as input
• OTS – Open testing system
• Tdriver – Test automation driver for UI or functionality testing
• Crash Reporter – Automatically report crash reports
• Rich core dumper
[Link]
[Link]

18
Build Infrastucture
• MeeGo uses OpenSUSE Build Service(OBS) as the build system
• Details of OBS
[Link]
• MeeGo OBS instances
• Official MeeGo OBS [Link]
• Only for building to MeeGo Core, UX and related projects. Restricted access
• Community MeeGo OBS
• Community App developers can use this build system
• Points to official MeeGo OBS for Core and UX
• Access & usage details [Link]
• Private OBS
• App developers can setup OBS instance, which points to Official MeeGo OBS
[Link]
[Link]

• Community Application Support project – for open apps


[Link]

19
VCS, Repos, Bug Tracking
• Most of the projects under MeeGo use Git
• It is up to app developers to chose VCS and location to host the sources
• Open Issue
• Can MeeGo bugzilla be used for apps hosted on MeeGo Garage?

• The MeeGo source code repository


[Link]
• Binary, Package, Image, daily, weekly release repository:
[Link]
• Source code cross reference – browse through the sources, search
[Link]
• MeeGo Bugzilla [Link]

20
Localization
• Localization is very important for the applications
• Helps in increased user base for applications

• MeeGo uses Transifex to help in software, documentation translation


[Link]

• MeeGo localization related details and process


[Link]
[Link]

21
Packaging
• MeeGo uses RPM packaging
[Link]
• Debian to RPM packaging conversion example
[Link]
• Packaging guidelines
[Link]
• Spectacle – Packaging assistant for MeeGo
[Link]

• Package creation options for native apps


• Use OBS build system for creating and managing packages
• Use Qt Creator to create a package
• Build RPM packages manually

• For web based apps use web SDK for packaging


• W3C packaging format is followed

22
Distribution
• MeeGo Garage
• Open source apps can be hosted and distributed
• Still under construction
• Does it support distribution of commercial application ?
• Criteria and guidelines to distribute apps ?
[Link]
• Commercial app developers can use any app store

23
Gaps in the current environment
• Documentation
• Still evolving and has a long way to go
• Architecture - many subsystems don’t have documentation yet
• MeeGo wiki is difficult to navigate and find information
• Turorials, Examples and code snippers needed
• Manuals and guidelines (e.g UI guidelines for Netbook, IVI)
• API
• Many subsystems (middleware components) don’t have API documentation yet
• SDK
• SDK available only for Handset, Netbook UX
• SDK documentation is still evolving
• Automation of SDK setup
• Infrastructure and Tools
• Community OBS
• Garage
• Still under construction

24
Addressing the gaps
• Some ideas to address the gaps
• A focus group for overall app Development environment & infrastucture
• A focus group for overall documentation
• Comparision study of app development environment with other platforms

• Get feedback from application developers


• A formal survey
• A better mechanism, other than mailing lists, to accumulate feedback

25
Questions?

26
Thank You!
[Link]@[Link]

27
Backup Slides

28
MADDE – MeeGo Application Development & Debug Environment

• MADDE offers the following features:


• Command-line cross-compiling
• Multi-platform support (Linux 32-bit/64-bit, Windows, Mac OS X)
• Configurable for different targets & toolchains
• Part of the MeeGo SDK, enables cross platform development
• Integrates with QtCreator
• No documentation is available for MADDE in MeeGo wiki
• SDK documentation has few details about it to configure targets
[Link]

29
Testing & Automation
• Test Runner
• Tdriver
• OTS (open testing system)
• QA Tools wiki pages have more details about the tools
[Link]
[Link]

• The documentation is still evolving. Its confusing to understand the role


of different tools in automation.

30
OBS – Making a product out of MeeGo
• 3rd party application developers can follow similar strategy to build apps
using a private instance of OBS

31
MeeGo SDK – Simulator with Xephyr
• Image showing Handset UI session running with Xephyr on nVidia graphics card
• From MeeGo chroot, export DISPLAY to an already running Xephyr window started from
your work station and run startmeego script

32
MeeGo SDK – Emulator with QEMU

33

You might also like