Next generation user interface and application development in Scala and Scala.js for web, mobile, and desktop.
Latest commit e6c240f Nov 10, 2018
Permalink
Failed to load latest commit information.
app Updated PathActivation to use a Path instead of String Nov 5, 2018
client Added support for DNS overrides in HttpClient Oct 29, 2018
communication/shared/src/main/scala/io/youi/communication Fixed minor macro bug Nov 10, 2018
core Updated Path support to utilize PathParts to make up a path along wit… Nov 5, 2018
dom Moved ExtendedElement out of dom Nov 1, 2018
example Updated PathActivation to use a Path instead of String Nov 5, 2018
macros/shared/src/main/scala/io/youi Created `macros` module for internal Macro functionality. Aug 23, 2017
optimizer/src/main/scala/io/youi/optimizer Much better integration of HTMLOptimizer and added support to Templat… Mar 29, 2017
project Updated dependencies Nov 4, 2018
server/src Added additional Restful test Nov 7, 2018
serverUndertow/src/main Updated dependencies Nov 4, 2018
spatial/shared/src Added math operators to Size Jul 22, 2018
stream/src/main/scala/io/youi/stream Created ProxyCache to support locally caching remote URLs Jun 11, 2018
ui Removed automatic settings of overflow = hidden on body during initia… Oct 25, 2018
utilities/src/main/scala/io/youi/util Re-write of GoogleFont to properly support Canvas and HTML loading wi… Apr 4, 2018
work/logo Better size measuring support and fixes to container Apr 26, 2018
.gitignore Better Delta support to automatically handle HTML in applications whe… Jun 14, 2018
.jvmopts Added jvmopts to fix memory issues when compiling and testing. Mar 30, 2018
.travis.yml Continued work on DSL for server Mar 30, 2018
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Sep 7, 2017
CONTRIBUTING.md Create CONTRIBUTING.md Sep 7, 2017
LICENSE Badges, License, and SBT build setup. Oct 15, 2016
README.md Updated error support in Scala.js Jul 17, 2018
build.sbt Release 0.9.4 Nov 10, 2018
config.json Added simple Bootstrap template. Mar 8, 2018
login-example.html Added support for easily adding ad-hoc CSS May 13, 2018

README.md

youi

Build Status Codacy Badge Codacy Badge Stories in Ready Gitter Maven Central Latest version Javadocs

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.

Roadmap

https://github.com/outr/youi/wiki/Roadmap