33
Running Node Applications on iOS and Android Ugur Kadakal, PhD Cofounder and CEO Nubisa, Inc.

Running Node Applications on iOS and Android

Embed Size (px)

Citation preview

Page 1: Running Node Applications on iOS and Android

Running Node Applications on iOS and Android

Ugur Kadakal, PhDCofounder and CEO

Nubisa, Inc.

Page 2: Running Node Applications on iOS and Android

What is Node.JS?

Page 3: Running Node Applications on iOS and Android

“Node.js® is a platform built on Chrome's JavaScript runtime for easily building fast,

scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across

distributed devices.”

Source: nodejs.org

Page 4: Running Node Applications on iOS and Android

How popular is Node.JS?

Page 5: Running Node Applications on iOS and Android

Job Trends - Absolute

Source: indeed.com

Page 6: Running Node Applications on iOS and Android

Job Trends - Relative

Source: indeed.com

Page 7: Running Node Applications on iOS and Android

Module Counts

Data Source: modulecounts.com/

0

20000

40000

60000

80000

100000

120000

140000

160000

Maven Central (Java); 106712

npm (node.js); 151767

nuget (.NET); 37165

Packagist (PHP); 60050

Rubygems.org; 102004

Page 8: Running Node Applications on iOS and Android

Monthly Module Downloads

Source: npmjs.org

Page 9: Running Node Applications on iOS and Android

Many Enterprises Already Using Node in Production

Page 10: Running Node Applications on iOS and Android

Why is Node.JS so popular?

Page 11: Running Node Applications on iOS and Android

Faster development and deployment

Page 12: Running Node Applications on iOS and Android

Node.js allows front-end developers to handle both client and server development

Page 13: Running Node Applications on iOS and Android

Flexible skill sets and fast learning curve

Page 14: Running Node Applications on iOS and Android

Node.JS is for server applications

Page 15: Running Node Applications on iOS and Android

What about mobile?

Page 16: Running Node Applications on iOS and Android

JavaScript Platforms for Mobile Development

Page 17: Running Node Applications on iOS and Android

What about Node.JS and Node modules?

Page 18: Running Node Applications on iOS and Android

Node is built on Google V8 engine

Page 19: Running Node Applications on iOS and Android

V8 uses Just-In-Time (JIT) compiling to execute JavaScript code

Page 20: Running Node Applications on iOS and Android

JIT is not allowed on iOS

Page 21: Running Node Applications on iOS and Android

We forked Nodeand created JXcore

Page 22: Running Node Applications on iOS and Android

Our goal was to run Node on mobile devices by replacing V8 with another JS engine

Page 23: Running Node Applications on iOS and Android

It was not an easy task

Page 24: Running Node Applications on iOS and Android

We not only replaced V8 with SpiderMonkey but also built an abstraction layer for developers to choose which engine to

use

Page 25: Running Node Applications on iOS and Android

Abstraction layer isolated Node core from JS engines

Page 26: Running Node Applications on iOS and Android

We also developed a Cordova plugin

Visit github.com/jxcore/jxcore-cordova for details

Page 27: Running Node Applications on iOS and Android

You can now develop iOS apps with Cordova and JXcore

Visit modernweb.com/2015/03/19/develop-an-ios-application-with-node-js-and-cordova/ for details

Page 28: Running Node Applications on iOS and Android

What’s next for JXcore?

Page 29: Running Node Applications on iOS and Android

Stability

Page 30: Running Node Applications on iOS and Android

Extending JXcore to other JS engines:

JavaScriptCore? Chakra?

Page 31: Running Node Applications on iOS and Android

Extending Node to IoTsby embedding a lightweight JS engine

like Duktape

Page 32: Running Node Applications on iOS and Android

JXcore is open source (MIT)

We welcome contributions

Page 33: Running Node Applications on iOS and Android

jxcore.com or jxcore.io

github.com/jxcore/jxcore/

contact me at [email protected]