Java script nirvana in netbeans [con5679]

76
JAVASCRIPT NIRVANA IN NETBEANS Ryan Cuprak

Transcript of Java script nirvana in netbeans [con5679]

Page 1: Java script nirvana in netbeans [con5679]

JAVASCRIPT NIRVANA IN NETBEANSRyan Cuprak

Page 2: Java script nirvana in netbeans [con5679]

AboutRyan Cuprak

• @ctjava• [email protected]• http://www.cuprak.info• https://www.linkedin.com/in/rcuprak

Page 3: Java script nirvana in netbeans [con5679]

Notepad?

Page 4: Java script nirvana in netbeans [con5679]

JavaScript IDEs• NetBeans 8.1+• WebStorm• VisualStudio 2013+• Sublime Text• Eclipse (with JSDT)• Komodo

Free

$99

Page 5: Java script nirvana in netbeans [con5679]

Why NetBeans?

• Intuitive

• Integrated

• Adaptable

• Full Stack

• Powerful

Page 6: Java script nirvana in netbeans [con5679]

NetBeans 8.2 FeaturesNatively supports HTML5 projects.

• CSS3, HTML5, ECMAScript 6, etc.• Support for HTML5 JavaScript libraries.

Features• Syntax highlighting, auto-completion, code folding, etc.• Full-fledged debugger

• Breakpoints on DOM, line, event, and XMLHttpRequests.• Callstack, variables, watches

• JavaScript unit testing support• Grunt Support• SASS/LESS Support• Apache Cordova (mobile HTML5 development)

Page 7: Java script nirvana in netbeans [con5679]

CONFIGURATIONJavaScript Dependencies

Page 8: Java script nirvana in netbeans [con5679]

NetBeans Configuration1. Install Node.js2. Install SASS

• Install Ruby 2.2.X• gem install sass

3. Install Chrome Pluginhttp://tinyurl.com/jjcorgm

Page 9: Java script nirvana in netbeans [con5679]

Chrome Plugin

Page 10: Java script nirvana in netbeans [con5679]

Tool Configurations

Looks in default locations

Page 11: Java script nirvana in netbeans [con5679]

Key BindingsDon’t want to re-learn keyboard shortcuts?

Page 12: Java script nirvana in netbeans [con5679]

PROJECTS TYPESGetting Started

Page 13: Java script nirvana in netbeans [con5679]

NetBeans & Projects

Open Projects

Page 14: Java script nirvana in netbeans [con5679]

Project Types

Key questions:1. What JavaScript technology stack?2. Are you starting fresh or with existing sources?

Page 15: Java script nirvana in netbeans [con5679]

HTML5 Application Templates

Page 16: Java script nirvana in netbeans [con5679]

ToolsTool Descriptionpackage.json Project dependencies, meta-data, used by npm.

bower.json Manages front-end components like HTML, css, js.

Gruntfile.js JavaScript task runner tool.

gulpfile.js JavaScript task runner tool.

Page 17: Java script nirvana in netbeans [con5679]

HTML5 Application ExampleAngular Seed Template

Page 18: Java script nirvana in netbeans [con5679]

Node.js Application

Page 19: Java script nirvana in netbeans [con5679]

HTML5 + Node.js Application

Page 20: Java script nirvana in netbeans [con5679]

Example Projects

Page 21: Java script nirvana in netbeans [con5679]

File TemplatesCategory File TypesHTML5/JavaScript HTML File, JavaScript File, Cascading Style Sheet,

Sass File, Less file, JSON File, react.js, Jade File, package.json, Gruntfile.js, gulpfile.js, bower.json, .bowerrc, Empty JET module, Knockout JET Module

Selenium Tests Protractor Configuration File, Selenium Mocha Test Case, Selenium Jasmine Test Case

Unit Tests Karma Configuration File, jsTestDrive Configuration File

Web Services RESTful JavaScript Client

Custom editor provided for each project type.

