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

Similar documents
Static Webpage Development

Introduction to WEB PROGRAMMING

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML

Web development using PHP & MySQL with HTML5, CSS, JavaScript

Zen Garden. CSS Zen Garden

CSS.

Web Development for Dinosaurs An Introduction to Modern Web Development

welcome to BOILERCAMP HOW TO WEB DEV

HTML and CSS COURSE SYLLABUS

Anatomy of an HTML document

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

INTRODUCTION TO CSS. Mohammad Jawad Kadhim

Etanova Enterprise Solutions

Web Development and HTML. Shan-Hung Wu CS, NTHU

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

Data Visualization (CIS/DSC 468)

Index LICENSED PRODUCT NOT FOR RESALE

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

Basics of Web Technologies

Standard 1 The student will author web pages using the HyperText Markup Language (HTML)

Make a Website. A complex guide to building a website through continuing the fundamentals of HTML & CSS. Created by Michael Parekh 1

Data Visualization (DSC 530/CIS )

CSC309 Programming on the Web week 3: css, rwd

Deccansoft Software Services

Index. alt, 38, 57 class, 86, 88, 101, 107 href, 24, 51, 57 id, 86 88, 98 overview, 37. src, 37, 57. backend, WordPress, 146, 148

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

DATABASE SYSTEMS. Introduction to web programming. Database Systems Course, 2016

Cascading Style Sheets Level 2

Frontend UI Training. Whats App :

Lecture : 3. Practical : 2. Course Credit. Tutorial : 0. Total : 5. Course Learning Outcomes

Web Standards Mastering HTML5, CSS3, and XML

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

1/6/ :28 AM Approved New Course (First Version) CS 50A Course Outline as of Fall 2014

IN4MATX 133: User Interface Software

Session 4. Style Sheets (CSS) Reading & References. A reference containing tables of CSS properties

COMS W3101: SCRIPTING LANGUAGES: JAVASCRIPT (FALL 2018)

CSS 1: Introduction. Chapter 3

Comprehensive AngularJS Programming (5 Days)

Fundamentals of Website Development

HTML & CSS. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Index. Bower, 189 Breakpoint, 7

Cascading Style Sheets (CSS)

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript

Client-Side Web Technologies. CSS Part I

CS197WP. Intro to Web Programming. Nicolas Scarrci - February 13, 2017

Front-End UI: Bootstrap

HTML CSS JAVASCRIPT WEB PUBLISHING IN ONE HOUR A DAY SAMS TEACH YOURSELF COVERING HTML5 CSS3 AND JQUERY 7TH EDITION

HTML & CSS. Rupayan Neogy

is Introduction to HTML

Cascading Style Sheet

CSS: The Basics CISC 282 September 20, 2014

Programmazione Web a.a. 2017/2018 HTML5

CSS Cont'd: Cascading Style Sheets

UNIT -II. Language-History and Versions Introduction JavaScript in Perspective-

WEBSI TE DESIGNING TRAINING

Session 3.1 Objectives Review the history and concepts of CSS Explore inline styles, embedded styles, and external style sheets Understand style

The Structure of the Web. Jim and Matthew

Study Guide 2 - HTML and CSS - Chap. 6,8,10,11,12 Name - Alexia Bernardo

All India Council For Research & Training

HTML & CSS November 19, 2014

Html basics Course Outline

Lesson 5 Introduction to Cascading Style Sheets

User Interaction: jquery

World Wide Web PROGRAMMING THE PEARSON EIGHTH EDITION. University of Colorado at Colorado Springs

HTML CS 4640 Programming Languages for Web Applications

Fundamentals of Web Development. Web Development. Fundamentals of. Global edition. Global edition. Randy Connolly Ricardo Hoar

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

Sections and Articles

Responsive Web Design (RWD)

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

Qiufeng Zhu Advanced User Interface Spring 2017

Web Design & Dev. Combo. By Alabian Solutions Ltd , 2016

To Ponder. Which one wins? .draft div.warning li { }.draft div #main li {!important; } div #main ul li { }.draft.warning ul li { }

Website Development with HTML5, CSS and Bootstrap

Unveiling the Basics of CSS and how it relates to the DataFlex Web Framework

Introduction to Web Technologies

Modern and Responsive Mobile-enabled Web Applications

Purpose of this doc. Most minimal. Start building your own portfolio page!

Data Visualization on the Web with D3

JavaScript Lecture 1

LING 408/508: Computational Techniques for Linguists. Lecture 14

AJAX ASYNCHRONOUS JAVASCRIPT AND XML. Laura Farinetti - DAUIN

Web Programming Pre-01A Web Programming Technologies. Aryo Pinandito, ST, M.MT

