Boot & Hoplon
Contact Me
- http://twitter.com/degree9io
- http://github.com/degree9
Leiningen
Single Page Apps
index.cljs.hl
Custom Elements
- Boot-Hoplon
- Page declaration generates HTML
app/core.cljs.hl
Boot vs. Lein
- Boot-Hoplon
- ns+ declarations work identically to ns in clojure
- Imperative vs. Declarative
- Build Tooling vs. Building Projects
- Returns element as function
presented by
- All Cells
- Contain a value
- Read with deref or @
- Input Cells
- Explicitly updated
- reset! or swap!
HLisp
- Formula Cells
- Reactively updated
Fileset
DOM as ClojureScript
index.cljs.hl
https://github.com/boot-clj/boot/wiki/Filesets
- Input Files
- Used by build pipeline
- Output Files
- Output to artifact
- Elements
- Abstraction over DOM Elements
do! multimethod
Boot Concepts
hoplon.jquery
- Attributes
- Abstraction over DOM Attributes
+ Event Handlers
Awesome Resources
Spreadsheet Data-flow
Input Cell with default
Formula Cell increment Input Cell
- https://soundcloud.com/defn-771544745/05-hoplon-special-with-micha-niskin
- Execution Environment for Clojure
(Classpath Isolation)
- http://blog.cognitect.com/cognicast/111
Explicitly mutate Input Cell
- Javelin Formula Cells
- Recalled when cell updates
- http://blog.cognitect.com/cognicast/112
Attribute Providers
hoplon.jquery & hoplon.goog
- Provides custom behaviour
Pods
- Extend on! and do! multimethods
- on! ==>> custom event handling
- do! ==>> custom element methods
https://github.com/boot-clj/boot/wiki/Pods
Boot-Hoplon
between Tasks and Project
on! multimethod
hoplon.jquery
Lenses
- Recalled on each subsequent event of the same type
Standard Build Pipeline
- Includes Namespaces
- hoplon.core
- javelin.core
Tasks
https://github.com/boot-clj/boot/wiki/Tasks
- Middleware Factories (Return Middleware)
- Middleware (Return Handler)
- Decide if/when to call next-handler
- Handlers Transform Fileset (Return Fileset)