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

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 of Build Cutting edge Mobile Apps using QML and JavaScript for MeeGo N9: Linux Foundation Collaboration...

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