Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Intermediate Coders: Use JavaScript to Make Web Apps and Art
Rating: 4.4 out of 5(25 ratings)
313 students

Intermediate Coders: Use JavaScript to Make Web Apps and Art

Learn SVG, JSX, JavaScript, React Router, ES6, webpack, CSS, Redux, refactoring & more in this epic web development!
Last updated 11/2018
English
English [Auto],

What you'll learn

  • Learn to create simple vector art with code!
  • Gain hands-on training with real projects
  • Build beautiful, well-functioning web apps
  • And so much more

Course content

23 sections226 lectures24h 40m total length
  • What is an SVG?8:27

    Understand what SVG is, how vector graphics differ from raster images, and why scalable SVGs are ideal for logos and icons. Learn inline SVG, styling shapes, and JavaScript interactivity.

  • Introduction Continued6:50

    Explore three common ways to use svgs: inline svg, image tag, and css background, and learn to create a rectangle with width, height, and fill, plus simple javascript-based manipulation.

  • Creating Rectangle and Circles4:25

    Learn to render rectangles and circles with code, control their position using x and y coordinates, define size with width, height, and radius, and apply fill and stroke colors.

  • Creating Lines3:01

    Create lines in web apps using simple coordinates, start and end points, and stroke width. Set stroke color to black or gold to shape simple designs.

  • Stretch to fit graphics with viewBox7:07

    Explore how to set SVG width and height and use viewBox to zoom and crop regions. Practice shaping rectangles and circles with varied fills to see the viewBox effect.

  • Polygon Element Part 13:33

    Use the polygon element to draw shapes by listing points as x,y coordinates, connect them with lines, fill the interior, and apply stroke for triangles and other polygons.

  • Polygon Element Part 22:26

    Add and close multiple polygons by specifying coordinates, then create an inner triangle with white fill and a black stroke using example points such as 50 200 and 200 100.

  • Polygon Element Part 33:29
  • Polygon Element Part 44:33

    Explore drawing complex polygons with svga by defining points to form a star, enabling stroke and fill to reveal lines and shapes, and experiment with abstract art.

  • viewBox Attributes4:57

    Explore how the view box attribute controls zoom and display by adjusting x, y, width, and height, and how it relates to the viewport for scaling.

  • viewBox Attributes Continued2:24

    Explore how viewBox attributes enable SVGs to scale with the viewing window by removing explicit width and height, allowing auto-resizing and zooming within the viewport.

  • Path Elements7:10

    Explore the path element and its d attribute, using M, L, H, and V commands with absolute or relative coordinates to define the starting point and craft complex shapes.

  • Path Elements Continued2:55

    Continue exploring path elements by grouping shapes with the G keyword and adding multiple paths inside 300 by 300, using the Z command and a CSS class like upper to set teal fill.

  • Bezier Curves Part 17:01

    Explore Bezier curves in paths using the c command to form cubic curves with start, end, and two control points; visualize the curve with guide points.

  • Bezier Curves Part 25:12

    Master Bezier curves by composing shapes and charts through curve logic and adjustable control points, creating smooth squiggly lines, and applying stroke and fill settings for visuals.

  • Bezier Curves Part 32:44
  • Bezier Curves Part 46:03

    Learn how to build more complex Bezier curves in SVG using path d, cubic 'C' commands, and successive 's' reflections, then optionally add lines to shape intricate graphics.

  • Quadratic Bezier Curves4:01
  • Arcs8:57

    Explore SVG arcs in JavaScript by using the path 'a' command with rx and ry radii, x-axis rotation, and the large-arc and sweep flags to draw circular or elliptical curves.

  • Arcs Continued5:05
  • SVG-edit and Illustrator6:24

    Explore SVG edit, an online SVG editor, to create simple SVGs, adjust fills and text, and export as SVG or PNG; note that complex shapes are hard to code.

  • Styling Inline SVG8:10

    Style inline svg to target parts with css transitions and animations. Group foliage with a g element, hover to change color, and apply wind-like transforms with fixed height and width.

  • SVG in IMG tag6:42

    Explore loading scalable vector graphics in an img tag or as a background, export SVG assets, and control sizing with inline styles to build dynamic, text-heavy logos and web UI.

  • SVG in Background IMG5:15

    Learn to use SVG as a responsive background image with CSS and media queries, scale with percentage widths, and set explicit heights for crisp, centered backgrounds.

  • Modifying Inline SVG11:53
  • SVG with Javascript10:20

    Render a circle on top of existing SVG elements and generate multiple red circles with JavaScript by grouping them and constraining placement within the outer rectangle for tree-like structures.

  • Adding Trees6:17

    Create pine trees by exporting a triangle path, grouping it as pine, and using SVGA's use with xlink to place 20 trees at random coordinates.

  • Creating Trees11:46

    Learn to procedurally generate trees in SVG by cloning a base pine element, randomizing x and y coordinates, and adjusting transforms to create varied sizes within bounds.

  • Creating Trees Continued3:26
  • Remove Button7:04

    Refactor your JavaScript project by removing unused code and consolidating repeated logic, extract a getRandom function, and implement a remove all pine trees button that cleans up the dom.

  • Adding Other Tree Types15:17
  • Sorting Trees8:40
  • Sorting Trees Continued4:31

    Leverage data-y-axis attributes to store y coordinates and access them with element.dataset.yAxis for sorting by y axis, enabling reusable tree rendering.

  • Refactoring JavaScript6:09
  • Refactoring JavaScript Continued7:03

    Refactor repetitive DOM attribute assignments by introducing a reusable setAttributes function that uses a for-in loop to iterate over object keys and applies attributes like class and data-y-axis to elements.

  • Saving as SVG8:52

    Implement client-side saving of SVGA as an SPG file by wiring a save button and file name input, creating a blob, and triggering a browser download.

  • Saving as SVG Continued5:48

    Create and download an SVG file from blob data using object URLs, a dynamic download link, and a delayed revoke of the URL to release resources.

  • Save as PNG7:21

    Learn to save your app art as a png file by drawing on a canvas, creating a downloadable image, and adding a name validation check for unnamed files.

  • Downloading Images8:04

    This lecture demonstrates refactoring image download logic into a reusable function, wiring up buttons with data-format attributes to download svg or png images via blob creation, conversion, and cleanup.

  • Refactoring Part 15:18

    Refactor a function to do one thing, convert to a draft format, return the draft, and trigger a download after arrival, using callback and promise patterns with an SVGA URL.

  • Refactoring Part 26:15

    Refactor three image-related functions into a single object with methods like save image, convert to png, and download image, ensuring correct this binding and streamlined event handling.

  • Refactoring Part 33:37
  • Main Functionality14:12

    Refactor the main functionality into a tree generator object initialized on dom content loaded, encapsulating variables to create oak and pine trees sorted by y axis on the terrain.

  • Main Functionality Continued3:37

    Continue refactoring by turning the attributes function into a method, using this and indentation. Encapsulate randomization and order by y axis in the object, test with pine and oak trees.

  • Testing Cross-Browser Compatibility13:43

    Test cross-browser compatibility for Chrome, Safari, and Firefox, fix syntax and data attribute issues, ensure proper layering, and verify exports to SVG and PNG across browsers.

  • Checking DOMcontentload2:39

    Intermediate coders learn to ensure the dom is loaded before accessing elements by placing event listeners in a domcontentloaded handler, ensuring scripts run after the dom parses.

  • Styling Part 110:12

    Apply resets and box-sizing border-box, center the main container using margin auto at 80vw, and style buttons with hover and active feedback for a clean, responsive ui.

  • Styling Part 27:13

    Adjust button widths and input alignment for full-width use, then implement media queries to improve mobile responsiveness. Center controls and use flex wrap to reflow with breakpoints.

  • Styling Part 36:10

    Apply responsive CSS tweaks: adjust margins, set button widths to 80vw, and add a 575px breakpoint with inherit widths to resize inputs properly across browsers.

  • Modal for PNG Part 18:01
  • Modal for PNG Part 26:27
  • Modal for PNG Part 36:18
  • More JavaScript Refactoring6:40

    Refactor JavaScript for intermediate coders by conditionally setting dimensions based on format, preventing unwanted width and height when downloading as PMG, and streamline DOM handling with forEach and event listeners.

  • Styling Modal Further9:33
  • Adding Size Reset Button8:30

    Add a size reset button to reset width and height inputs for maintaining aspect ratio, refine modal button interactions, and ensure consistent behavior across browsers.

  • Outro1:29

    Conclude the web app project by enabling a cursor pointer on hover for visual feedback. Tinker with different backgrounds, objects, animations, and aspect ratio preservation to extend the project.

  • ($1000 value!) Source Code0:02

    Get here - source files from the projects of this section.

