-
Notifications
You must be signed in to change notification settings - Fork 0
Home
In this tutorial we will build an interesting pedestal-app application together. During this process you will be exposed to all of the major pedestal-app 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 an interactive game and learned how to wield pedestal-app in your own projects. We also hope that you will know enough about how pedestal-app 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-app while making a small improvement to the application. Part 1 will start very slowly 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--if you're starting somewhere other than the first section, check out the tag for the previous section first.
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 check out the tag for the last section you skipped before continuing.
Build a very simple application while learning the basics of pedestal-app.
-
Getting Started
v2.0.0
- Creating a new pedestal-app 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-enable
andtransform-disable
-
Simulating Service Push
v2.0.4
- How pedestal-app 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
- Monitoring dataflow performance
-
Post Processing
v2.0.8
- Composing dataflow definitions
-
Making an HTML Template
v2.0.9
(Designer)- Compiling SCSS
-
Slicing Templates
v2.0.10
- Static vs Dynamic Templates
- Template Slicing
-
Rendering
v2.0.11
- Recording interactions
- Playing recordings
- Writing rendering code
- Avoiding "callback hell"
-
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-app 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
- Changing focus based on state changes
- Continue functions
- 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 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-app with lein cljs-build