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

Development Process For 3Rd Party Meego Application Developers

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)
71 views33 pages

Development Process For 3Rd Party Meego Application Developers

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
You are on page 1/ 33

Development process for 3rd Party

MeeGo Application Developers

Presented by:
Narayana Pattipati
[email protected]
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
http://wiki.meego.com/Devices

7
Community participation & Developer engagement
• Mailing Lists
http://lists.meego.com/mailman/listinfo
http://meego.com/community/mailing-lists
• IRC
http://meego.com/community/irc-channel
• Forums
http://forum.meego.com/
• Working Groups
http://meego.com/about/governance
• Community Office Meetings
http://wiki.meego.com/Community_Office
• Local Networks
http://wiki.meego.com/Local_MeeGo_Networks

8
Developer Documentation, API, FAQ
• Main sources of information
http://meego.com/
http://wiki.meego.com
• Architecture
http://meego.com/developers/meego-architecture
• Architecture documentation for different subsystems
http://wiki.meego.com/Architecture/Documentation
• MeeGo Developers pages
http://meego.com/developers
http://wiki.meego.com/SDK/Docs/1.1
http://wiki.meego.com/Developer_Guide_for_MeeGo_1.1
• MeeGo developer API
http://meego.com/developers/meego-api
• MeeGo Porting guide
http://wiki.meego.com/MeeGo_Porting_Guide
• MeeGo FAQ
http://meego.com/about/faq
http://wiki.meego.com/MeeGo_FAQ

9
Compliance and Guidelines
• MeeGo Compliance and Compliance tools
http://wiki.meego.com/Quality/Compliance#Specification
http://wiki.meego.com/Quality/ComplianceTools
• Coding Guidelines
• UX design principles
http://meego.com/developers/meego-ux-design-principles
• UI design guidelines for different device areas
http://meego.com/developers/ui-design-guidelines

• MeeGo Release Engineering process


http://wiki.meego.com/Release_Engineering

• MeeGo Packaging Guidelines


http://wiki.meego.com/Packaging/Guidelines

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++
http://developer.qt.nokia.com/wiki/Qt_Quick_Tutorial
• 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
http://wiki.meego.com/SDK/Docs/1.1/Web_SDK_with_WRT
http://appdeveloper.intel.com/en-us/article/introduction-web-runtime-meego

• MeeGo 1.1 Application development overview


http://wiki.meego.com/SDK/Docs/1.1/MeeGo_overview

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


http://wiki.meego.com/MeeGo_SDK_Development_Options

http://wiki.meego.com/SDK/Docs/1.1/Getting_started_with_t
he_MeeGo_SDK_for_Linux
• Get started with Web SDK
http://wiki.meego.com/SDK/Docs/1.1/Web_SDK_with_WRT

• MeeGo SDK mailing list for getting help


http://lists.meego.com/listinfo/meego-sdk
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
http://wiki.meego.com/MeeGo_SDK_with_Xephyr
http://wiki.forum.nokia.com/index.php/Qt_MeeGo_handset_SDK_how_to_install_and_use_on_Linux_
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
http://wiki.meego.com/MeeGo_SDK_with_QEMU

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
http://meego.com/devices/netbook/installing-meego-your-netbook
http://meego.com/devices/netbook/installing-meego-netbook/windows-instructions
http://wiki.meego.com/Installation_of_MeeGo_on_notebook
• List of supported devices along with workarounds can be found at
http://wiki.meego.com/Devices

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
http://wiki.meego.com/MeeGo_SDK_with_Xephyr#Application_Development
http://wiki.meego.com/MeeGo_SDK_with_QEMU#Using_QEMU_for_Application_Development
http://wiki.forum.nokia.com/index.php/How_to_use_Qt_Creator_IDE

• 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
http://wiki.meego.com/SDK/Docs/1.1/Creating_Hello_World
http://wiki.meego.com/SDK/Docs/1.1/Debugging_with_Qt_Creator

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
http://repo.meego.com/MeeGo/tools/repos/
http://meego.gitorious.com/meego-developer-tools

• 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
http://wiki.meego.com/Quality/QA-tools
http://www.youtube.com/user/meegoqatools

18
Build Infrastucture
• MeeGo uses OpenSUSE Build Service(OBS) as the build system
• Details of OBS
http://wiki.meego.com/Build_Infrastructure
• MeeGo OBS instances
• Official MeeGo OBS http://build.meego.com/
• 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 http://wiki.meego.com/Build_Infrastructure/Community_Builder
• Private OBS
• App developers can setup OBS instance, which points to Official MeeGo OBS
http://wiki.meego.com/Build_Infrastructure/Community_Builder/Installation
http://wiki.maemo.org/OpenSuse_Build_Service/Installation

• Community Application Support project – for open apps


http://wiki.meego.com/Community_Application_Support

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


http://meego.gitorious.org
• Binary, Package, Image, daily, weekly release repository:
http://repo.meego.com/MeeGo/
• Source code cross reference – browse through the sources, search
http://mxr.meego.com/
• MeeGo Bugzilla http://bugs.meego.com/

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


http://www.transifex.net/

• MeeGo localization related details and process


http://wiki.meego.com/L10n_plan
http://wiki.meego.com/Localization_team

21
Packaging
• MeeGo uses RPM packaging
http://wiki.meego.com/Packaging
• Debian to RPM packaging conversion example
http://wiki.meego.com/Packaging/Deb_conversion_example
• Packaging guidelines
http://wiki.meego.com/Packaging/Guidelines
• Spectacle – Packaging assistant for MeeGo
http://wiki.meego.com/Spectacle

• 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 ?
http://meego.com/garage
• 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!
[email protected]

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
http://wiki.meego.com/SDK/Docs/1.1/Getting_started_with_the_MeeGo_SDK_for_Linux

29
Testing & Automation
• Test Runner
• Tdriver
• OTS (open testing system)
• QA Tools wiki pages have more details about the tools
http://wiki.meego.com/Quality_Assurance_Team
http://wiki.meego.com/Quality/QA-tools

• 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