Requirements

  • Basic understanding of HTML, CSS and JavaScript is highly helpful. To get a fast introduction, enroll in our "Kids Coding -Introduction to HTML, CSS and JavaScript" course.
  • An Internet connection to follow along in the free text editor JS Bin.
  • No SVG knowledge is required.
  • Illustrator CC or another graphic editing software
  • Modern web browser
  • This course was recorded on a Mac computer, but you can use a PC.

Description

"This guy knows his stuff. Really good course. Has a ton of content! I watch this all the time. His SVG knowledge is impressive. I also liked the React stuff." - Daniel S.

Do you want to take the next steps in your web development career or programming hobby? This course is for you. 

This course is project-based so you will not be learning a bunch of useless coding practices. At the end of this course you will have real world apps to use in your portfolio. We feel that project based training content is the best way to get from A to B. Taking this course means that you learn practical, employable skills immediately.

In Part 1, you will learn hands-on how to create SVG animations in the browser using HTML & CSS. Together with your expert instructor Chris Veillette of Mammoth Interactive, you will:

  • Recognize why you should use SVGs for web development.

  • Create SVG shapes.

  • Embed SVG on a web page.

  • Make a landscape scene entirely with code!

In Part 2, you will master the fundamentals of React and Redux by developing apps. You will learn how to do all of the following, and more!

  • Lay out a web app in a logical way

  • Use JSX, a pre-processor that adds XML syntax to JavaScript

  • Build a single-page app using React Router

  • Code in ES6 and JavaScript

  • Use webpack, a bundler for code

  • Transition from webpack 1.0 to webpack 2.0

  • Write modular CSS

  • Use Redux, a predictable state container for JavaScript apps

  • Refactor code (alter code to make it simpler and more efficient)

  • Fix bugs and handle errors

The beauty of taking an online course like this is the ability to replay any of the lectures at any time. There is no time limit or final tests. You get to learn at your own pace with a practical model method of learning.

One of the best features is that you can watch the courses at any speed you want. This means you can speed up the or slow down the video if you want to.

You can use the projects you build in this course to add to your LinkedIn profile. Give your portfolio fuel to take your career to the next level.

Learning how to code is a great way to jump in a new career or enhance your current career. Coding is the new math and learning how to code will propel you forward for any situation. 

Learn it today and get a head start for tomorrow. People who can master technology will rule the future.

Who this course is for:

  • Anyone who wants to make art for web pages using code!
  • Developers who want to learn about React and Redux.
  • Coders who want to learn to build web apps.
  • Coders who want to learn JavaScript.