New Qt APIs for Mobile Development. Mobility I Alex Blasche



Similar documents
Surface and Volumetric Data Rendering and Visualisation

The Most Popular UI/Apps Framework For IVI on Linux

[PRAKTISCHE ASPEKTE DER INFORMATIK SS 2014]

Replacing SDL with Qt/QML

Give a Push to Your Qt Application with Qt Cloud Services and WebSockets

Qt Signals and Slots. Olivier Goffart. October 2013

Beginning Nokia Apps. Development. Qt and HTIVIL5 for Symbian and MeeGo. Ray Rischpater. Apress. Daniel Zucker

Mobile Development with Qt

Extending your Qt Android application using JNI

From the Desktop to the Mobile Cloud: Extending your Qt Widget Desktop Application as a Back-end Service

Network Programming in Qt. TCP/IP Protocol Stack

Crash course to. Qt Quick Game Programming

Andreas Burghart 6 October 2014 v1.0

CORBA, DCOP and DBUS. A performance comparison.

Programmers rejoice: QML makes business people understand. Qt Developer Days 2014 Hinrich Specht 2. September 2014 Folie 1

Tizen Core APIs: A Core Framework Layer To Build In-House Applications. Jin-Woo Jeong

Android Auto PoC. October Oct-15. Maxim Ovchinnikov Architect Harman

Cross-Platform Software Considerations for Internet of Things

BlackBerry 10. App Development. Learn. A Cascades-Driven Approach. Build cutting-edge BlackBerry 10 apps with Qt, C++, and the Cascades UI Framework

Microsoft Dynamics CRM2015 Fast Track for developers

SQLITE C/C++ TUTORIAL

Design Document. Offline Charging Server (Offline CS ) Version i -

COURSE CONTENT. GETTING STARTED Select Android Version Create RUN Configuration Create Your First Android Activity List of basic sample programs

Qt in Education. The Qt object model and the signal slot concept

CORBA Programming with TAOX11. The C++11 CORBA Implementation

General principles and architecture of Adlib and Adlib API. Petra Otten Manager Customer Support

Multimedia Playback & Streaming

Using vcenter Orchestrator AMQP Plug-in

How To Use Blackberry Web Services On A Blackberry Device

Leveraging Tizen IVI Platform for Realizing V2X Use Cases

CSTA Overview. OpenScape Voice (OSV) July 2010

Network Programming. Writing network and internet applications.

Getting Started with Android Programming (5 days) with Android 4.3 Jelly Bean

Creating Synergies on the Cloudbox. Mohan Sundar Samsung Electronics

Nokia for Business. Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation

Introduction to Tizen SDK Alpha. Taiho Choi Samsung Electronics

INTERMEDIATE ANDROID DEVELOPMENT Course Syllabus

3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version

URI and UUID. Identifying things on the Web.

Oracle Tuxedo Systems and Application Monitor (TSAM)

Mobicents 2.0 The Open Source Communication Platform. DERUELLE Jean JBoss, by Red Hat 138

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

HTTPS hg clone plugin library SSH hg clone plugin library

Operating System Structure

Specific Simple Network Management Tools

Python for Series 60 Platform

An API for Reading the MySQL Binary Log

Avid. Interfacing with Avid inews. Including inews Web Services Version 1.0

Comp151. Definitions & Declarations

TREK GETTING STARTED GUIDE

JGroups: : a Java system for communicating with a group of machines

vsphere Client Hardware Health Monitoring VMware vsphere 4.1

CSE 333 SECTION 6. Networking and sockets

SavvyDox Publishing Augmenting SharePoint and Office 365 Document Content Management Systems

Introduction to Oracle WebLogic. Presented by: Fatna Belqasmi, PhD, Researcher at Ericsson

Nokia E61i Configuring connection settings

Using the vcenter Orchestrator Plug-In for vsphere Auto Deploy 1.0

QML and JavaScript for Native App Development

Custom SIS Integration Type Development. Jim Riecken Blackboard Learn Product Development

Lecture 1 Introduction to Android

DEVELOPING NFC APPS for BLACKBERRY

Big Data and Analytics: Challenges and Opportunities

RS MDM. Integration Guide. Riversand

ECM (ELO-KIT-ECMG2-AND)

Cross-platform C++ development using Qt

Configuring SonicWALL TSA on Citrix and Terminal Services Servers

Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation

Course 10978A Introduction to Azure for Developers

AUTOMOTIVE BLUETOOTH TELEPHONY.

Android Application Development

Mobile Devices: Server and Management Lesson 05 Service Discovery

Exchange, MAPI & Evolution. Johnny Jacob <jjohnny@novell.com> johnnyjacob.org

SmartSantander Open Data access using FI-WARE G.E. [ORION]

Application Development

A Study of Android Application Security

Chapter 2: Remote Procedure Call (RPC)

