19
Copyright © 2009 LiMo Foundation How LiMo Foundation is enabling BONDI widget development Over the Air Imperial College, London 25 Sep 09 Matt Swan Technology Manager LiMo Foundation

LiMo Foundation BONDI SDK

Embed Size (px)

DESCRIPTION

LiMo Foundation is sponsoring the development of a Web SDK for the creation of BONDI-compliant widgets for mobile phones.See bondisdk.limofoundation.org for more detailsThis talk and demo was given at OverTheAir developer event in London, Sep 09.

Citation preview

Page 1: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation

How LiMo Foundation is enabling BONDI widget development

Over the Air

Imperial College, London

25 Sep 09

Matt Swan

Technology Manager

LiMo Foundation

Page 3: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation

Vodafone H1 360 and M1 360 announced yesterday

3

The first LiMo R2-based phones!

Page 4: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation 4

&

Page 5: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation

Send / receive

SMS and MMS

Read/write to calendar,

contacts, tasks

Take pictures

and videos

Read/write to file

system

View images gallery

Get current location

(GPS)

And more...

5

Page 6: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation 6

Web Runtime

BONDI Widgets BONDI Websites

Javascript Device APIs + Security Framework

Page 7: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation

BONDI’s secure architecture

7

Diagram taken from BONDI_Architecture_and_Security_v1.01.pdf

Page 8: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation 8

Page 9: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation 9

Web SDK

Debugging support

Rapid Application

Development (RAD)

Coding assistance

Documentation

Page 10: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation

Open source BONDI Web SDK project

• Two LiMo Member companies, Aplix and Azingo, are collaborating within LiMo to create an Eclipse-based BONDI Web SDK

• Will run on Windows, Mac and Linux

• Open source development model – find the source and documentation at http://bondisdk.limofoundation.org/

• Can be used to develop for any BONDI-enabled phone, LiMo or non-LiMo

10

Page 11: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation

http://bondisdk.limofoundation.org

11

Get involved, test it out and raise bugs !

Page 12: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation

BONDI Web SDK functionality

Widget development perspective

• Asset authoring, import/export API definitions, code assist for HTML/CSS/JS, API browser, config.xml editor, signing support, deployment to website / file system / target device, local preview emulation, documentation

Debug perspective:

• Target definition, Web app execution control, Debug control (break/continue/step in/step over/step out), Breakpoint management (add/remove/set parameters), Expressions evaluation, add/remove watch

12

Not yet implemented

Implemented in current Beta

Page 13: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation

Debugging

• Deploying and debugging your web app should be possible in the following 3 scenarios :

In the SDK’s “Phone View” browser preview emulator

• using a Host OS web engine

In the SDK’s LiMo Platform emulator (not supplied by this project)

On the handset itself

• The debug interface protocol is planned to be based on ADB and ChromeDevTools

13

Page 14: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation14

Use Case 1: Preview emulator

1414

BONDI

Web SDK

Host OS Browser

preview

Browser

Web Engine

Debug agent dbg

Key:

Eclipse code

Debug code

Web Runtime

Emulator

BONDI APIsOpen Debug

Protocol over

IP

Host PC

JS Engine

BONDI Device APIs

BONDI API Stubs*

*Certain BONDI APIs may be

implemented rather than stubbed

Page 15: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation15

Use Case 2: LiMo Platform emulator

1515

BONDI

Web SDK

LiMo Emulator

including

LiMo Reference

Implementation

binaries

LiMo WRT

Debug agent dbg

Key:

Eclipse code

Debug code

Web Runtime

Emulator

BONDI APIsOpen Debug

Protocol over

IP

Host PC

JS Engine

BONDI Device APIs

BONDI API

implementations

Page 16: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation 16

Use Case 3: LiMo handset

BONDI

Web SDK

Debug agent

Key:

Eclipse code

Debug code

Web Runtime

LiMo phone

BONDI APIs Open Debug

protocol

over IP

Host PC Phone

LiMo Phone

including

LiMo Reference

Implementation

binaries

LiMo WRT

dbg JS Engine

BONDI Device APIs

BONDI API

implementations

Page 17: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation

Demo

17

Page 18: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation

Where can I find out more about BONDI?

• BONDI v1.0 spec was released on 28th May 09 (v1.01 on 27th July 09)• http://bondi.omtp.org/1.01/

• Builds on existing W3C standards for web widgets :• http://www.w3.org/TR/widgets/

• Fourteen Javascript Device Interfaces :• http://bondi.omtp.org/1.01/apis/index.html

• http://bondi.omtp.org/1.01/apis/BONDI_Interface_Requirements_v1.0.pdf

• Architecture and Security requirements :• http://bondi.omtp.org/1.01/security/BONDI_Architecture_and_Security_v1

_01.pdf

• BONDI Compliance for Web Runtimes :• http://bondi.omtp.org/1.01/compliance/BONDI_Compliance_Process_v1.0.

pdf

• http://bondi.omtp.org/1.01/compliance/BONDI_Compliance_Matrix_v1.0.xls

18

Page 19: LiMo Foundation BONDI SDK

Copyright © 2009 LiMo Foundation

Appendix - BONDI Device Features

1. The bondi module itself

2. The Application Launcher module: bondi.applauncher

3. The Messaging module: bondi.messaging

4. The User Interaction module: bondi.ui

5. The File System module: bondi.filesystem

6. The Gallery module: bondi.gallery

7. The Device Status module: bondi.devicestatus

8. The Application Configuration module: bondi.appconfig

9. The Geolocation module: bondi.geolocation

10. The Camera module: bondi.camera

11. The Communication Log module: bondi.commlog

12. The Contact module: bondi.pim.contact

13. The Calendar module: bondi.pim.calendar

14. The Task module: bondi.pim.task

19