('cre Learning that works for Utah STRANDS AND STANDARDS WEB DEVELOPMENT 1

Programming web design MICHAEL BERNSTEIN CS 247

MODULE 2 HTML 5 FUNDAMENTALS. HyperText. > Douglas Engelbart ( )

HTML5. HTML5 Introduction. Form Input Types. Semantic Elements. Form Attributes. Form Elements. Month Number Range Search Tel Url Time Week

ITNP43: HTML Lecture 4

Alpha College of Engineering and Technology. Question Bank

HTML HTML. Chris Seddon CRS Enterprises Ltd 1

UI development for the Web.! slides by Anastasia Bezerianos

Connecting the Dots. Building Web Applications with PHP, HTML, CSS, and JavaScript

Markup Language. Made up of elements Elements create a document tree

Overview

Index. C CakePHP framework, 232 Cascading Style Sheets (CSS)

CREATE SASSY WEB PARTS. Developer Guide to SASS usage in SPFx

Unit 10 - Client Side Customisation of Web Pages. Week 5 Lesson 1 CSS - Selectors

3.1 Introduction. 3.2 Levels of Style Sheets. - The CSS1 specification was developed in There are three levels of style sheets

- The CSS1 specification was developed in CSS2 was released in CSS2.1 reflects browser implementations

Transcription:

Web UI Survey of Front End Technologies Web UI 1 Web Challenges and Constraints Desktop and mobile devices - mouse vs. touch input, big vs. small screen Highly variable runtime environment - different OS, different browsers and version, user settings Distributed system - managing state, handling latency and lost connections, Evolving standards - best practices, specifications, frameworks, tools Legal and marketing - search engine optimization, copyright, mandated accessibility Web UI 2

Web Architecture HTML - DOM - canvas CSS - media queries - frameworks - pre-processors JavaScript - language - frameworks - transcompilers Front End Browser HTML CSS JavaScript Back End HTTP Web Server PHP or Ruby or Python or Java or Node.js JavaScript or Database Web UI 3 Web Development Technology Timeline (up to 2014) http://www.evolutionoftheweb.com/#/evolution/day 1993 first browser 1995 JavaScript A JAX canvas HTML5 1999 2004 2008 2014 Web UI 4

Web UI 5 Hypertext Mark-up Language (HTML) (~1993) Language for describing the structure of Web pages <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>hello World</title> </head> <body> <h1>hello World</h1> <p> <a href="http://www.wat.com">wat</a> <img src="emoji.jpg" alt="worried Emoji" /> </p> </body> </html> Web UI 6

HTML is a W3C Standard World Wide Web Consortium (W3C) - HTML 5.1 2nd Edition (W3C Recommendation 3 October 2017) - https://www.w3.org/tr/2017/rec-html51-20171003/ Elements - metadata tags: <head>, <title>, <style>, - section tags: <body>, <nav>, <header>, <h1>, <h2>, - grouping tags: <p>, <ol>, <ul>, <li>, <figure>, <div>, - text-level semantic tags: <a>, <em>, <span>, <code>, - embedded content tags: <img>, <video>, - tabular data tags: <table>, <tbody>, <tr>, <td>, - form tags: <button>, <input>, <textarea>, Web UI 7 Tag Attributes Examples - Defining a hyperlink URL: <a href="http://www.wat.com">wat</a> - Defining an Image: <img src="emoji.jpg" alt="worried Emoji" /> Universal Attributes Attribute id class style title Meaning Assigns a unique identifier to the element. Assigns one or more classifications to the element. Apply in-line CSS styles to the element. Provide a title or advisory information about the element. Web UI 8

Document Object Model (DOM) defines the structure of the HTML document as well as the behavior of the objects it contains resembles an interactor tree Web UI 9 Cascading Style Sheets (CSS) (~1998) Separate presentation using CSS from content defined by HTML create rules by setting style properties on selectors - simple selectors (specific element type, class, id) - attribute selectors (elements with attribute types and values) - pseudo selectors (elements in a certain state, e.g. :hover) selector CSS rule: h1 { color: red; font-size: 2rem; property value Web UI 10

CSS Example body { font-family: Helvetica, Arial, sans-serif; font-size: 14pt; h1 { color: red; font-size: 2rem; p { font-size: 1rem; Web UI 11 CSS Inheritance and Cascade Inheritance in CSS is the mechanism for passing certain properties from a parent element down to its children - e.g. font property for <body> is inherited for <p> Cascade is mechanism that controls the end result when multiple, conflicting CSS declarations apply to the same element - e.g. font property for <p> can be overridden Web UI 12

http://www.csszengarden.com/ Web UI 13 CSS frameworks (~1997) A CSS file of pre-configured styling - (and related JavaScript, assets, ) Popular frameworks - Meteor, Bulma, Pure, Materialize - Bootstrap (~2011) <div class="container"> <div class="row"> <div class="col-sm"> One of three columns </div> <div class="col-sm"> One of three columns </div> <div class="col-sm"> One of three columns </div> </div> </div> Web UI 14

CSS Preprocessors (~2006) A CSS superset language that generates CSS Less and SASS (syntactically awesome stylesheets) most common - variables, operators, loops, nesting, mixins (functions), explicit inheritance, modular files (with partials) SASS @for $i from 1 through 8 { $width: percentage(1 / $i).col-#{$i { width: $width; CSS.col-1 {width: 100%;.col-2 {width: 50%;.col-3 {width: 33.333%;.col-4 {width: 25%;.col-5 {width: 20%;.col-6 {width: 16.666%;.col-7 {width: 14.285%;.col-8 {width: 12.5%; Web UI 15 CSS3 Media Queries for Responsive Layout (~2012) /* For mobile phones: */ h1 { color: red; font-size: 1.5rem; /* For tablets: */ @media only screen and (min-width: 600px) { h1 { color: green; font-size: 2rem; /* For desktop: */ @media only screen and (min-width: 768px) { h1 { color: blue; font-size: 3rem; Web UI 16

JavaScript (1995) partly based on Scheme - Java-like syntax for business reasons - first version written in 10 days (and shipped!) originally for designers to script web pages - interpreted - inheritance by prototypes, not classes - functional programming traits - dynamically typed Web UI 17 Wat, A lightning talk by Gary Bernhardt from CodeMash 2012 - https://www.destroyallsoftware.com/talks/wat Web UI 18

JSON (JavaScript Object Notation) (early 2000s) lightweight datainterchange format - alternative to XML Hierarchy of two structures: - A collection of name/value pairs - An ordered list of values { "title": "Person", "type": "object", "properties": { "firstname": { "type": "string, "lastname": { "type": "string", "age": { "description": "Age in years", "type": "integer", "minimum": 0, "required": ["firstname", "lastname"] Web UI 19 AJAX (asynchronous JavaScript and XML) (1995) JavaScript and XMLHttpRequest object enable exchanging data between browser and server to avoid full page reloads Oddly, XML is rarely used, almost always JSON data format Lead to the single-page app paradigm (1995 Article by Jesse James Garret) Web UI 20

HTML Canvas (~2005) <canvas id="mycanvas" width="200" height="200"/> <script> var c = document.getelementbyid("mycanvas"); var ctx = c.getcontext("2d"); ctx.translate(100, 100); for (a = 0; a < 360; a += 3) { ctx.rotate(a * (Math.PI / 180) ); ctx.beginpath(); ctx.arc(30, 30, 20, 0, 2 * Math.PI); ctx.stroke(); Web UI 21 Jquery (2006) Vanilla JavaScript is verbose, error-prone, browser-specific jquery is a JavaScript library that simplifies: - Traversing the DOM - Animating elements in the DOM - Handling events on the DOM, example: JavaScript var el = document.getelementbyid("mybutton") el.addeventlistener("click", function() { alert("hello");, false); $("#mybutton ).click(function() { alert( Hello ); ); Web UI 22

JavaScript Transcompilers (~2009) A transcompiler is source-to-source compiler JavaScript function greet(name) { return "Hi " + name; greet("bob"); function greet(name: string): string { return `Hi ${name.` greet("bob"); fun greet(name: String): String { return "Hi $name." greet("bob") Web UI 23 Web MV* Frameworks (~2010) Web UI 24

ECMAScript JavaScript is based on ECMAScript, a ECMA-262 standard 4 th edition ECMAScript (2007) - abandoned 5 th edition - ECMAScript 3.1 (2009) - current JavaScript in most browsers 6 th edition - ECMAScript 2015 (incomplete browser support) - huge update to language 8 th edition - ECMAScript 2017 - await/async using generators and promises Babel (2014) is a transpiler to convert code written using new JavaScript standards down to older JavaScript standards Web UI 25 asm.js (The Birth & Death of JavaScript, Gary Bernhardt) - https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript Web UI 26

Other Tools package manager - Bower, npm automation ( building, task running ) - Gulp, Gradle Debugging and inspecting Web UI 27 Electron (2013) Cross-platform desktop apps built with HTML, CSS, JavaScript Electron provides: - a minimal web browser to run your app interface - JavaScript libraries to handle cross platform file access - a package to bundle everything together to install and run Slack is an Electron app Web UI 28

Node.js (2009) A JavaScript runtime built on Chrome's V8 JavaScript engine - JavaScript on the back end Web UI 29 There s much, much more Semantic Web - Resource Desc. Framework (RDF), Web Ontology Language (OWL) RESTful web services Managing State - cookies, query strings, HTTP state, etc. Cloud Computing - Amazon Web Services, Docker Server Frameworks and Common Platforms - Ruby on Rails, Django, WordPress, Other Key Formats and Technologies - XML, JSON, PNG, SVG, web fonts, markdown, URI, SSL Search Engine Optimization (SEO), Privacy and Security, Internationalization, Testing, Staging and Deployment, Web UI 30