SlideShare a Scribd company logo
Universal Applications
with
Universal JavaScript
Today JavaScript is a ubiquitous runtime. JavaScript is everywhere - from
Browser, server side, embedded device, mobile and gaming. JavaScript can be
leveraged to write once and run everywhere or have a consistent programming style,
and drive consistent experience across multiple channels – browser, Servers side, or
Native Mobile apps.
Thomas Joseph
Universal JavaScript
JavaScript is everywhere!
Isomorphic = Universal
Universal JavaScript are
environment agnostic
or
adapted to environment
Environment agnostic
 Does not depend on platform specific properties, browser (window), server
(process.env, req.cookies) or a device.
 Example (Handlebars)
var templateFn = Handlebars.compile(template);
var html = templateFn(data);
var template =
‘<h1>{{title}}</h1>
<ul>
{{#names}}
<li>{{name}}</li>
{{/names}}
</ul>’
var data = {
"title": "Story",
"names": [
{"name":
"Tarzan"},
{"name":
"Jane"}
]
}
<h1>Story</h1>
<ul>
<li>Tarzan</li>
<li>Jane</ul>
</ul>
Adapted to environment
 Provides adaptors for accessing environment-specific properties so
module can expose as single API.
 Example:
 console.log(‘Hello World’);
 app.path API
 window.location.pathname (Browser)
 req.path (Server)
JavaScript Engine
THE RUNTIME FOR A PLATFORM
JavaScript Runtimes – Browser
 V8 (Chrome)
 Chakra (IE)
 SpiderMonkey (FireFox)
 JavaScriptCore / Nitro (Safari)
JavaScript Runtimes – Server Side
 NodeJS
 Nashorn (Java)
 Rhino (Java)
 Jurassic (.NET)
 V8.NET (.NET)
 J2V8 (Java)
JavaScript Runtimes – Mobile (Native)
 V8 (Android)
 Chakra (Windows)
 JavaScriptCore / Nitro (iOS)
JavaScript Runtimes – Embedded
 V8 – Raspberry Pi
JavaScript Runtime
Build It or Port It!
Why Universal
JavaScript
IS RELEVANT FOR APPLICATION DEVELOPMENT?
In pursuit of the Holy Grail
Thick Client / Thin Server
 Applet
 Flash
 SPA
Thin Client / Thick Server
 Servlets / PHP etc
 AJAX
Universal JavaScript Apps
o Performance
• initial page load speed
o SEO
• Crawlable applications (vs SPA)
o Maintainability
• Reduce code duplication
o Flexibility
• Run code where you want*
o Learning Curve?
• Learn once, Write anywhere!
Control the spectrum of
shared logic
 Small bits of view layer
 Few abstractions
 Simple
 Entire view layer & app logic
 Many abstractions
 Complex
Most of the libraries are ready for it!
Who are using it?
Developing Universal
Apps with JavaScript
(AND FRIENDS)
Hack Time
Write Once, Run Anywhere
What about…?
Hybrid Apps
(JavaScript + HTML5 + CSS3)
 Primarily targets Mobiles (cross-
platform) for Native (like) apps
 Uses the Web View to run on Mobile
 Example:
 PhoneGap / Cordova
 Ionic
 Onsen UI
 Intel XDK
 Sencha Touch
 Kendo UI (telerik)
 JQuery Mobile
 Mobile Angular UI
Appecerator Titanium
(JavaScript + XML + CSS)
 Targets Mobiles (cross-platform) for
Native apps
 Not for Server Side or Browser – not
truly universal
 Runs on native JS engine of the platform
 “Appcelerator Titanium is a free and
open source application development
platform that lets you create cross
platform native mobile applications
using existing Javascript skills. ”
 “The Appcelerator Platform includes
SDKs, services and tools for creating,
testing, and managing your mobile and
cloud applications”
Hybrid Apps vs Native Apps
 Performance
 Graphic Capabilities (& Speed)
 Device Capabilities – Geolocation, Addressbook, Camera etc.
 Native Looks
 Learning Curve
 Cost
 Time to Market
Mobile App development is a pain
(and costly)
 One App – Different Development
 Different teams build the same thing using different languages, frameworks & libraries.
 Code, Build and maintain the same app across different platforms: iOS (Phone/Tablet),
Android (Phone/Tablet),Web (Desktop/Phone)
 Feature Parity
 Hard to maintain feature parity & consistent terminology.
 App Ownership
 Impossible to be an expert in all technologies and “own” something in all products
there is no one silver bullet
Write Once, Run Anywhere
Learn Once, Write Anywhere
LOWA Universal JavaScript
Frameworks
 React + React Native
 Angular 2 (+ friends)
React
+
React Native
“
”
React Native enables you to build world-class application experiences
on native platforms using a consistent developer experience based
on JavaScript and React. The focus of React Native is on developer
efficiency across all the platforms you care about — learn once, write
anywhere. Facebook uses React Native in multiple production apps
and will continue investing in React Native.
HTTPS://FACEBOOK.GITHUB.IO/REACT-NATIVE/
React Native Rendering
 Virtual DOM manipulation instead of
physical DOM
 React Native runtime translates virtual
DOM rendering to native OS UI
components.
Angular 2
“
”
Learning Angular 2 gives you the tools you need to build apps for
desktop, mobile web, Android, and iOS. Angular Universal provides
for server-side rendering for fast initial views on mobile web. Ionic
and NativeScript let you build hybrid and native UI mobile apps. Web
worker support keeps your app UI fully responsive no matter how
heavy the load
HTTPS://ANGULAR.IO/FEATURES.HTML
Angular 2 architecture
 Separates Application Core & Rendering
 Can be separate files or processes
 Possibility of variety of renderers for several
platforms
 Browser (default)
 Server Side (Angular U)
 Hybird Apps (Ionic)
 Native Apps
 NativeScript
 React Native
Angular 2 React Handlebar Dust
Browser    
SERVER
NodeJS    
Java    
.NET    
MOBILE NATIVE
iOS    
Android    
Windows    
Universal JavaScript Libraries

=
Opportunities!
Thank You

More Related Content

What's hot

Ionic framework one day training
Ionic framework one day trainingIonic framework one day training
Ionic framework one day training
Troy Miles
 
Xamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive ServicesXamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive Services
Vicente Gerardo Guzman Lucio
 
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K..."Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
Tech in Asia ID
 
Typescript 102 angular and type script
Typescript 102   angular and type scriptTypescript 102   angular and type script
Typescript 102 angular and type script
Bob German
 
Cross-Platform Mobile Development with Ionic Framework and Angular
Cross-Platform Mobile Development with Ionic Framework and AngularCross-Platform Mobile Development with Ionic Framework and Angular
Cross-Platform Mobile Development with Ionic Framework and Angular
Movel
 
Demand driven applications with om.next and react native
Demand driven applications with om.next and react nativeDemand driven applications with om.next and react native
Demand driven applications with om.next and react native
dvcrn
 
Experiences building apps with React Native @UtrechtJS May 2016
Experiences building apps with React Native @UtrechtJS May 2016Experiences building apps with React Native @UtrechtJS May 2016
Experiences building apps with React Native @UtrechtJS May 2016
Adrian Philipp
 
Creating an hybrid app in minutes with Ionic Framework
Creating an hybrid app in minutes with Ionic FrameworkCreating an hybrid app in minutes with Ionic Framework
Creating an hybrid app in minutes with Ionic Framework
Julien Renaux
 
Mobile Applications with Angular 4 and Ionic 3
Mobile Applications with Angular 4 and Ionic 3Mobile Applications with Angular 4 and Ionic 3
Mobile Applications with Angular 4 and Ionic 3
Oleksandr Tryshchenko
 
Introduction to Ionic framework
Introduction to Ionic frameworkIntroduction to Ionic framework
Introduction to Ionic framework
Shyjal Raazi
 
Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)
Mark Leusink
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic Framework
Troy Miles
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
Thinh VoXuan
 
Introduction to the Ionic Framework
Introduction to the Ionic FrameworkIntroduction to the Ionic Framework
Introduction to the Ionic Framework
rrjohnson85
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
Cristián Cortéz
 
Hybrid Mobile Development - Overview and Intro to Cordova/Ionic Framework
Hybrid Mobile Development - Overview and Intro to Cordova/Ionic FrameworkHybrid Mobile Development - Overview and Intro to Cordova/Ionic Framework
Hybrid Mobile Development - Overview and Intro to Cordova/Ionic Framework
Rashmika Nawaratne
 
Making Eclipse IDE better at handling real-life projects @EclipseCon NA 2015
Making Eclipse IDE better at handling real-life projects @EclipseCon NA 2015Making Eclipse IDE better at handling real-life projects @EclipseCon NA 2015
Making Eclipse IDE better at handling real-life projects @EclipseCon NA 2015
Mickael Istria
 
React Native in a nutshell
React Native in a nutshellReact Native in a nutshell
React Native in a nutshell
Brainhub
 
Hybrid app in ionic framework overview
Hybrid app in ionic framework overviewHybrid app in ionic framework overview
Hybrid app in ionic framework overview
Sanket Devlekar
 

What's hot (20)

Ionic framework one day training
Ionic framework one day trainingIonic framework one day training
Ionic framework one day training
 
Xamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive ServicesXamarin y MS Azure | Cognitive Services
Xamarin y MS Azure | Cognitive Services
 
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K..."Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
 
Typescript 102 angular and type script
Typescript 102   angular and type scriptTypescript 102   angular and type script
Typescript 102 angular and type script
 
Cross-Platform Mobile Development with Ionic Framework and Angular
Cross-Platform Mobile Development with Ionic Framework and AngularCross-Platform Mobile Development with Ionic Framework and Angular
Cross-Platform Mobile Development with Ionic Framework and Angular
 
Demand driven applications with om.next and react native
Demand driven applications with om.next and react nativeDemand driven applications with om.next and react native
Demand driven applications with om.next and react native
 
Experiences building apps with React Native @UtrechtJS May 2016
Experiences building apps with React Native @UtrechtJS May 2016Experiences building apps with React Native @UtrechtJS May 2016
Experiences building apps with React Native @UtrechtJS May 2016
 
Creating an hybrid app in minutes with Ionic Framework
Creating an hybrid app in minutes with Ionic FrameworkCreating an hybrid app in minutes with Ionic Framework
Creating an hybrid app in minutes with Ionic Framework
 
Mobile Applications with Angular 4 and Ionic 3
Mobile Applications with Angular 4 and Ionic 3Mobile Applications with Angular 4 and Ionic 3
Mobile Applications with Angular 4 and Ionic 3
 
Introduction to Ionic framework
Introduction to Ionic frameworkIntroduction to Ionic framework
Introduction to Ionic framework
 
Mobile native-hacks
Mobile native-hacksMobile native-hacks
Mobile native-hacks
 
Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic Framework
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
 
Introduction to the Ionic Framework
Introduction to the Ionic FrameworkIntroduction to the Ionic Framework
Introduction to the Ionic Framework
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
 
Hybrid Mobile Development - Overview and Intro to Cordova/Ionic Framework
Hybrid Mobile Development - Overview and Intro to Cordova/Ionic FrameworkHybrid Mobile Development - Overview and Intro to Cordova/Ionic Framework
Hybrid Mobile Development - Overview and Intro to Cordova/Ionic Framework
 
Making Eclipse IDE better at handling real-life projects @EclipseCon NA 2015
Making Eclipse IDE better at handling real-life projects @EclipseCon NA 2015Making Eclipse IDE better at handling real-life projects @EclipseCon NA 2015
Making Eclipse IDE better at handling real-life projects @EclipseCon NA 2015
 
React Native in a nutshell
React Native in a nutshellReact Native in a nutshell
React Native in a nutshell
 
Hybrid app in ionic framework overview
Hybrid app in ionic framework overviewHybrid app in ionic framework overview
Hybrid app in ionic framework overview
 

Similar to Universal Applications with Universal JavaScript

NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
Todd Anglin
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010Patrick Lauke
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
JohnTaieb
 
Front-end. Global domination
Front-end. Global dominationFront-end. Global domination
Front-end. Global domination
Stfalcon Meetups
 
Frontend. Global domination.
Frontend. Global domination.Frontend. Global domination.
Frontend. Global domination.
Андрей Вандакуров
 
Building cross platform web apps
Building cross platform web appsBuilding cross platform web apps
Building cross platform web apps
ITEM
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
Nathan Smith
 
12 Frameworks for Mobile Hybrid Apps
12 Frameworks for Mobile Hybrid Apps12 Frameworks for Mobile Hybrid Apps
12 Frameworks for Mobile Hybrid Apps
Filipe Lima
 
Titanium Overview (Mobile March 2011)
Titanium Overview (Mobile March 2011)Titanium Overview (Mobile March 2011)
Titanium Overview (Mobile March 2011)
Kevin Whinnery
 
Phonegap android
Phonegap androidPhonegap android
Phonegap android
umesh patil
 
The Javascript Ecosystem
The Javascript EcosystemThe Javascript Ecosystem
The Javascript Ecosystem
Emmanuel Akinde
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioMizanur Sarker
 
Top 10 Best Web Development Technologies
Top 10 Best Web Development TechnologiesTop 10 Best Web Development Technologies
Top 10 Best Web Development Technologies
AjayMishra302670
 
Cross mobility
Cross mobilityCross mobility
Cross mobility
Shady Selim
 
Cross Platform Mobile Technologies
Cross Platform Mobile TechnologiesCross Platform Mobile Technologies
Cross Platform Mobile Technologies
Talentica Software
 
Service worker API
Service worker APIService worker API
Service worker API
Giorgio Natili
 
.NET Core on Mac
.NET Core on Mac.NET Core on Mac
.NET Core on Mac
Melania Andrisan (Danciu)
 
Get Ahead with HTML5 on Moible
Get Ahead with HTML5 on MoibleGet Ahead with HTML5 on Moible
Get Ahead with HTML5 on Moible
markuskobler
 
Crosswalk and the Intel XDK
Crosswalk and the Intel XDKCrosswalk and the Intel XDK
Crosswalk and the Intel XDK
Intel® Software
 

Similar to Universal Applications with Universal JavaScript (20)

NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
 
Front-end. Global domination
Front-end. Global dominationFront-end. Global domination
Front-end. Global domination
 
Frontend. Global domination.
Frontend. Global domination.Frontend. Global domination.
Frontend. Global domination.
 
Building cross platform web apps
Building cross platform web appsBuilding cross platform web apps
Building cross platform web apps
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
 
12 Frameworks for Mobile Hybrid Apps
12 Frameworks for Mobile Hybrid Apps12 Frameworks for Mobile Hybrid Apps
12 Frameworks for Mobile Hybrid Apps
 
Titanium Overview (Mobile March 2011)
Titanium Overview (Mobile March 2011)Titanium Overview (Mobile March 2011)
Titanium Overview (Mobile March 2011)
 
Phonegap android
Phonegap androidPhonegap android
Phonegap android
 
The Javascript Ecosystem
The Javascript EcosystemThe Javascript Ecosystem
The Javascript Ecosystem
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
 
Top 10 Best Web Development Technologies
Top 10 Best Web Development TechnologiesTop 10 Best Web Development Technologies
Top 10 Best Web Development Technologies
 
Cross mobility
Cross mobilityCross mobility
Cross mobility
 
phonegap_101
phonegap_101phonegap_101
phonegap_101
 
Cross Platform Mobile Technologies
Cross Platform Mobile TechnologiesCross Platform Mobile Technologies
Cross Platform Mobile Technologies
 
Service worker API
Service worker APIService worker API
Service worker API
 
.NET Core on Mac
.NET Core on Mac.NET Core on Mac
.NET Core on Mac
 
Get Ahead with HTML5 on Moible
Get Ahead with HTML5 on MoibleGet Ahead with HTML5 on Moible
Get Ahead with HTML5 on Moible
 
Crosswalk and the Intel XDK
Crosswalk and the Intel XDKCrosswalk and the Intel XDK
Crosswalk and the Intel XDK
 

Recently uploaded

National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 

Recently uploaded (20)

National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 

Universal Applications with Universal JavaScript

  • 1. Universal Applications with Universal JavaScript Today JavaScript is a ubiquitous runtime. JavaScript is everywhere - from Browser, server side, embedded device, mobile and gaming. JavaScript can be leveraged to write once and run everywhere or have a consistent programming style, and drive consistent experience across multiple channels – browser, Servers side, or Native Mobile apps. Thomas Joseph
  • 5. Universal JavaScript are environment agnostic or adapted to environment
  • 6. Environment agnostic  Does not depend on platform specific properties, browser (window), server (process.env, req.cookies) or a device.  Example (Handlebars) var templateFn = Handlebars.compile(template); var html = templateFn(data); var template = ‘<h1>{{title}}</h1> <ul> {{#names}} <li>{{name}}</li> {{/names}} </ul>’ var data = { "title": "Story", "names": [ {"name": "Tarzan"}, {"name": "Jane"} ] } <h1>Story</h1> <ul> <li>Tarzan</li> <li>Jane</ul> </ul>
  • 7. Adapted to environment  Provides adaptors for accessing environment-specific properties so module can expose as single API.  Example:  console.log(‘Hello World’);  app.path API  window.location.pathname (Browser)  req.path (Server)
  • 9. JavaScript Runtimes – Browser  V8 (Chrome)  Chakra (IE)  SpiderMonkey (FireFox)  JavaScriptCore / Nitro (Safari)
  • 10. JavaScript Runtimes – Server Side  NodeJS  Nashorn (Java)  Rhino (Java)  Jurassic (.NET)  V8.NET (.NET)  J2V8 (Java)
  • 11. JavaScript Runtimes – Mobile (Native)  V8 (Android)  Chakra (Windows)  JavaScriptCore / Nitro (iOS)
  • 12. JavaScript Runtimes – Embedded  V8 – Raspberry Pi
  • 14. Why Universal JavaScript IS RELEVANT FOR APPLICATION DEVELOPMENT?
  • 15. In pursuit of the Holy Grail Thick Client / Thin Server  Applet  Flash  SPA Thin Client / Thick Server  Servlets / PHP etc  AJAX Universal JavaScript Apps
  • 16. o Performance • initial page load speed o SEO • Crawlable applications (vs SPA) o Maintainability • Reduce code duplication o Flexibility • Run code where you want* o Learning Curve? • Learn once, Write anywhere!
  • 17. Control the spectrum of shared logic  Small bits of view layer  Few abstractions  Simple  Entire view layer & app logic  Many abstractions  Complex
  • 18. Most of the libraries are ready for it!
  • 20. Developing Universal Apps with JavaScript (AND FRIENDS)
  • 22. Write Once, Run Anywhere
  • 24. Hybrid Apps (JavaScript + HTML5 + CSS3)  Primarily targets Mobiles (cross- platform) for Native (like) apps  Uses the Web View to run on Mobile  Example:  PhoneGap / Cordova  Ionic  Onsen UI  Intel XDK  Sencha Touch  Kendo UI (telerik)  JQuery Mobile  Mobile Angular UI
  • 25. Appecerator Titanium (JavaScript + XML + CSS)  Targets Mobiles (cross-platform) for Native apps  Not for Server Side or Browser – not truly universal  Runs on native JS engine of the platform  “Appcelerator Titanium is a free and open source application development platform that lets you create cross platform native mobile applications using existing Javascript skills. ”  “The Appcelerator Platform includes SDKs, services and tools for creating, testing, and managing your mobile and cloud applications”
  • 26. Hybrid Apps vs Native Apps  Performance  Graphic Capabilities (& Speed)  Device Capabilities – Geolocation, Addressbook, Camera etc.  Native Looks  Learning Curve  Cost  Time to Market
  • 27. Mobile App development is a pain (and costly)  One App – Different Development  Different teams build the same thing using different languages, frameworks & libraries.  Code, Build and maintain the same app across different platforms: iOS (Phone/Tablet), Android (Phone/Tablet),Web (Desktop/Phone)  Feature Parity  Hard to maintain feature parity & consistent terminology.  App Ownership  Impossible to be an expert in all technologies and “own” something in all products
  • 28. there is no one silver bullet
  • 29. Write Once, Run Anywhere Learn Once, Write Anywhere
  • 30. LOWA Universal JavaScript Frameworks  React + React Native  Angular 2 (+ friends)
  • 32. “ ” React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about — learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native. HTTPS://FACEBOOK.GITHUB.IO/REACT-NATIVE/
  • 33. React Native Rendering  Virtual DOM manipulation instead of physical DOM  React Native runtime translates virtual DOM rendering to native OS UI components.
  • 35. “ ” Learning Angular 2 gives you the tools you need to build apps for desktop, mobile web, Android, and iOS. Angular Universal provides for server-side rendering for fast initial views on mobile web. Ionic and NativeScript let you build hybrid and native UI mobile apps. Web worker support keeps your app UI fully responsive no matter how heavy the load HTTPS://ANGULAR.IO/FEATURES.HTML
  • 36. Angular 2 architecture  Separates Application Core & Rendering  Can be separate files or processes  Possibility of variety of renderers for several platforms  Browser (default)  Server Side (Angular U)  Hybird Apps (Ionic)  Native Apps  NativeScript  React Native
  • 37. Angular 2 React Handlebar Dust Browser     SERVER NodeJS     Java     .NET     MOBILE NATIVE iOS     Android     Windows     Universal JavaScript Libraries