class: left, middle, title # Web + Mobile System Design #### DIGF 6039 - Digital Futures, OCAD University Session 1, back at it at **4:40PM** --- class: left, middle ## A quick hello π - Ryerson 11' - Designer-engineer hybrid - PhD student in Computer Science - Instructor at Ryerson and OCAD - Most recently: **Fresco Space** (shared workspace) and **Partial** (art rental) --- class: left, middle ## Let's talk about you ππ»ββοΈ - Name - Current profession or recent project - Proficiency with web programming - Learning objectives - Fun fact about you --- class: left, middle ## All about the Web π - Project concepts and tangible coding skills - Following the evolution of the industry: from online libraries to chatbots - Three chapters, three assignments, twelve weeks --- class: left, middle ## Learning outcomes π - Solid understanding of client- and server-side **web programming** - Broader perspective on **standardization** in web environments - Evaluation of existing **open-source solutions** and web services - Strong strategy for **architecture** and implementation in web environments --- class: left, middle ## Three chapters π - Web Development Fundamentals - Interactivity, Scalability, and Visualization - Cooperation and Appropriation --- class: left, middle ## Technologies π - **Core**: HTML and CSS - **Backend**: PHP and MySQL - **Interactivity**: JavaScript and jQuery - **Miscellaneous**: API, SVG, Git, etc. --- class: left, middle ## Typical session - Concept discussion (45 to 60 minutes) π‘ - Quick break / question period (15 to 20 minutes) - Coding exercise (60 to 90 minutes) π€ - Adhoc troubleshooting (as required) Studio time dedicated to individual work period and troubleshooting --- class: left, middle ## Assignments More details introduced in the second week of each chapter - Multipage Personal Website (Individual) - API-driven Experiment (Individual) - Application by Collaboration (Group Project) Each assignment demonstrative of the corresponding chapter --- class: left, middle ## Learning support - Curriculum designed for novices π£ - Course content available via **Canvas** - Hotline support via **Slack** π¨ --- class: right, middle ## Any questions? Moving onto the first week's content ... --- class: center, middle ## Do you remember this?
--- class: left, middle ## Plenty of work involved π΅ - Programming skills - Hosting cost - Time and patience --- class: center, middle ## ... It's cool again
--- class: left, middle ## Plenty of "code-free" options out there - Wix - Squarespace - Weebly - WordPress.com Are they **good enough** for designers? --- class: left, middle ## Disadvantages - Preset templates - Little to no customization - Lack of technical support - Ultimate need for programmers **Harsh constraints** for creatives --- class: left, middle ## Is learning to code a solution? - Not the end goal, but a very valuable asset - Written code as the product of your thought --- class: left, middle ## What's stopping us? - "Brogrammers" - Code schools with high price tag - Tech bubble: there's a whole lot of noise and jargon --- class: left, middle ## Code as a tool - Means of creative expression - Tool for self-awareness - More than a line item in your CV --- class: center, middle ## State of industry
Hint: it's a heavily abstracted mess --- class: left, middle ### "Hey, I got this new web project." πΈ "I havenβt coded much web in a few years and Iβve heard the landscape changed a bit." --- class: right, middle ### "I know the latest tech to create web apps." π€ "You should try learning React, Itβs a super cool library made by some guys at Facebook, it really brings control and performance to your application, by allowing you to handle any view changes very easily. But first you need to add React and React DOM as a library in your webpage. So one is the actual library and the second one is for manipulating the DOM, which now you can describe in JSX. JSX is just a JavaScript syntax extension that looks pretty much like XML. Itβs kind of another way to describe the DOM, think of it as a better HTML. No one codes HTML directly anymore." --- class: center, middle # π What happened here? --- class: left, middle ## Industry has matured - New technologies to perform more complex tasks - Abstraction helps the developers to be productive --- class: left, middle ## Inconvenient truth π€« - Based on the 80/90s core technologies - Corporate interests (Facebook vs. Google) - Core technologies have not changed since the inception - layers and techniques have Code bootcamps make it worse by favoring specific tools that are not time-tested --- class: center, middle ## All the fancy tools still boil down to ...
--- class: center, middle ## Things really haven't changed
--- class: center, middle ### Brief history of HTML and CSS π€ --- class: center, middle ### How did it start?
Believe it or not, the Web was completely textual --- class: center, middle ### World Wide Web
Created in the late 80s by Tim Berners-Lee to exchange research documents --- class: center, middle #### "Do I really have to scroll manually down to page 52?" πΎ --- class: center, middle ### "Make a hyperlink in page 1" π€ --- class: center, middle ### Hypertext
Ability to redirect the user from one place in Internet to [another](https://frescospace.com) --- class: left, middle ### What do we call this technology? HTML: HyperText Markup Language --- class: center, middle ### No design π΅
No control over presentation style --- class: center, middle ### Enter CSS
Created in 1994 by HΓ₯kon Wium-Lie as a MIT student --- class: center, middle ### Commercialization of Web
With branding capabilities, money flowed into the Web --- class: left, middle ### Additional technologies by necessity - **Server-side**: How can we store and access large amounts of editorial content? - **Interactivity**: How can we make the web more animated and interactive? - **Visualization**: How can we help others to understand large amounts of data? - **Collaboration**: How can we allow different parties to collaborate? - **Automation**: How can we automate simple tasks and imitate human users? --- class: center, middle ### Bottom line
Core web technologies were all introduced by 1995 Everything that we do is a rehash πͺ --- class: center, middle ### Learning core technologies
It's not easy, but it's incredibly logical π€ --- class: center, middle ### Expectation
--- class: center, middle ### Reality
--- class: left, middle ### What do we need to start coding? - Text editor - Web browser - FTP server (nice-to-have) --- class: center, middle ### Tools can be as complex as ...
--- class: center, middle ### ... or as simple as ...
--- class: center, middle ### What do we need to start coding? As part of this course: **Visual Studio Code** by Microsoft --- class: left, middle ### First steps - Workspace setup - "Hello world" exercise - Complex layout exercise --- class: center, middle ### Keeping it 1990s
"Hello world" exercise --- class: center, middle ### Stacking boxes
Complex layout + external solutions --- class: left, middle, title # Web + Mobile System Design #### DIGF 6039 - Digital Futures, OCAD University Week 1, Tuesday at 3:10PM