Engineering the Ambulant Multimedia Player

Similar documents
Bridging Python to C++ - and vice-versa

QML and JavaScript for Native App Development

01. Introduction of Android

Mobile Application Development

Mobile App Infrastructure for Cross-Platform Deployment (N11-38)

Enable Your Automated Web App Testing by WebDriver. Yugang Fan Intel

JavaFX Session Agenda

Smartphone Application Development using HTML5-based Cross- Platform Framework

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

Supported Client Devices: - SIP/H.323 hardware and software end-points

Study of SAP ERP Connection System Driven in Smartphone

Developing Applications for ios

RIA DEVELOPMENT OPTIONS - AIR VS. SILVERLIGHT

Lecture 1 Introduction to Android

Integrating Mobile into Your Cross- Platform Strategy with Qt

AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev

Cross-Platform Tools

Company Profile TeamDev Ltd.

Study of SAP ERP Connection System Driven in Smartphone

Esri GIS Mobile Solutions. John Sharrard

Choosing a Mobile Application Development Approach

Technical and Business Challenges for Mobile Application Developers. Tony Wasserman Carnegie Mellon Silicon Valley Mobicase 2010

Building native mobile apps for Digital Factory

Getting Started with Tizen SDK : How to develop a Web app. Hong Gyungpyo 洪 競 杓 Samsung Electronics Co., Ltd

ArcGIS Web Mapping. Sam Berg, esri

Developing Mapping Applications with ArcGIS Runtime SDK for Windows Mobile. Jay Chen Justin Colville

ios SDK possibilities & limitations

GUI and Web Programming

ipad, a revolutionary device - Apple

Dealing with the Dilemma: Mobile App Development Approach & Decisions

HTML5 the new. standard for Interactive Web

Developing PlayReady Clients

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7

HTML5 An Introduction

MA-WA1920: Enterprise iphone and ipad Programming

Best practices building multi-platform apps. John Hasthorpe & Josh Venman

Article. One for All Apps in HTML5

What We Learned From Porting 50+ Cloud Apps to Tizen. Dima Malenko, Vlad Pavlov, rollapp Inc.

ClaySys AppForms for SharePoint

Cross Platform Mobile. -Vinod Doshi

Web Development with the Eclipse Platform

Mobile Learning Application Based On Hybrid Mobile Application Technology Running On Android Smartphone and Blackberry

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Bridging the Gap: from a Web App to a Mobile Device App

To Study and Design a Cross-Platform Mobile Application for Student Information System using PhoneGap Framework

Questions and Answers

Synote Mobile. HTML5 Responsive Design Video Annotation Application

Take full advantage of IBM s IDEs for end- to- end mobile development

Mobile Phones Operating Systems

Mobile App Framework For any Website

CROSS PLATFORM APP A COMPARATIVE STUDY

Product Brochure.

Mobile Enterprise Application Development - a Cross-Platform Framework

eggplant for Cross Platform Test Automation TestPlant Nick Saunders

Evaluating Cross-Platform Development Approaches (WORA Tools ) for Mobile Applications

Cross Platform Applications with IBM Worklight

Sybase Unwired Platform 2.0

Android Architecture. Alexandra Harrison & Jake Saxton

Programming Mobile Apps with Python

Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application

Mobile App Development

Outline. 1.! Development Platforms for Multimedia Programming!

CURRICULUM VITAE. Senior ios developer position

SAP BusinessObjects Design Studio Overview. Jie Deng, Product Management Analysis Clients November 2012

Cross-Platform Mobile Apps Solution

A Hybrid Visualization System for Molecular Models

Development of mobile applications for multiple platforms

place/business fetch details, removefromfavorite () function, 189 search button handler bind, B BlackBerry build environment

Survey, Comparison and Evaluation of Cross Platform Mobile Application Development Tools

System Requirements for Microsoft Dynamics NAV 2016

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Technically Speaking: Moodle, mobile apps and mobile content

Generate Android App

This document is provided to you by ABC E BUSINESS, Microsoft Dynamics Preferred partner. System Requirements NAV 2016

More details >>> HERE <<<

Literature Review: Starting Mobile Application Development for E-Sports Portal Hayoung Noh

Smart Phones Application development using HTML5 and related technologies: A tradeoff between cost and quality

Coding for Desktop and Mobile with HTML5 and Java EE 7

System Requirements for Microsoft Dynamics NAV 2016

Mobile Solutions in ArcGIS. Justin Fan

Overview focus on breadth understanding not depth (that s what the labs are for )

Develop Hybrid Mobile Applications with Apache Cordova & PhoneGap Enterprise

Mobile App Design and Development

ATLAS CARTOGRAPHIC TECHNOLOGIES LTD. (ATLASCT) Dedicated Geo-Server. Business Proposal

SYST35300 Hybrid Mobile Application Development

Transcription:

Engineering the Ambulant Multimedia Player Jack Jansen <Jack.Jansen@cwi.nl> SEN5 group CWI 1

Outline of the Talk What is Ambulant? Design Implementation Success stories Lessons learned 2 2

