Extending Tizen Native Framework with Node.js

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

Tizen Web Runtime Update. Ming Jin Samsung Electronics

Development Techniques for Native/Hybrid Tizen Apps. Presenter Matti Pakarinen

ITG Software Engineering

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

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

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin

Lecture 1 Introduction to Android

Azure Day Application Development

Porting Existing PhoneGap Apps to Tizen OS - Development Story

NoSQL web apps. w/ MongoDB, Node.js, AngularJS. Dr. Gerd Jungbluth, NoSQL UG Cologne,

Building a Continuous Integration Pipeline with Docker

Building emerging technology skills using IBM s Platform as a Service

Introduction to Android

Example of Standard API

An Introduction to Android

DevOps with Containers. for Microservices

Mobile Test Automation Framework

Building A Self-Hosted WebRTC Project

The Decaffeinated Robot

Mobile apps development for Joomla

Introduction to Oracle Mobile Application Framework Raghu Srinivasan, Director Development Mobile and Cloud Development Tools Oracle

Client requirements. Engagement Situation

Enabling Cordova (aka PhoneGap) on Tizen. René Pourtier / Luc Yriarte

Disclaimer: The contents in this document are only my personal opinions, do not reflect the opinions of my employer or anyone else.

Logicify Fact Sheet. We bring logic to the software systems and development processes. We call this process to logicify.

Application Framework: Apertis Hands-on

Cross-Platform Tools

ios Hybrid Mobile Application Development

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

Java in Web 2.0. Alexis Roos Principal Field Technologist, CTO Office OEM SW Sales Sun Microsystems, Inc.

OpenShift. OpenShift platform features. Benefits Document. openshift. Feature Benefit OpenShift. Enterprise

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

Splunk for.net Developers

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

Apache Jakarta Tomcat

How to Run Your Existing Android APK on the Tizen Platform. Chandra Bajpai Matt O Keefe OpenMobile World Wide

Understand and Build Android Programming Environment. Presented by: Che-Wei Chang

Etanova Enterprise Solutions

S ELEC T IONS F ROM DZON E S GU ID E TO M OB ILE D E V E LO P M E N T 2015 EDITION R E S E AR C H PA RTNER SPOTLIGHT

How To Develop An Open Play Context Framework For Android (For Android)

HTML5, The Future of App Development

General Introduction

BogDan Vatra and Andy Gryc. Qt on Android: Is it right for you?

Whitepaper. Trans. for Mobile

Module Title: Software Development A: Mobile Application Development

Agenda. Success Stories with OpenShift. 11:15-11:45 am. OpenShift Tech Overview 9:40-10:30 am. Red Hat Mobile on OpenShift 10:45-11:15 am

MEAN/Full Stack Web Development - Training Course Package

Here to take you beyond Mobile Application development using Android Course details

Native vs. HTML5 Mobile App Development

Tizen Technical Overview 枪 晦 随 鬴 缃 拜 枋 幞 垖 幁 穧 幤

Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd.

QML and JavaScript for Native App Development

Tutto quello che c è da sapere su Azure App Service

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

JC Now. Case Study in Building an App on the Cheap. Nick O Day GIS Manager. be the exception

Node Without Servers: Event-Driven Computing with AWS Lambda

Android Basics. Xin Yang

All About Android WHAT IS ANDROID?

RED HAT CONTAINER STRATEGY

-Android 2.3 is the most used version of Android on the market today with almost 60% of all Android devices running 2.3 Gingerbread -Winner of

Mobile development with Apache OFBiz. Ean Schuessler, Brainfood

Using AllJoyn with Apache Cordova, Python & Node

Android Developer Fundamental 1

Modern App Architecture for the Enterprise Delivering agility, portability and control with Docker Containers as a Service (CaaS)

Intel IT s Cloud Journey. Speaker: [speaker name], Intel IT

Introduction to Android Development. Jeff Avery CS349, Mar 2013

RED HAT SOFTWARE COLLECTIONS BRIDGING DEVELOPMENT AGILITY AND PRODUCTION STABILITY

