-
Notifications
You must be signed in to change notification settings - Fork 0
Home
In this tutorial we will build an interesting Pedestal application together. During this process you will be exposed to all of the major Pedestal concepts in the context of solving some (almost) real problems. This will help you to see not only how things work, but why they work the way they do.
By the end of Part 2 of this tutorial, you will have created a interactive game and learned how to wield Pedestal in your own projects. We also hope that you will know enough about how Pedestal works and what its goals are so that you can give useful feedback and contribute to the project.
Each section of the tutorial will describe a few key concepts of Pedestal while making a small improvement to the application. Part 1 will start very slow with small code changes and lots of explanation. Each section of Part 2 will contain more code and move a lot faster.
To get the most out of this tutorial, you must follow along. The finished code for each section is tagged, so if you don't want to go through the whole thing, checkout the tag for the previous section before starting work on a section.
Some sections of the tutorial are marked Designer and Back-end. If you are interested in all of Pedestal then go through each section. If you don't care about making templates, skip the Designer sections. If you don't care about back-end development then skip the Back-end section. Just remember, each section builds on code from the previous section, so if you skip one, make sure to checkout the tag for the last section you skipped before continuing.
Build a very simple application while learning the basics of Pedestal.
-
Getting Started v2.0.0
- Creating a new Pedestal application project
-
Making a Counter v2.0.1
- Messages
- Transform functions
- Dataflow definitions
- The input queue
- The Data UI
-
Testing v2.0.2
- Testing behavior code
- Sharing Clojure and ClojureScript code
-
Increment the Counter v2.0.3
- Emitters
- The default emitter
- Application model deltas
-
transform-enableandtransform-disable
-
Simulating Service Push v2.0.4
- How Pedestal applications communicate with the outside world
- Simulating services
-
Simulating Effects v2.0.5
- Effect functions
- Consuming effects from the effect queue
-
Derived Values v2.0.6
- Derive functions
- Dataflow
- Working with dataflow inputs
- Debug Messages v2.0.7
- Post Processing v2.0.8
- Making an HTML Template v2.0.9 (Designer)
-
Slicing Templates v2.0.10
- Static vs Dynamic Templates
- Template Slicing
-
Rendering v2.0.11
- Recording interactions
- Playing recordings
- Writing rendering code
- Aspects v2.0.12
-
Making the Service v2.0.13 (Back-end)
- Creating a Pedestal service
- Using Server Sent Events
- Testing a service with
curl
-
Connecting to the Service v2.0.14
- Communicating with a service
- Integrating application and service projects
- Development while running against the real service
Transform the application created in Part 1 into an interactive game while learning advanced Pedestal concepts.
- Changing Requirements
- Integrating the new Design v2.1.0 (Designer)
-
Rendering the Game v2.1.1
- External JavaScript and externs files
-
Game Improvements v2.1.2
- Messages with parameters
- Timed events
-
Multi-screen Applications v2.1.3
- Focus
- Login Template v2.1.4 (Designer)
-
Rendering the Login Screen v2.1.5
- Static templates
-
Start a Game v2.1.6
- Continue functions
- Changing focus based on state changes
- Generating new messages for the input queue
- Wait Template v2.1.7 (Designer)
- Rendering the Wait Screen v2.1.8
- End a Game v2.1.9
- Update the Wait Template v2.1.10 (Designer)
- Rendering End of Game v2.1.11
-
Parallel Processing v2.1.12
- Using Web Workers to run dataflow in parallel with rendering
-
Revisiting Testing
- Query the application model tree
- Describe what is included in the generated files
- Starting from scratch - show how to get started without using the generated files
- Using Pedestal with lein cljs-build