Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2....

36
Hello! April Medinger UI Designer / Developer - HarrisData 1

Transcript of Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2....

Page 1: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Hello!

April MedingerUI Designer / Developer - HarrisData

1

Page 2: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Anatomy of Web Apps

2

Page 3: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Anatomy overview

3

HTML CSS JavaScript

Bones Tissue Nervous System

Content Design / Style Interactivity

Page 4: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

( HTML ) HyperText Markup Language

4

✓ Not a programming language

✓ Semantic meaningful markup (HTML5)

✓ Identifies structure of document

✓ Metadata about document

○ Title, author, keywords.. Etc.

✓ More support for media (HTML5)

○ Video and Audio

✓ Better integration with CSS and JS (HTML5)

○ Eliminates need for Plugins!

○ Flash and Applets (thank goodness)

Page 5: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

5

( HTML ) HyperText Markup Language

Page 6: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

( CSS ) Cascading Style Sheets

6

✓ Specifies the document’s style

○ Layout, colors, font, etc.

✓ Best practices: Keep content separate from design

○ External styles

👍

👍

Page 7: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Responsive Web Design

7

✓ Practice of building a website suitable to work on

every device and every screen size, no matter how

large or small, mobile or desktop

✓ CSS Grid Layout

✓ @media rules

○ Detects width, height, orientation, resolution

✓ Mobile detection libraries ( JS, PHP, etc.. )

Page 8: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

8

Responsive Web Design

Page 9: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

CSS Preprocessors

9

✓ Programs generate CSS from unique syntax

✓ Make the CSS structure more readable and

easier to maintain

✓ Adds features not available in pure CSS

○ Variables

○ Functions and mixins

○ Nesting

○ Extends

Page 10: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

CSS Preprocessors - Variables10

Page 11: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

CSS Preprocessors - Nesting11

Page 12: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

CSS Preprocessors - Mixins / Functions12

Page 13: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

CSS Preprocessors - Extends13

Page 14: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

( JS) JavaScript

14

✓ Been around for almost 25 years

✓ Dominant programming language in web

development

✓ Typically used as Client-side code

✓ Provides animation to static websites

✓ Creates dynamically updating content

Page 15: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

( JS) JavaScript

15

😒 😉

A website becomes dynamic when content changes

Page 16: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

16

SPA …Not this kind.

Page 17: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

( SPA ) Single Page App

17

Page 18: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

18

Content Manipulation Data

DOM (Document Object Model)

AJAX (Asynchronous JavaScript and XML)

Web APIs Third Party APIs

( JS) JavaScript

JavaScript is nothing without an ( API ) Application Programming Interface

Page 19: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

(DOM) Document Object Model

19

✓ Programming interface for HTML

and XML documents

✓ Not a programming language

✓ Is not JavaScript!

✓ Represents the document in

memory as objects

✓ Allowing programs to change

structure, style and content

Page 20: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

(DOM) Document Object Model

20

✓ Example of

JavaScript

utilizing the

DOM API

Page 21: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Web APIs

21

✓ DOM is a Web API

✓ See Interfaces

https://developer.mozilla.org/en-

US/docs/Web/API#Interfaces

✓ See Events

https://developer.mozilla.org/en-

US/docs/Web/Events

Page 22: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

(AJAX) Asynchronous JavaScript and XML

22

✓ Not a programming language

✓ Set of web techniques

✓ Asynchronous = in the background

✓ Decouples the data interchange layer from

the presentation layer

✓ Allows for dynamic content between client

and server without ‘reloading’ the page

(SPA)

✓ Uses XMLHttpRequest object

Page 23: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

(AJAX) Asynchronous JavaScript and XML

23

Page 24: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

24

Page 25: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Decoupling allows for modernizing

25

Page 26: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

API Web Service Layer

26

✓ UI doesn’t care where the data is coming from!

✓ Create a web service api on top of legacy software

✓ Use new UI tools with your existing software

✓ Open source options available

Page 27: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Seriously what is Node, Angular and TypeScript?

27

Page 28: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

NODE and ( NPM ) Node Package Manager

28

✓ Open source server environment

✓ Node runs JavaScript on the server

✓ Online repository for publishing open-source

Node.js projects

✓ Command-line utility for interacting with

repository

○ Package installation

○ Version management

○ Dependency management

Page 29: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Angular and TypeSCript

29

✓ Two major versions

○ Angular JS = JavaScript framework

○ Angular 2+ = TypeScript framework

✓ Open source project led by Angular team at Google

✓ Superset of JavaScript

✓ Compiles to JavaScript

✓ Static and Strongly Typed

✓ Object Oriented Programming language

✓ Developed and maintained by Microsoft

Page 30: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Why TypeSCript

30

✓ Simplifies JavaScript making it easier to

read and debug

✓ Compile time static type checking

✓ Compile to JavaScript different ES

versions

Page 31: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Types of Web/Mobile Apps

31

Page 32: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Types of Apps32

Page 33: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Types of Apps33

Cons

× More costly upfront

× Requires experienced developers

× Separate code for each platform

Pros

✓ Direct access to Device

✓ Superior user experience and

interactivity

✓ Best performance

Page 34: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Types of Apps34

Cons

× Limited access to device features

/ hardware

× Slower and less interactive than

native apps

Pros

✓ Runs in browser on device

✓ Doesn’t take up storage

✓ Wide range of users

Page 35: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Types of Apps35

Cons

× Dependent on a third-party

platform to deploy the app’s

wrapper

Pros

✓ Access to device’s internal API

and hardware

✓ Doesn’t use browser

JavaScript Frameworks like React Native and Ionic

allow developers to build authentic native iOS and

Android apps with one codebase!

Page 36: Hello! · Hello! April Medinger UI Designer / Developer - HarrisData 1. Anatomy of Web Apps 2. Anatomy overview 3 ... NODE and ( NPM ) Node Package Manager 28 Open source server environment

Thank you!

Any questions?

36