Chatbots 3.3. Chatbots in Web Applications with RiveScript. Presented by Noah Petherbridge

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

The Most Popular UI/Apps Framework For IVI on Linux

SOFTWARE TESTING TRAINING COURSES CONTENTS

The Learn-Verified Full Stack Web Development Program

Open Source for Cloud Infrastructure

Basic Trends of Modern Software Development

Private Cloud Management

Computer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices

Stackato PaaS Architecture: How it works and why.

An Introduction to Android. Huang Xuguang Database Lab. Inha University

BELATRIX SOFTWARE. Why you should be moving to mobile Cross Platform Development? Introduction

Choosing a Mobile Application Development Approach

Crosswalk: build world class hybrid mobile apps

Introduce Configurable Mobile App Development. Moxie Zhang Esri R&D Center Beijing

MarkLogic Server. Reference Application Architecture Guide. MarkLogic 8 February, Copyright 2015 MarkLogic Corporation. All rights reserved.

Node.JS Appliances on Embedded Linux Devices. Mehmet Fatih Karagöz & Cevahir Turgut

Development for Mobile Devices Tools from Intel, Platform of Your Choice!

Android Application Development

Enterprise Mobile App Management Essentials. Presented by Ryan Hope and John Nielsen

GUI and Web Programming

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

MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER

Mobile Phones Operating Systems

Offerte del 13 giugno 2014

The Future of IoT. Zach Shelby VP Marketing, IoT Feb 3 rd, 2015

RIA Technologies Comparison

Workshop on Android and Applications Development

Building the next generation of Mobile Apps with Facebook. Bo Zhang Head of Platform Partner Engineering, APAC

Constantly monitoring the technology landscape, we select and adopt for you the best solutions available.

Harmonizing policy management with Murphy in GENIVI, AGL and TIZEN IVI

Coding for Desktop and Mobile with HTML5 and Java EE 7

Transcription:

Extending Tizen Native Framework with Node.js Nishant Deshpande Hyunju Shin Ph.D. Samsung Electronics

Contents Native or Web? Why JavaScript, Node.js? Proposed Architecture Sample Applications Going Forward 2

API Choices Native or Web? 3

Native or Web - + Web Native Performance Performance Memory Memory Beautiful Transition Beautiful Transition Productivity Productivity Developer Pool Developer Pool Legacy App Legacy App 4

API Choices Is there any Alternative? 5

Design Principles Easy to Develop Easy to Extend Lightweight and Fast 6

Design Principles & Decision Easy to Develop JavaScript Easy to Extend Lightweight and Fast 7

