41
QML & JavaScript on MeeGo Rajesh Lal MeeGo Team, Nokia Silicon Valley FUN with

QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

  • Upload
    raj-lal

  • View
    5.158

  • Download
    0

Embed Size (px)

Citation preview

Page 1: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

QML & JavaScript on MeeGo

Rajesh LalMeeGo Team, Nokia Silicon Valley

FUN with

Page 2: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Tools Available

AdvancedGraphics & Animation

Rich Mobile Apps

3 Steps for MeeGo Development ( with demo )

Page 3: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Mobile Apps Revenue ($ Million)

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

4,250

6,770

 29,500(estimated)

Worldwide Total Revenue

Page 4: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

What is MeeGo

is a Linux-based open source mobile operating system

Targeted to mobile devices & consumer electronics

Page 5: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

What makes MeeGo Exciting ?

Fully Open Source

Linux Foundation

Target Multiple devices Smart phones, Tablets, Net books,

In-Vehicle Infotainment (IVI) SmartTV, IPTV-boxes

MeeGo V1.1 Available Today

Page 6: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

3 Steps to FAST MeeGo Development

Tools Available

AdvancedGraphics & Animation

Rich Mobile Apps

TODAY Qt Quick & QML JavaScript

Page 7: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Step1: Development Environment

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

… and we have real deviceAvailable Today

Page 8: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Qt Application Framework

Page 9: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Integrated Development Environment

Qt Creator

Page 10: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Qt Designer

• UI Designer• GUI Designer

Page 11: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Simulator

Simulator

Storage NetworkLocationContactsSensorsGalleryCamera

{

Page 12: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

…and the Device

N900MeeGo

Page 13: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Step 2. Advanced Graphics & Animations

Declarative Runtime

Qt Meta Object Language(QML)

Quick Designer

Qt Quick

Page 14: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

QML = Powerful Declarative Language

Page 15: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Creating a Game in Qt Quick

Angry Developer

Page 16: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

1. Cutting Edge UI2. JavaScript binding3. Putting it Together

Creating a Game in Qt Quick

Three Parts

Page 17: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Demo: Angry Developer

Playing Moving

Page 18: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Angry Developer: Missed

AngryMissed

Page 19: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Angry Developer: Hit “Hurrah!”

HappyDestroyed

Page 20: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

QML Elements

Page 21: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

State Change

Playing Angry Happy Pig Moving Pig Destroyed

Page 22: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

State Change

Page 23: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Ball Animation

Bouncing Ball Animation Throw Transition

Page 24: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Bouncing Ball animation

Page 25: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Throw Transition

Page 26: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

QML Logic (2 Timers)

Timer for Pig’s Movement

Timer for Hit or Miss

Page 27: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Timer Pig’s Movement

Page 28: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Timer Hit or Miss

Page 29: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Step 3. Rich Mobile Apps

JavaScript Expressions

Import JavaScript Files

RSS, XML, JSON, REST

Multi ThreadedJavaScript

Page 30: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

JavaScript to build Mobile Apps

Qt Container

QMLJavaScript

C++ is not Required

Page 31: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

JavaScript file: Clock.js

Page 32: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

QML Binding

Page 33: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

JavaScript to build Mobile Apps

Putting it ALL TogetherIn 5 Steps

Page 34: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @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 35: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

2/5 Add Qt Declarative

QT += declarativeIn Project.pro file add2In our case add this to NativeQMLJS.pro

Page 36: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

3/5 Add Qt Declarative

3 In main.cpp, include QtDeclarative and add code

Page 37: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

4/5 Add Files

Add QML file , Images and JavaScript File as resources

* Make sure your JavaScript file name is lowercase

Page 38: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @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 39: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Demo

Angry Developer

Page 40: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

Steps to Develop FAST on

Page 41: QML & JavaScript on MeeGo: Flourish Conference 2nd Apr 2011, at UIC Chicago @iRajLal

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

Download MeeGohttp://meego.com/downloads

Deploy using MADDEhttp://wiki.maemo.org/MADDE/QtCreator_integration_for_windows

Questions [email protected] @rajeshlalnokia

THANK YOU