Comparison of Linux and Symbian Based Implementations of Mobile Peer-to-Peer Environment

Channel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG

Using Patterns with WMBv8 and IIBv9

Streaming Data, Concurrency And R

Android (Basic + Advance) Application Development

TREK GETTING STARTED GUIDE

Diagram 1: Islands of storage across a digital broadcast workflow

Using VMware vrealize Orchestrator Plug-Ins

Windows Server 2003 default services

SharePoint 2013 for Business Process Automation

CTC What's New?

VoIP support on Qtopia. Vladimir Minenko, Ph.D.

Professional Tizen Application Development

Transcription:

New Qt APIs for Mobile Development Mobility I Alex Blasche

What is Qt Mobility about? Mobile Gap Compatibility Availability QML support Beyond Mobile

Mobility API Overview Consumer engagement Data Driven Infrastructure Future Feedback Contacts Bearer Management Bluetooth Location Document Gallery Publish & Subscribe NFC Multimedia Messaging Sensors Organizer Service Framework

Qt Mobility Presentations MOBILITY I Service Framework MOBILITY II Positioning Data APIs Maps Contacts Navigation QML Sensors

Service Framework Metadata store Qt Plugins Qt Service Framework Plug-in system on steroids Simplifies cross process communications Higher degree of choice for developers Enabler for 3rdparty customisation IPC

Service Framework Interface name com.nokia.qt.echointerface Version 1.0 Service name EchoService Custom properties class EchoServiceClass : public QObject { Q_OBJECT public: EchoServiceClass(QObject* parent = 0); Q_SIGNALS: void broadcast(const QString& msg); public slots: void sendmessage(const QString& msg); public: Q_INVOKABLE QString lastmessage() const; void printdebug() const; };

Service Framework (Client) //load the service QServiceManager manager; QServiceInterfaceDescriptor desc = manager.findinterfaces( EchoService ).at(0); QObject* echo = manager.loadinterface(desc); //listen to broadcasts QObject::connect(echo, SIGNAL(broadcast(QString)), this, SLOT(received(QString))); //send a message QString message = Hello World ; QMetaObject::invokeMethod(echo, sendmessage,q_arg(qstring, message)); QMetaObject::invokeMethod(echo, lastmessage, Q_RETURN_ARG(QString, message));

Qt Application Service Framework Architecture Service Framework QObject Plug-in based Services Qt Plugin Framework <<invoke>> <<discover>> Registration/ Lookup Out-of-process Services Metadata Store Cross Platform IPC DBUS RMessage Dynamic MetaObjects Sockets

Service Framework (IPC) Service Process Client Process Service Framework Service Object Slots, Signals, invokable functions, Properties Proxy Object QMetaObject Serialized MetaObject QMetaObject Copy Message Abstraction Message protocol Message Abstraction DBus Symbian IPC Sockets

ServiceFramework register = new QRemoteServiceRegister(); QRemoteServiceRegister::Entry entry= register->createentry<echoservice>( "EchoService", "com.nokia.qt.example.sfwecho", "1.1"); entry.setinstantiationtype( QRemoteServiceRegister::GlobalInstance); register->publishentries("sfwecho_service");

Service Framework

Service Framework Plug-ins Service object type castable Private instances Common (A)Synchronous calls No stubs Automated service start IPC Global/private instances Custom type limitation Single level QObject Security checks

Data-Driven APIs Delete Create Update Retrieve Contacts Documents Gallery Landmarks Messaging Organizer

Data-Driven API s Addressbook entries Contacts Albums Documents Folders Images Playlists Doc Gallery Points of interest Landmarks SMS MMS Email IM Events Notes Journals Todos Messaging Organizer

Data-Driven APIs Common Elements Metadata management Asynchronous requests Event Notifications Global data storage Grouping/Categorisation API naming & principles

Contacts (the example) Device Relationship ActionFactory 1..* <<creates>> Manager 1..* Contact Action 1..* Detail <<targets>> Data Store ActionTarget

Contacts (querying) Manager Abstract Request <<uses>> Start/Cancel Progress notifications Errors Request Type specific results Fetch Save Types are API specific

Mobility & QML Declarative way implementing UI Requires Qt 4.7+ Almost all API s have a QML API/wrapper C++ API designed to be easily integratable

QML orientation example orientation.qml import Qt 4.7 import QtMobility.sensors 1.1 OrientationSensor { active: true onreadingchanged: { if (reading.orientation == OrientationReading::TopUp) display.text = TopUp ; else display.text = Unknown ; } } int main(int argc, char** argv) { QApplication app(argc, argv); QDeclarativeView v; v.setsource( qrc:/orientation.qml ); v.show(); return app.exec(); }

Mobility & QML integration orientation.qml main.cpp qmlviewer <<imports>> declarative_sensors plug-in <<links>> <<links>> QtSensors Library QtDeclarative Library

Mobility I QUESTIONS?