Design Decision - Why JavaScript? Most Popular Programming Language on the Planet 100 Popularity rank in Stack overflow ( # of Tags) 95 90 85 80 75 70 65 60 Swift Go MatLab Haskell R Scala Shell Perl C# Ruby C CSS Objective-C C++ Java PHP Python JavaScript 0 60 65 70 75 80 85 90 95 100 Top 20 Popularity Rank in GitHub (# of Projects) http://stackoverflow.com/research/developer-survey-2015 http://redmonk.com/sogrady/2015/07/01/language-rankings-6-15/ 8

Design Decision - Why JavaScript? Most Desirable technology / language to work with in near future Most Desired Android JavaScript Python Node.js AngularJS Java ios Raspverry Pi Swift C# 10.50% 9.40% 8.50% 8.50% 8.00% 15.40% 14.80% 14.60% 13.20% 17.70% http://stackoverflow.com/research/developer-survey-2015 9

Design Decision - Why JavaScript? Presence everywhere from Web to Enterprise 10

Design Decision - Why JavaScript? Presence everywhere from Web to Enterprise Now even in Drones and Robots! 11

Design Principles & Decision Easy to Develop JavaScript Easy to Extend Node add-ons Lightweight and Fast 12

Design Decision - Why Node.js? Popular JavaScript Runtime Event Driven Programming Register Callback Requests File System Event Loop (Single Thread) Database Computation Trigger Callback Operation Complete 13

Design Decision - Why Node.js? Popular JavaScript Runtime Event Driven Programming Very Active Community Enterprise Ready # of Packages 200000 180000 160000 140000 120000 100000 80000 60000 40000 20000 0 2010 2011 2012 2013 2014 2015 nuget (.Net) PyPI GoDoc RubyGems MavenCtrl(Java) npm (node.js) http://www.modulecounts.com/ 14

Design Decision - Why Node.js? Popular JavaScript Runtime Event Driven Programming Very Active Community Enterprise Ready Popular framework choice in IOT space 15

Design Principles & Decision Easy to Develop JavaScript Easy to Extend Node add-ons JS APIs Lightweight and Fast JavaScript binding for Native APIs Native C APIs 16

Extending Tizen Proposed Architecture 17

Tizen Architecture Status quo Native Applications Web Applications Web Framework Web API Native API Native Framework Tizen App Framework Graphics & UI Multimedia Messaging PIM Web Security System Base Connectivity Telephony Location Linux Kernel & Device Drivers 18

Proposed JavaScript Framework After JS Applications Web Applications Native(C or C++) Applications JavaScript Framework Web Framework Web API Native API Native Framework Tizen App Framework Graphics & UI Multimedia Messaging PIM Web Security System Base Connectivity Telephony Location Linux Kernel & Device Drivers 19

JavaScript Framework Native APIs via Node add-ons JS Applications JavaScript Framework Node add-ons Node built-in Tizen Specific 3rd Party Node.js V8 libuv Native Apps JS Applications JavaScript Framework Native Framework Web Applications Web Framework Linux Kernel & Device Drivers 20

Tizen Specific add-ons Tizen Native Node DALi(3D UI Toolkit) Tizen Native Node Tizen Specific Node add-ons DALi Lifecycle Manager Lifecycle Manager Event Integrator Log Utility Event Loop Integration(gcontext) Logging JS Applications JavaScript Framework Node add-ons Node built-in Tizen Specific 3rd Party Node.js V8 libuv 21

Inside Native Node JavaScript API Interface to Native APIs Native Node add-on 1. Native Node 8 Dynamic Plugin Loading 2. Native Plugin Loader 3 Native Context API Privilege Check 4. Native Plugin- C++ 5. Native JS API mapping 6 Privilege check 7 Core Core Module 22

JS Apps Sample JS Applications 23

Bluetooth Object Push Scenarios: 1. Bluetooth Activation / Deactivation 2. Bluetooth Device Discovery 3. Device bonding, service connection 4. Object transfer and object receive using Object Push Profile 24

Bluetooth Device Discovery Flow BT JS App JS API Native node Plugin loader Native Context BT Plugin- C++ Bluetooth Adaptor JS APP Node add-on Core discoverdevices() callsync() Load() createnativeplugin() OnLoad() checkaccess() Bluetoothadoptor_discoverDevice() DiscoverDevices() DeviceDiscoverSuccssCallback() FireEvent() DiscoveryStatusChangeCB() BT_ADAPTOR_DEVICE_DISCOVERY _STARTED DeviceDiscoverSuccssCallback() DeviceDiscoverSuccssCallback() FireEvent() FireEvent() DiscoveryStatusChangeCB() BT_ADAPTOR_DEVICE_DISCOVERY_ FOUND BT_ADAPTOR_DEVICE_DISCOVERY_ FINISHED 25

2. DALi JS App - Demo 26

JS application vs. Web application (MB) 35 30 25 Memory comparison (ms) 800 700 600 Launch Time 20 500 15 10 5 0 JS App Web App 400 300 200 100 0 JS App Web App Node.js : 12.8 MB 27

Roadmap Going Forward 28

Roadmap JS Binding for all Native APIs Sample Apps, Test Harness JS framework Optimization EFL Integration SDK support VM Agnostic Node 29

JS Framework in IOT? Deployable to IOT devices For resource constrained devices Node.js -> IOT.js V8-> Jerry Script 30

To Sum up.. Whole Nine Yards of Native Framework to JavaScript Developer Seamless extension to libraries /packages of developer s choice Easier & Faster Application Development More developers contributing to Tizen Eco-System 31

Thank You!

Q & A