Update Line.swift
struct Line {
  var lineWidth: CGFloat = 10
Add new properties
class DrawView: UIView, UIGestureRecognizerDelegate {
  var maxRecordedVelocity: CGFloat = CGFloat.leastNonzeroMagnitude
  var minRecordedVelocity: CGFloat = CGFloat.greatestFiniteMagnitude
  var currentVelocity: CGFloat = 0
  var currentLineWidth: CGFloat {
    let maxLineWidth: CGFloat = 20
    let minLineWidth: CGFloat = 1
    // Thinner line for faster velocity
    let lineWidth = (maxRecordedVelocity - currentVelocity) / (maxRecordedVelocity - minRecordedVelocity) * (maxLineWidth - minLineWidth) + minLineWidth
    return lineWidth
  }
Update stroke(_ line: Line)
  let path = UIBezierPath()
//    path.lineWidth = lineThickness
  path.lineWidth = line.width
Update touchesBegan()
// let newline = Line(begin: location, end: location)
let newline = Line(begin: location, end: location, width: currentLineWidth)
Update touchesEnded()
line.width = currentLineWidth
finishedLines.append(line)
Update moveLine(_ gestureRecognizer: UIPanGestureRecognizer)
  print("Recognized a pan")
  
  let velocityInXY = gestureRecognizer.velocity(in: self)
  currentVelocity = hypot(velocityInXY.x, velocityInXY.y)
  
  maxRecordedVelocity = max(maxRecordedVelocity, currentVelocity)
  minRecordedVelocity = min(minRecordedVelocity, currentVelocity)
  
  print("Current Drawing Velocity: \(currentVelocity) points per second")
  print("maxRecordedVelocity: \(maxRecordedVelocity) points per second")
  print("minRecordedVelocity: \(minRecordedVelocity) points per second")
  
  guard longPressRecognizer.state == .changed || longPressRecognizer.state == .ended else {
    return
  }