Giter Site home page Giter Site logo

elm-workshop's Introduction

This work is licensed under the Creative Commons Attribution 4.0 International License.

Portions of this repository have been adapted from Richard Feldman's Elm Workshop.

Also, some of the setup verfication ideas were adapted from this repository: Elm Curriculum

Introduction to Elm (Workshop)

Elm is a functional programming language for front-end web development. Elm has been gaining popularity as it aims to solve many of the main pain points of the modern JavaScript developer.

In this workshop, participants will be introduced to the Elm programming language and will build a small Elm app from the ground up. We assume prior knowledge only of JavaScript or another imperative or object-oriented language.

At the end of this course, you will be able to:

  • Build an working Elm web app

To achieve that goal, we will cover:

Syntax

Participants will learn about Elm's syntax and core data structures. We’ll also compare Elm’s syntax to JavaScript.

The Elm Architecture

We’ll learn about Elm’s built in architecture and how it eliminates the need for a separate framework.

Data Modelling

Participants will learn about (and implement) Elm data structures to model their application.

Working with back-end JSON APIs

Here participants will add connectivity to their app by sending a request to the app’s API and processing the response. We'll also learn about how JSON decoders and encoders are used to transform and process JSON data to and from concrete Elm data structures.

Displaying Data

In this section, participants will learn about how to create "View" code that displays their data on the screen.

Handling User Interaction with Messages

In this section, we'll finish creating our app by wiring up event handling for our app's user interaction.

Next Steps and Questions and Answers

In the final section, we'll briefly cover some things that are important but are out of the scope of the initial workshop such as:

  • Interop with JavaScript
  • Elm's Compiler
  • Adding visual feedback for "loading", "success", "error" states etc.
  • Using libraries like elm-bootstrap to simplify the development process
  • Embedding an Elm app into an existing page/app
  • Techniques for scaling
  • Passing in flags upon app start up
  • Testing in Elm

Requirements

For this class, you will need to bring and prepare:

  • A laptop with internet access (we'll have WiFi access at the events)

  • A GitHub account https://github.com

  • A way to quickly clone GitHub repos (command line, SourceTree, GitHub Desktop, etc.)

    git installers: https://git-scm.com/downloads

Setup

Before the workshop, you'll want to make sure that your environment and project are setup.

Follow the steps at the following link to accomplish this: Setup and Verification Page

elm-workshop's People

Contributors

mikeonslow avatar jpierson avatar

Watchers

James Cloos avatar Victor Manske avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.