blob: fba24f7810aa3be3de9e728491a95543fbf58dc6 (
plain) (
tree)
|
|
@sect("Hands-on Scala.js", "Writing client-side web applications in Scala")
@div(cls:="pure-g")
@div(cls:="pure-u-1 pure-u-md-13-24")
@hl.ref("examples/demos/src/main/scala/Splash.scala", "var x")
@div(cls:="pure-u-1 pure-u-md-11-24")
@canvas(id:="canvas1", display:="block")
@script("Splash().main(document.getElementById('canvas1'))")
@p
@a("Scala.js", href:="http://www.scala-js.org/") is a compiler that compiles Scala source code to equivalent Javascript code. That lets you write Scala code that you can run in a web browser, or other environments (Chrome plugins, Node.js, etc.) where Javascript is supported.
@p
This book contains something for all levels of experience with Scala.js: absolute beginners can get started with the Introduction and Hands-on tutorial, people who have used it before can skip ahead to the later parts of the tutorial, building a canvas app or dynamic HTML page. Intermediate users will find the chapters on cross-publishing a Scala.js library interesting, and even experienced users will find the In-depth Documention useful.
@sect("Intro to Scala.js")
@Intro.template
@sect("Getting Started")
@handson.GettingStarted.template
@sect("Making a Canvas App")
@handson.CanvasApp.template
@sect("Interactive Web Pages")
@handson.WebPage.template
@sect("The Command Line")
@handson.CommandLine.template
@sect("Publishing Modules")
@handson.PublishingModules.template
@sect("Integrating Client and Server")
@handson.ClientServer.template
@sect("Scala.js in Depth", "Exploring Scala.js")
@p
This half of the book dives into a few aspects of Scala.js much more deeply that the hands-on introduction does. It's aimed at someone who has already used Scala.js, and wants to explore the edge-cases or how things work under-the-cover. It's not a formal specification; rather, it's aim is to be a useful reference to read instead of (or in preparation for) digging into the implementation code.
@sect("Javascript Interoperability")
@indepth.JavascriptInterop.template
@sect("Deviations from Scala-JVM")
@indepth.SemanticDifferences.template
@sect("The Compilation Pipeline")
@indepth.CompilationPipeline.template
@sect("Scala.js' Design Space")
@indepth.DesignSpace.template
|