Page 22: Java script nirvana in netbeans [con5679]

EDITOR FEATURES

Page 23: Java script nirvana in netbeans [con5679]

Syntax and Semantic Highlighting

Page 24: Java script nirvana in netbeans [con5679]

ECMAScript 6

Page 25: Java script nirvana in netbeans [con5679]

Navigation

Page 26: Java script nirvana in netbeans [con5679]

JavaScript Parser

Page 27: Java script nirvana in netbeans [con5679]

Code Completion

Page 28: Java script nirvana in netbeans [con5679]

JavaScript Debugging

Page 29: Java script nirvana in netbeans [con5679]

DOM Debugging

Page 30: Java script nirvana in netbeans [con5679]

CSS Editing

Popup for adding new properties

Page 31: Java script nirvana in netbeans [con5679]

LESS Support: New FileFile -> New File

Page 32: Java script nirvana in netbeans [con5679]

LESS Support: Editor + CSS Generation

Generated CSS

Page 33: Java script nirvana in netbeans [con5679]

Customizable Palette

• Drag HTML elements from Palette into HTML Window (Wizard appears)

• Drag selections from HTML document to Palette to create new HTML snippets.

Page 34: Java script nirvana in netbeans [con5679]

Embedded Web Server

Web Server for testing

Page 35: Java script nirvana in netbeans [con5679]

Managing JavaScript Dependencies

Three different approaches:• npm – Node Package Manager• Bower • CDNJS

Page 36: Java script nirvana in netbeans [con5679]

Adding JavaScript Libraries (Bower)

https://bower.io/

Page 37: Java script nirvana in netbeans [con5679]

Adding JavaScript Libraries (Continued…)

Downloads Library

Page 38: Java script nirvana in netbeans [con5679]

Adding JavaScript Libraries (Continued…)

Page 39: Java script nirvana in netbeans [con5679]

Insert Library

Drag library into target folder.

Page 40: Java script nirvana in netbeans [con5679]

GRUNT & GULPBuild Script Automation

Page 41: Java script nirvana in netbeans [con5679]

Gulp / Grunt• Gulp and Grunt are both task runners (think Ant)• Grunt uses a configuration based approach• Gulp uses streams from Node• Common tasks:

• Compile SASS/Less to CSS• Run JSLint• Minify JavaScript/CSS files

Page 42: Java script nirvana in netbeans [con5679]

Gulp: Hello World

Page 43: Java script nirvana in netbeans [con5679]

Gulp: Hello World

Page 44: Java script nirvana in netbeans [con5679]

Gulp: Configuring IDE Actions

Page 45: Java script nirvana in netbeans [con5679]

Grunt: Example

Install via npm

Page 46: Java script nirvana in netbeans [con5679]

Grunt: Install Dependencies

Page 47: Java script nirvana in netbeans [con5679]

RequireJS

Maps module names to local paths for testing.

Page 48: Java script nirvana in netbeans [con5679]

NODE.JSServerside JavaScript

Page 49: Java script nirvana in netbeans [con5679]

What is Node.js?

Node.js is a platform built onChrome’s JavaScript runtime for easily building fast and 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.

Page 50: Java script nirvana in netbeans [con5679]

Node.js Runtime• V8 JavaScript Engine is an open source JavaScript

engine developed by Google for the Chrome web browser.

• V8 compiles JavaScript to native machine code (IA-32, x86-64, ARM, etc.) before executing it.

Page 51: Java script nirvana in netbeans [con5679]

Node.js + Express.js

Template Engines• JADE <- supported natively by NetBeans• EJS• Handlebars• Hogan.js

Node.js Express.js Template Engine

Page 52: Java script nirvana in netbeans [con5679]

NetBeans & Node.js• Fully integrated support for Node.js• Project wizard for creating new projects• Express generator is integrated• Project specific Node.js settings

Page 53: Java script nirvana in netbeans [con5679]

