
This video provides an overview of the entire course.
We need some tooling to start working with Elm. For that, we are going to use Create Elm App, which enables us to create and run the project in the development mode.
To start working on the implementation, we need to learn the basics of Elm syntax. We need to know how to define values and functions, learn how we can use infix operators and lambda functions in Elm. Also, we are going to learn the Partial application.
To start expressing the data in our application, we need to know how to work with primitive data types for storing grouped pieces of data. Tuples and Records are enabling us to do precisely that, so we will learn how to work with both.
Persistent or immutable data structures for storing collections of data of the same type are essential for implementing real-world applications. We need to get the understanding of existing data structures in Elm to be able to utilize them efficiently.
We need to understand how to read and define type definition annotations in Elm to be able to work productively with language's type system. We need to look into type aliases and union types.
Functional languages have their own ways for representing the absence of data. We need to know how to work with maybe and result types to understand, how we could represent the results of computations, which might fail or yield no data at all.
In this video, we will use external packages and create our own modules for better code organization.
We want to be able to render our application in the browser using HTML language. Html package exists precisely for this use-case.
In this video, we will learn to react to user actions and have some ways to preserve the state in our application so we could build an interactive application.
This video will help you understand how Elm performs asynchronous computations, so we could work with HTTP requests and other asynchronous APIs.
In this video, we will run tasks as Commands in our application, so it's possible to perform different side-effects.
In this video, we will pass some data upon initialization of our program and use Html.programWithFlags.
This video will help you to be able to communicate with the server and send a GET request.
In this video, we will learn how to perform communication with the outside world when we have no type-safety guarantee.
This video will help you communicate with JavaScript runtime from Elm. We will also see how to send data to JavaScript and back if we want.
This video will help us understand what tools are available for a developer while working with Elm.
In this video, we will see how elm-package command line tool can be used to work with Elm packages and enforce semantic versioning for our packages.
This video will help you to learn how to ensure the quality and correctness of our custom functionality.
In this video, we will use CSS by representing all the property names and values as strings.
This video will help us implement details of sensitive functionality in our modules.
In this video, we will learn how to use a tagger function to derive data from our HTML Events.
This video will help you ensure good rendering performance in the parts of our application, which re-render too often and display a similar set of data.
Elm is one of the leading languages responsible for increasing the adoption of Functional programming in frontend web development. Thanks to Evan Czaplicki and the Elm Community, we have at our disposal an incredibly user-friendly and easily accessible programming language that compiles to JavaScript and runs in the browser. It is a game-changer for web developers who are keen on getting their hands dirty with functional programming.
As a strongly typed language with Type Inference, Elm guarantees error-free runtime and excellent performance. The thoughtfully designed pattern for state management called the Elm Architecture has served as an inspiration for numerous JavaScript libraries such as Redux and many others. Empower yourself with the ability to utilize all the essential aspects of Elm for developing real-world applications.
The course is a practical application of a functional programming language. We will be looking into persistent data types and data structures. You will get an introduction to the concept of side-effects and state management.
Together we will build a web application, exemplifying all the core principles of web application development with a purely functional language. Apart from Elm, you will be able to apply those principles in other programming languages for your practical needs.
Strongly typed language with Type inference guarantees error-free runtime and excellent performance. Elm Architecture is the key inspiration for numerous JavaScript frameworks and libraries. Empower yourself with the ability to utilize all the important aspects of Elm for developing real world applications.
We will be covering topics such as Functional programming, Persistent data structures, data modeling and performant HTML rendering. The course will introduce you to the concepts of Type inference, Side effects, and Lazy computations in practical examples. You will be able to build your interactive applications with the help of Type Inference and Time traveling debugger.
Together we will build a real world application, exemplifying all core principles of application development in a purely functional programming language. You will be able to apply those principles in any other functional programming language for your practical needs.
About the Author
Eduard Kyvenko is a Front-End developer with a focus on functional architectures. The primary maintainer of Create Elm App, open-source contributor and the author of one of the first production applications written in Elm.