Awesome
youi
Next generation user interface and application development in Scala and Scala.js for web, mobile, and desktop.
Status
There is heavy development going on toward 1.0, but YouI releases are stable and used in several production systems.
Modules
YouI is divided into modules of functionality to minimize the dependencies required for your specific usage:
- app - unification of client and server to write complete applications (Scala and Scala.js)
- canvas - User Interface implementation on HTML Canvas for greater power and flexibility than HTML provides
- client - HTTP client for asynchronous request/response and restful support (Scala)
- communication - communication framework to provide type-safe communication between a client / server (Scala and Scala.js)
- core - core features generally useful for web and HTTP (Scala and Scala.js)
- dom - features and functionality related to working with the browser's DOM (Scala.js)
- example - example and test functionality for applications using youi
- hypertext - extension functionality for working with HTML in a more powerful way
- macros - internal macros for various internal uses
- optimizer - HTML, JavaScript, and Image optimizations to reduce extra overhead from your application
- server - base functionality for a web server (Scala)
- server-undertow - implementation of server using Undertow (Scala)
- spatial - Spatial and math related functionality for Matrix and other operations
- stream - streaming functionality for on-the-fly processing and modification of any XML or HTML content (Scala)
- utilities - internal utilities to support the infrastructure of youi
External Projects
Though this project has several sub-modules, where possible, external projects exist to add optional functionality.
- youi-plugin - An SBT plugin to simplify setting up your youi project.
- youi-template - Stand-alone server instance to help designers work with HTML templates locally and support integration for developers.
- youi-designer - User interface designer tool to create, edit, import, export, and generate user interfaces for youi.
- youi-example - An example project showing the basic usage of youi.
Tutorials
Though YouI provides many modules to accomplish many things, the primary goal of YouI is application development for web, mobile, and desktop. Take a look at the app module for a great getting started tutorial.
Examples
More examples are located in the example
directory. Run them with sbt
exampleJS/fastOptJS
exampleJVM/reStart
then load http://localhost:8080/ui-examples.html or search with def path:
for URLs.