Running Node Applications on iOS and Android

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

Transcript of Running Node Applications on iOS and Android

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]