Elm Beyond the Basics
Learn How to Build Web Apps With Elm. Elm is an amazing new functional programming language for building Front End Web Applications. Personally, I like Elm because it makes my life Simpler, it’s a Joy to use and I’m just more productive.
More
In this course, we'll go beyond the basics of Elmlang and learn how to use the more advanced concepts like:
- Structuring Your Apps using the Elm Architecture
- Talking to Servers / Effects (HTTP / Websocket)
- JSON Encoding and Decoding
- Single Page App Navigation (Routing)
- Talking to JavaScript using Ports
- and much more.....
Elm was designed as an answer to the following question:
"What would be a good language for building front end web apps?"
Elm has been thoughtfully crafted over the last several Years by it’s creator Evan Czaplicki, adding just enough features to make it powerful but still simple to use.
Elm, unlike most other functional programming languages, achieves a nice balance between Idealism and Pragmatism.
Why should you consider using Elm?
Elm offers many benefits over JavaScript, which you’ll see in this course.
Benefits such as:
- Zero Runtime Exceptions
- Simplified Debugging
- Easy Refactoring
- Helpful Type System & Compiler
- Improved Productivity
- Inherently testable code
- Enforced Semantic Versioning
- and more...
"I’ve tried to learn functional programming before, but ..."
If you’ve ever dabbled in a functional programming language, or tried to learn functional programming but became frustrated by the learning curve, let me tell you things are different with Elm.
You won’t see a bunch of scary academic terms in the Elm documentation or from hear it from the Elm community.
Elm is very approachable, and is the best language to learn functional programming.
"Should I learn elm if I can’t use it at work?"
Even if you never use Elm Professionally in your Job, it’s still totally worth learning.
You’ll gain functional programming skills that you can take back to your imperative languages... However you may find that Elm is so nice, you may just become the advocate that persuades your employer to start using it at work ;)
What we’ll build
After you learn the major concepts, we'll put them into practice and build a cool realtime Race Leaderboard app to keep track of runners in racing events like Marathons and 10K's. The app will use all the concepts we'll be covering in this course. Watch the Introduction video for more information.
Requirements
You should have a basic understanding of Elmlang. Ideally you will have taken the free course "Elm For Beginners"
Target Audience
Web developers that are curious about the benefits of Functional Programming and Elm.
Web developers that are interested in expanding their horizons.
Git Repo
The companion git repo for this course can be found at:
https://github.com/knowthen/elm-beyond-basics
Watch Online Elm Beyond the Basics
# | Title | Duration |
---|---|---|
1 | Introduction | 06:05 |
2 | Review | 07:23 |
3 | The Elm Architecture - Overview | 05:02 |
4 | The Elm Architecture - Example | 16:56 |
5 | Effects - Overview | 03:49 |
6 | Effects - Example (Chuck Norris Joke App) | 10:52 |
7 | JSON (Decoding JSON -> Elm) | 13:09 |
8 | Websockets (Time Streaming Example App) | 08:42 |
9 | Navigation (Single Page App Routing) | 10:16 |
10 | Ports (Firebase Waitlist App) | 16:05 |
11 | Planning The App | 04:22 |
12 | Review Starter / Boilerplate | 06:55 |
13 | Setting Up Navigation / Single Page App (SPA) | 09:08 |
14 | Setting Up Login/Authentication | 11:01 |
15 | Saving / Retrieving Login Token / JWT | 05:29 |
16 | Logging Out | 02:41 |
17 | Access Control / Locking Pages | 07:21 |
18 | Adding Runners | Http Post | 11:33 |
19 | Setting Up The Leaderboard Page | Realtime Updates With Websockets | 10:37 |
20 | Estimating Runners Location | 09:48 |
21 | Querying & Sorting Runners | 03:58 |
22 | Final Thoughts | 02:00 |
23 | Introduction | 06:05 |
24 | Review | 07:47 |
25 | The Elm Architecture - Overview | 05:02 |
26 | The Elm Architecture - Example | 17:35 |
27 | Effects - Overview | 03:49 |
28 | Effects - Example (Chuck Norris Joke App) | 12:58 |
29 | JSON (Decoding JSON -> Elm) | 13:09 |
30 | Websockets (Time Streaming Example App) | 08:42 |
31 | Navigation (Single Page App Routing) | 12:54 |
32 | Ports (Firebase Waitlist App) | 16:05 |