What is Ambulant? Multimedia playback engine SMIL-based Desktop: Windows, Mac, Linux Browser plugin: Safari, IE, Firefox (win/linux) Mobile: ipad, iphone Initial implementation sponsored bt NLNet Foundation 3 3

Target Market Ourselves Test SMIL standardisation Platform for experimentation Similar groups Generally: scientists, experimentors and hackers 4 4

Design Guidelines Use formalisms only sparingly Small team Highly trained staff Tight cooperation Nothing is cast in concrete Agile Development! Yeah! Probably influenced by The Zen of Python 5 5

Design Requirements Adaptable, extensible, embeddable Portable Platform-native GUI Enables use of native media toolkits Expected user experience Efficient Handhelds, embedded systems 6 6

Global Design 25 UML-ish diagrams Plugin Engine Task Scheduler 1500 lines of text Parser DOM tree Layout Manager Each component can be replaced Almost all have been... Machine independent Machine dependent Scheduler SMIL State Datasource Playable Renderer Surface Datasource Playable Renderer Playable GUI window Single instances Multiple instances 7 7

Embedding and Extending Clean well-defined API Fully available in C++, Python Python bindings are two-way Generated Beautiful... Wanted: COM/OLE, Java? 8 8

State of the Code Uses ffmpeg, live, expat, xerces, SDL, gettext,... Linux: gtk, qt MacOS: Cocoa, CoreGraphics Windows: DirectDraw, Direct2D ios: UIKit+CoreGraphics Dropped: Zaurus, Nokia 770, Windows Mobile Missing: WM7, Android, Symbian 9 9

Meaningless Metrics About 100KLOC 60 Interfaces 450 Methods 450 Classes { grep, wc, interpret, refine} 10 10

Development Environment Native: auto*, make XCode Visual Studio hg Doxygen 11 11

Development Environment - 2 Poor-mans code review (checkin messages) Nightly builds Test suite (finally) under development 12 12

Use Case - SMIL Extensively used during development of SMIL 2.1 SMIL 3.0 13 13

Use Case - Amis Daisy Reader Digital Talking Books Embeds Ambulant Screen reading Highlighting Navigation www.daisy.org/amis 14 14

Use Case - Ambulant Annotator FP6, BRICKS project Seminal Secondary Screen paper Sofa-based editing and sharing Python-based XMLRPC server in Ambulant Client UI on the handheld Pablo Cesar, Dick C.A. Bulterman and Jack Jansen. 2008. Usages of the Secondary Screen in an Interactive Television Environment: Control, Enrich, Share, and Transfer Television Content. In LNCS VOL. 5066/2008, pp. 168-177. Springer Berln/Heidelberg, DE. DOI= 10.1007/978-3-540-69478-6_22 15 15

Implementation Plugin Engine Task Scheduler XMLRPC Server Machine independent Machine dependent Parser DOM tree Scheduler SMIL State Layout Manager Datasource Playable Renderer Surface Datasource Playable Renderer Playable GUI window Single instances Multiple instances Runs on TV Various UIs on various handhelds 16 16

Use Case - Adaptive Timebased Web Apps Integrate time into web application Ambulant in WebKit plugin Uses WebKit DOM Glue in Python/WebKit/JavaScript Jack Jansen and Dick C.A. Bulterman. 2008. Enabling adaptive time-based web applications with SMIL state. In Proceeding of the eighth ACM symposium on Document engineering (DocEng '08). ACM, New York, NY, USA, 18-27. DOI=10.1145/1410140.1410146 17 17

Implementation Plugin Engine Task Scheduler WebKit Glue Parser DOM tree Layout Manager Machine independent Machine dependent Scheduler SMIL State Datasource Playable Renderer Surface Datasource Playable Renderer Playable GUI window Single instances Multiple instances Glue is Python and Javascript 18 18

Use Case - Ta2 VCE FP7 Project Composition-based video-conferencing Adds Live Video, Flash, specialised renderers Adds Python-based XMLRPC control Jack Jansen, Pablo Cesar, Dick C.A. Bulterman, Tim S. Stevens, Ian C. Kegel and Jochen Issing. 2011. Enabling Composition-Based Video-Conferencing for the Home. Submitted to IEEE Trans.MM. 19 19

Implementation Plugin Engine Task Scheduler XMLRPC Server Machine independent Machine dependent Parser DOM tree Scheduler SMIL State Layout Manager Datasource Playable Renderer Surface Datasource Playable Renderer Playable GUI window Single instances Multiple instances Driven by other components Complexity is in SMIL 20 20

Use Case - Axmedis Automatic Production of Media for Multichannel Distribution CWI not involved FP6 Project, code still available http://www.axmedis.org/documenti/view_documenti.php?doc_id=3507 www.axmedis.org 21 21

What we did Right API and willingness to adapt and refactor small team! Multi-everything to the core Light-weight (human) processes 22 22

What we did Wrong Framework, should have been Toolbox:-( Hinders re-use by others No Application object Hinders embedding Some things left too long Nightly builds Automatic testing 23 23

Closing Remarks Slides: http://www.cwi.nl/~jack/presentations/ ambulant-se.pdf See www.ambulantplayer.org for more Questions, discussion,... 24 24