Web Development for Dinosaurs An Introduction to Modern Web Development

Similar documents
Modern Web Application Development. Sam Hogarth

Webpack. What is Webpack? APPENDIX A. n n n

Arjen de Blok. Senior Technical Consultant bij ICT Groep ( sinds 1995 Programmeren sinds 1990 Technologiën. Links

P a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages

Chapter 1 - Development Setup of Angular

Ten interesting features of Google s Angular Project

Frontend UI Training. Whats App :

Lab 1 - Introduction to Angular

A JavaScript Framework for Presentations and Animations on Computer Science

Full Stack boot camp

55249: Developing with the SharePoint Framework Duration: 05 days

Getting Started with ReactJS

welcome to BOILERCAMP HOW TO WEB DEV

Web UI. Survey of Front End Technologies. Web Challenges and Constraints. Desktop and mobile devices. Highly variable runtime environment

django-baton Documentation

Welcome. Quick Introductions

IN4MATX 133: User Interface Software

Course 1: Microsoft Professional Orientation: Front-End Web Developer

ReactJS and Webpack for Rails

Advance Mobile& Web Application development using Angular and Native Script

Introduction to GraphQL and Relay. Presenter: Eric W. Greene

JavaScript Fundamentals_

Templates and Databinding. SWE 432, Fall 2017 Design and Implementation of Software for the Web

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

React(.js) the Domino Way High-Performance Client for Domino. Knut Herrmann

Introduction to Sencha Ext JS

DECOUPLING PATTERNS, SERVICES AND CREATING AN ENTERPRISE LEVEL EDITORIAL EXPERIENCE

django-baton Documentation

Stencil: The Time for Vanilla Web Components has Arrived

"Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary

How to use jquery file. How to use jquery file.zip

WebStorm, intelligent IDE for JavaScript development

Course 1: Microsoft Professional Orientation: Front-End Web Developer

Webpack 2 The last bundler you would need in Vijay Dharap, Principal Architect, Infosys

International Research Journal of Engineering and Technology (IRJET) e-issn: Volume: 05 Issue: 05 May p-issn:

Agenda. INTRODUCTION TO WEB DEVELOPMENT AND HTML <Lecture 1> 1/20/2013. What is a Web Developer? Rommel Anthony Palomino Spring

Cisco Spark Widgets Technical drill down

CSCI 1320 Creating Modern Web Applications. Content Management Systems

Jquery Ajax Json Php Mysql Data Entry Example

P a g e 1. Danish Tecnological Institute. Developer Collection Online Course k Developer Collection

Advanced Angular & Angular 6 Preview. Bibhas Bhattacharya

RequireJS Javascript Modules for the Browser. By Ben Keith Quoin, Inc.

Mobile & More: Preparing for the Latest Design Trends

WebApp development. Outline. Web app structure. HTML basics. 1. Fundamentals of a web app / website. Tiberiu Vilcu

Offline-first PWA con Firebase y Vue.js

CIS 086 : Week 1. Web Development with PHP and MySQL

Scripting. Web Architecture and Information Management [./] Spring 2009 INFO (CCN 42509) Contents

Etanova Enterprise Solutions

Building mobile app using Cordova and AngularJS, common practices. Goran Kopevski

Extending Blue Ocean Keith Zantow

Web Performance in

MOdern Java(Script) Server Stack

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

Front-End Web Developer Nanodegree Syllabus

Advanced Web Applicatio Design Patter. Rupak Raj Ghi

Manual Html A Href Onclick Submit Form

INTERFACE FOUNDATIONS OF WEB DEVELOPMENT

We re working full time this summer alongside 3 UCOSP (project course) students (2 from Waterloo: Mark Rada & Su Zhang, 1 from UofT: Angelo Maralit)

Choosing the web s future. Peter-Paul Koch Van Lanschot, 9 February 2017

WebDev. Web Design COMBINES A NUMBER OF DISCIPLINES. Web Development Process DESIGN DEVELOPMENT CONTENT MULTIMEDIA

COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015

Basics of Web Technologies

JavaScript and MVC Frameworks FRONT-END ENGINEERING

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

Front-End UI: Bootstrap

Front End Nanodegree Syllabus

Learn Web Development CodersTrust Polska course outline. Hello CodersTrust! Unit 1. HTML Structuring the Web Prerequisites Learning pathway.

Internet: An international network of connected computers. The purpose of connecting computers together, of course, is to share information.

Web Site Design and Development. CS 0134 Fall 2018 Tues and Thurs 1:00 2:15PM

Lab 6: Testing. Software Studio DataLab, CS, NTHU

All India Council For Research & Training

Tools. SWE 432, Fall Design and Implementation of Software for the Web

Agile Web Development with Rails 5.1

LEARN JAVA FOR WEB DEVELOPMENT

Evolution of the "Web

Backend Development. SWE 432, Fall Web Application Development

Web Premium- Advanced UI Development Course. Duration: 08 Months. [Classroom and Online] ISO 9001:2015 CERTIFIED

Programming School for 21 st Century. syllabus MOBILE BACKEND DEVOPS

Simple AngularJS thanks to Best Practices

a Very Short Introduction to AngularJS

Quick Desktop Application Development Using Electron

Javascript Validator Xml Schema Eclipse Plugin

Credits: Some of the slides are based on material adapted from

Jquery Documentation Autocomplete

Brunch Documentation. Release Brunch team

IGME-330. Rich Media Web Application Development I Week 1

Comprehensive AngularJS Programming (5 Days)

Html5 Css3 Javascript Interview Questions And Answers Pdf >>>CLICK HERE<<<

Gauge Chart Components Html5 Javascript Libraries

Core Programming skill class Practical/Projects class Creativity and Production class Graduation/Interview/Job Preparation class.

HTML5 and CSS3 for Web Designers & Developers

PHP WITH ANGULAR CURRICULUM. What you will Be Able to Achieve During This Course

Introduction to the SharePoint Framework Bob German Principal Architect - BlueMetal. An Insight company

Modern frontend workflows in Liferay Portal and Liferay DXP. Iván Zaera Avellon, Liferay Chema Balsas, Liferay Pier Paolo Ramon, SMC

JavaScript Web Applications: JQuery Developers' Guide To Moving State To The Client By Alex MacCaw READ ONLINE

What is Node.js? Tim Davis Director, The Turtle Partnership Ltd

International Research Journal of Engineering and Technology (IRJET) e-issn: Volume: 05 Issue: 06 June p-issn:

Index. Elad Elrom 2016 E. Elrom, Pro MEAN Stack Development, DOI /

Front End Programming

Transcription:

Web Development for Dinosaurs An Introduction to Modern Web Development 1 / 53

Who Am I? John Cleaver Development Team Lead at Factivity, Inc. An Introduction to Modern Web Development - PUG Challenge Americas 2018 2 / 53

Factivity, Inc. Factivity is a world leader in touch-based Manufacturing Execution Systems. An Introduction to Modern Web Development - PUG Challenge Americas 2018 3 / 53

Agenda Web History Timeline An Introduction to Modern Web Development - PUG Challenge Americas 2018 4 / 53

Agenda Web History Timeline Modern Web Application Tools An Introduction to Modern Web Development - PUG Challenge Americas 2018 4 / 53

Agenda Web History Timeline Modern Web Application Tools Application Demo An Introduction to Modern Web Development - PUG Challenge Americas 2018 4 / 53

A Timeline of Web Development 5 / 53

An Introduction to Modern Web Development - PUG Challenge Americas 2018 6 / 53

Era Page Types Language Styling & Layout Apps 1990-1994 Static HTML HTML Attributes None 1994-2005 Dynamic 2005-2010 Dynamic 2010-2018 Dynamic, WebApps PHP, Perl, JSP, ASP, C via CGI Ruby / Rails, Python / Django, PHP / Cake, ASP.NET / MVC + Javascript / Meteor, Express, Angular, React, Vue CSS, Some JS CSS, Jquery, AJAX CSS Preprocessors, JQuery, AJAX Flash, Shockwave, ActiveX, Java Applets Flash, Shockwave, Java Applets, Silverlight HTML5 + JS An Introduction to Modern Web Development - PUG Challenge Americas 2018 7 / 53

How did you get in to web development? 8 / 53

Modern Front End Web Developement 9 / 53

Why get in to Web Dev Now? An Introduction to Modern Web Development - PUG Challenge Americas 2018 10 / 53

Why get in to Web Dev Now? Javascript is maturing and stabilizing An Introduction to Modern Web Development - PUG Challenge Americas 2018 11 / 53

Why get in to Web Dev Now? Javascript is maturing and stabilizing Language Specification Changes are slowing An Introduction to Modern Web Development - PUG Challenge Americas 2018 11 / 53

Why get in to Web Dev Now? Javascript is maturing and stabilizing Language Specification Changes are slowing Modern JS looks a lot more like traditional programming An Introduction to Modern Web Development - PUG Challenge Americas 2018 11 / 53

Why get in to Web Dev Now? Major Frameworks are > 5 years old and back by larger corporations like MS and Google Even older "less cool" frameworks still exist with updates An Introduction to Modern Web Development - PUG Challenge Americas 2018 12 / 53

Why get in to Web Dev Now? Major Frameworks are > 5 years old and back by larger corporations like MS and Google Even older "less cool" frameworks still exist with updates HTML and CSS are still the best cross-platform UI toolkit An Introduction to Modern Web Development - PUG Challenge Americas 2018 12 / 53

Why get in to Web Dev Now? Major Frameworks are > 5 years old and back by larger corporations like MS and Google Even older "less cool" frameworks still exist with updates HTML and CSS are still the best cross-platform UI toolkit Write Once, Run Everywhere is actually somewhat feasible now An Introduction to Modern Web Development - PUG Challenge Americas 2018 12 / 53

It is impossible to begin to learn that which one thinks one already knows. Epictetus, Greek Philosopher 13 / 53

What does a Modern Web App Look Like? Components instead of full pages Distinct line between front end and backend Sometimes no backend at all An Introduction to Modern Web Development - PUG Challenge Americas 2018 14 / 53

Modern JS Toolchain 15 / 53

Editor There are many good editors available for front end development There are plenty of plugins for older editors and IDEs as well Feel free to use what you are familiar with or try something new. Recommendations: MS Visual Studio Code, Jetbrains IntelliJ, Sublime Text 3 An Introduction to Modern Web Development - PUG Challenge Americas 2018 16 / 53

HTML5 and CSS3 More semantic tags Local Storage API Canvas Flexbox layout Grid layout Smooth, native animations (with GPU acceleration) Service Workers WebSockets An Introduction to Modern Web Development - PUG Challenge Americas 2018 17 / 53

CSS Preprocessor Allows for the use of more programming-like features Variables, functions, mixins Browser compatibility Examples: Less (More CSS-like) or Sass (More Ruby-like) I prefer Sass, but if you know CSS super well, Less is probably a better choice. An Introduction to Modern Web Development - PUG Challenge Americas 2018 18 / 53

Front End Framework Optional, but makes your life easier Often deals with responsive layout, consistent styling, browser differences, and more Usually available in Less or Sass to make customizing and theming easier Examples: Bootstrap, Foundation, Bulma An Introduction to Modern Web Development - PUG Challenge Americas 2018 19 / 53

"Compiler" - Babel Babel is a Javascript transpiler It converts modern JS (ES6 and ES2015) into the more widely understood ES5 It lets you use the latest language features before they are available in browsers Allows use of alternate languages that compile to JS like MS's Typescript An Introduction to Modern Web Development - PUG Challenge Americas 2018 20 / 53

Why bother with ES6? Module includes Arrow Syntax (=>) makes some code more readable (Esp. if you are familiar with functional code or lambdas in Java and Python) More data structures You'll see a lot of example code using it An Introduction to Modern Web Development - PUG Challenge Americas 2018 21 / 53

"Linker" - Webpack Webpack packages your source into a real application Combines all asset files into 1 "Minifies" An Introduction to Modern Web Development - PUG Challenge Americas 2018 22 / 53

Package Manager - NPM / Yarn The JS world leans more Unix-y, so you'll use the package manager a lot Lots of free, open-source packages out there Both install packages, manage dependencies, and run utility scripts Yarn is a newer one that solves some problems with NPM, but is compatible with NPM An Introduction to Modern Web Development - PUG Challenge Americas 2018 23 / 53

Javascript Framework Helps to break down code into re-usable components (think User Controls) Helps managing state Makes building dyanmic sites easier Examples: React (Facebook), Angular (Google), Vue (Alibaba) An Introduction to Modern Web Development - PUG Challenge Americas 2018 24 / 53

You don't need to start with everything all at once! 25 / 53

Old School JS An Introduction to Modern Web Development - PUG Challenge Americas 2018 26 / 53

Old School JS <!-- index.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>javascript Example</title> <script src="index.js"></script> </head> <body> <h1>hello from HTML!</h1> </body> </html> An Introduction to Modern Web Development - PUG Challenge Americas 2018 27 / 53

Old School JS // index.js console.log("hello from JavaScript!"); An Introduction to Modern Web Development - PUG Challenge Americas 2018 28 / 53

Adding a JS Library An Introduction to Modern Web Development - PUG Challenge Americas 2018 29 / 53

Adding a JS Library <!-- index.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>example</title> <link rel="stylesheet" href="index.css"> <script src="moment.min.js"></script> <script src="index.js"></script> </head> <body> <h1>hello from HTML!</h1> </body> </html> An Introduction to Modern Web Development - PUG Challenge Americas 2018 30 / 53

Adding a JS Library // index.js console.log("hello from JavaScript!"); console.log(moment().startof('day').fromnow()); An Introduction to Modern Web Development - PUG Challenge Americas 2018 31 / 53

Using NPM An Introduction to Modern Web Development - PUG Challenge Americas 2018 32 / 53

Using NPM Create a package.json npm init An Introduction to Modern Web Development - PUG Challenge Americas 2018 33 / 53

Using NPM Install packages npm install moment --save An Introduction to Modern Web Development - PUG Challenge Americas 2018 34 / 53

Using NPM Add it to your HTML <!-- index.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>javascript Example</title> <script src="node_modules/moment/min/moment.min.js"></script> <script src="index.js"></script> </head> <body> <h1>hello from HTML!</h1> </body> </html> An Introduction to Modern Web Development - PUG Challenge Americas 2018 35 / 53

Using NPM Hand it to a Coworker git clone sweet-project cd sweet-project npm install An Introduction to Modern Web Development - PUG Challenge Americas 2018 36 / 53

Bundling with Webpack An Introduction to Modern Web Development - PUG Challenge Americas 2018 37 / 53

Bundling with Webpack JS did not includeany notion of include / using / import JS Modules had to be loaded into a global variable Naming conflicts, global-state problems, etc. Nodejs introduced the idea that JS could include other JS files var moment = require('moment'); An Introduction to Modern Web Development - PUG Challenge Americas 2018 38 / 53

Bundling with Webpack How do we use that with client-side JS? A module bundler can look at include statements and build a JS file that has all the required code Webpack is the most popular today Use by React, Vue, etc An Introduction to Modern Web Development - PUG Challenge Americas 2018 39 / 53

Bundling with Webpack Installing npm install webpack webpack-cli --save-dev Installs both webpack, a command line interface for webpack, and saves those as Development dependencies. An Introduction to Modern Web Development - PUG Challenge Americas 2018 40 / 53

Bundling with Webpack Webpack it up./node_modules/.bin/webpack index.js --mode=development <!-- index.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>javascript Example</title> <script src="dist/main.js"></script> </head> <body> <h1>hello from HTML!</h1> </body> </html> An Introduction to Modern Web Development - PUG Challenge Americas 2018 41 / 53

Bundling with Webpack // webpack.config.js module.exports = { mode: 'development', entry: './index.js', output: { filename: 'main.js', publicpath: 'dist' } }; An Introduction to Modern Web Development - PUG Challenge Americas 2018 42 / 53

Transpiling An Introduction to Modern Web Development - PUG Challenge Americas 2018 43 / 53

Transpiling Installing npm install @babel/core @babel/preset-env babel-loader --save-dev An Introduction to Modern Web Development - PUG Challenge Americas 2018 44 / 53

Transpiling // webpack.config.js module.exports = {... }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'] } } } ] } }; An Introduction to Modern Web Development - PUG Challenge Americas 2018 45 / 53

Transpiling What does this buy us? An Introduction to Modern Web Development - PUG Challenge Americas 2018 46 / 53

Transpiling What does this buy us? Newer Features! An Introduction to Modern Web Development - PUG Challenge Americas 2018 46 / 53

Transpiling What does this buy us? Newer Features! Format Strings var name = "Bob", time = "today"; console.log(`hello ${name}, how are you ${time}?`); An Introduction to Modern Web Development - PUG Challenge Americas 2018 46 / 53

Transpiling What does this buy us? Newer Features! Format Strings var name = "Bob", time = "today"; console.log(`hello ${name}, how are you ${time}?`); Newer Imports import moment from 'moment'; An Introduction to Modern Web Development - PUG Challenge Americas 2018 46 / 53

NPM Scripts An Introduction to Modern Web Development - PUG Challenge Americas 2018 47 / 53

NPM Scripts NPM can also be told to be a task runner (think Ant) "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack --progress --mode=production", "watch": "webpack --progress --watch" }, npm run build An Introduction to Modern Web Development - PUG Challenge Americas 2018 48 / 53

NPM Scripts Built-in Web Server "server": "webpack-dev-server --open" npm run server An Introduction to Modern Web Development - PUG Challenge Americas 2018 49 / 53

Demo: Vue CLI and Vue Projects An Introduction to Modern Web Development - PUG Challenge Americas 2018 50 / 53

Further Reading How I learned to Stop Worrying and Love the Javascript EcoSystem Modern Frontend Developer in 2018 Vuejs Guide Bootstrap Docs Sass Docs An Introduction to Modern Web Development - PUG Challenge Americas 2018 51 / 53

Wrap Up Web Development Timeline An Introduction to Modern Web Development - PUG Challenge Americas 2018 52 / 53

Wrap Up Web Development Timeline Modern Development Technologies An Introduction to Modern Web Development - PUG Challenge Americas 2018 52 / 53

Wrap Up Web Development Timeline Modern Development Technologies Code Examples An Introduction to Modern Web Development - PUG Challenge Americas 2018 52 / 53

John Cleaver johnc@factivity.com Don't forget to fill out the surveys in the conference app! An Introduction to Modern Web Development - PUG Challenge Americas 2018 53 / 53