Demo

Page 54: Java script nirvana in netbeans [con5679]

UNIT TESTING

Page 55: Java script nirvana in netbeans [con5679]

Unit TestingSupported Unit Testing frameworks:• Karma• JS Test Driver• MochaDemo• Jasmine – JavaScript unit testing framework

• Tests written in JavaScript• Test synchronous and asychronous JavaScript code

• Karma – JavaScript test runner• Based on NodeJS• Launches and executes tests in web browser

(Chrome/FireFox/etc.)

Page 56: Java script nirvana in netbeans [con5679]

Karma Configuration & SetupInstalling Karma for a project (from within project directory):• npm install karma --save-dev• npm install karma-jasmine karma-chrome-launcher --

save-dev

Page 57: Java script nirvana in netbeans [con5679]

Karma Configuration & Setup

1

23

Page 58: Java script nirvana in netbeans [con5679]

Create Karma Configuration

Page 59: Java script nirvana in netbeans [con5679]

Karma Configuration

Page 60: Java script nirvana in netbeans [con5679]

Karma Configuration

Page 61: Java script nirvana in netbeans [con5679]

Karma Configuration & Setup

Page 62: Java script nirvana in netbeans [con5679]

Karma: Test Run

Page 63: Java script nirvana in netbeans [con5679]

Example Unit Test

Page 64: Java script nirvana in netbeans [con5679]

CORDOVA

Page 65: Java script nirvana in netbeans [con5679]

Introducing Cordova• Originally named PhoneGap.• Mobile development framework• Development started in 2009.• Wraps HTML5 applications in a native

wrapper.• Purchased by Adobe in 2011.• Code donated to Apache as Apache Cordova.

• PhoneGap built on Cordova

• Adobe provides cloud build system for PhoneGap.

Page 66: Java script nirvana in netbeans [con5679]

CordovaPlatform SDK

• Certificates to test on devices ($$)

Ant (ant.apache.org)NodeJS (nodejs.org)

• Install Apache Cordova (cordova.apache.org)

ChromeJava 8 (java.oracle.com)NetBeans 8.0.1 (netbeans.org)What might we want to install? Maven (maven.apache.org)

Karma (karma-runner.github.io)Jasmine (jasmine.github.io)Grunt (gruntjs.com)

Page 67: Java script nirvana in netbeans [con5679]

Cordova Platform Tools and SDKsiOS (xCode)

Apple App Store – search for XCode

Android (Android Studio)https://developer.android.com/tools/index.html

Windows Phonehttp://dev.windows.com/en-us/develop/downloads

Tizenhttps://developer.tizen.org/downloads/tizen-sdk

BlackBerryhttp://developer.blackberry.com

Page 68: Java script nirvana in netbeans [con5679]

iOS Setup

Page 69: Java script nirvana in netbeans [con5679]

Apache Cordova SetupInstalling Cordova:

• Mac/Linux: sudo npm install –g cordova• Windows: npm install –g cordova

Adding Platforms:• cordova platform add ios• cordova platform add amazon-fireos• cordova platform add android• cordova platform add blackberry10• cordova platform add firefoxos

Creating a project (without NetBeans)• cordova create hello com.example.hello HelloWorld

Page 70: Java script nirvana in netbeans [con5679]

Apache CordovaCordova is an HTML Project

• Start with Cordova Project• Start with HTML5 and add Cordova

Page 71: Java script nirvana in netbeans [con5679]

Cordova Project Creation

Page 72: Java script nirvana in netbeans [con5679]

Project Layout

Web assets go here: html files, js files, etc

Page 73: Java script nirvana in netbeans [con5679]

Apache Cordova – index.html

Page 74: Java script nirvana in netbeans [con5679]

Apache Cordova – index.js

Page 75: Java script nirvana in netbeans [con5679]

Run Target

Page 76: Java script nirvana in netbeans [con5679]

Q&A

Best JavaScript IDE!