What is the difference between UIView and UIViewController?

Beginner

Answer

UIView is the fundamental building block for all visual elements in iOS. It represents a rectangular area on the screen and handles drawing and user interaction within that area. Views can contain other views (subviews) and form a view hierarchy.

UIViewController manages a collection of views and coordinates the logic between the model and view layers. It handles view lifecycle events, user interactions, and navigation between different screens.

// UIView - represents visual element
let myView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
myView.backgroundColor = .blue

// UIViewController - manages views and logic
class MyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        view.addSubview(myView)
    }
}