build cutting edge mobile apps using qml and javascript for meego n9: linux foundation collaboration...

35
Build Cutting-edge Mobile Apps Using QML & JavaScript Rajesh Lal MeeGo Team, Nokia Silicon Valley

Upload: raj-lal

Post on 19-May-2015

3.920 views

Category:

Business


1 download

DESCRIPTION

Learn to create cutting-edge mobile applications using QML and JavaScript on MeeGo devices. Know how to apply some advanced graphics and animations with simple QML and see how JavaScript allows you to create a feature rich application. No C++ required. A tutorial with live demos targeted to beginner to intermediate Mobile developers interested in developing mobile applications on Linux based mobile devices.

TRANSCRIPT

Page 1: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Build Cutting-edge Mobile Apps

Using QML & JavaScript

Rajesh LalMeeGo Team, Nokia Silicon Valley

Page 2: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

MeeGo AppCutting-edge

3 Steps for MeeGo Development

Rich Feature

+ =

Page 3: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

2009

2010

2013

Mobile Apps Total Revenue ($ Million)

http://www.gartner.com/it/page.jsp?id=1282413

4,250

6,770

 29,500(estimated)

Worldwide

Page 4: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

What makes Exciting ?

Fully Open Source

Linux Foundation

Target Multiple devices Available Today

MeeGo V1.1 - HandsetsMeeGo V1.1 - Net books

MeeGo V1.1 - In-Vehicle Infotainment

… and SmartTV, IPTV-boxes, Tablets

Page 5: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

MeeGo Development Environment

• Qt Application Framework• IDE – Qt Creator• Qt Quick• Qt UI Designer• Qemu Emulator• Smartphone Simulator

… and we have a device to testAvailable Today

Page 6: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

3 Steps to Develop FAST on MeeGo

Cutting-edge UI Rich Mobile Apps Angry Developer

Qt Quick & QML JavaScript Game

+ =

Page 7: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Cutting-edge Graphics & Animation

QML Declarative Runtime

Quick Designer

Qt Quick Cutting Edge

Page 8: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

QML = Powerful Declarative Language

Graphics

Elements

Shapes

Text

Animation

State

Transitions

Transform.

Binding

Property

JavaScript

C++

Page 9: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Creating a Game

Angry Developer

Page 10: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

1. Cutting Edge UI1 QML file & images

2. JavaScript binding 1 JavaScript file

3. Putting it Together

Creating a Game using Qt Quick

Page 11: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Game: Angry Developer

Playing Moving

Page 12: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Angry Developer: Missed

AngryMissed

Page 13: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Angry Developer: Hit “Hurrah!”

HappyDestroyed

Page 14: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

QML Elements

Page 15: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

State Change

Playing Angry Happy Pig Moving Pig Destroyed

Page 16: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

State Change

Page 17: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Ball Animation

Bouncing Ball Animation Throw Transition

Page 18: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Bouncing Ball Animation

Page 19: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Throw Transition

Page 20: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

QML Logic (2 Timers)

Pig’s Random Movement

Hit or Miss

Page 21: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Timer Pig’s Movement

Page 22: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Timer Hit or Miss

Page 23: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Step 2. Rich Mobile Apps

JavaScript Expressions

Import JavaScript Files

RSS, XML, JSON, REST

Multi ThreadedJavaScript

Page 24: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

JavaScript to build Rich Features

Qt Container

QMLJavaScript

C++ is not Required

Page 25: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

JavaScript file: Clock.js

Page 26: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

QML Binding

Page 27: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Putting the Game Together

In 5 easy Steps

Page 28: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Step1/5: Create New Application

Create new Mobile Qt Application1

Select Qt for PR1.3

Remove files • mainwindow.ui• mainwindow.h• mainwindow.cpp

Page 29: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

2/5 Add Qt Declarative

QT += declarativeIn Project.pro file add2

In our case add this to NativeQMLJS.pro

Page 30: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

3/5 Add Qt Declarative

3 In main.cpp, include QtDeclarative and add code

Page 31: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

4/5 Add Files

QML file , Images and JavaScript File

* Make sure your JavaScript file name is lowercase

as resourcesAdd

Page 32: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

5/5 Add the Binding

Add the binding in QML file and call JavaScript

import "clock.js" as MyClock…Text { id:txttime text: MyClock.gettime()}

Page 33: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Demo

Angry Developer

Page 34: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

3 Steps for FAST development on

Download Qt SDK

Create UI QML

Develop Logic

JavaScript

Page 35: Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration Summit Apr7 2011 San Francisco @iRajLal

Thank YouDownload MeeGo

http://meego.com/downloads

Get Qt SDK with Qt Quickhttp://get.qt.nokia.com

Know MADDEhttp://wiki.maemo.org/MADDE

Questions [email protected] @rajeshlalnokia