Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
# Conflicts:
#	README.md
  • Loading branch information
jwstegemann committed Apr 22, 2020
2 parents 8bd77fb + f99d7a3 commit e753cc3
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# ![fritz2 - the potato among the ui-libs](https://jwstegemann.github.io/fritz2/static/fritz2-logo-small.png)
# fritz2 - the potato among the ui-libs

[![Actions Status](https://github.com/jwstegemann/fritz2/workflows/build/badge.svg)](https://github.com/jwstegemann/fritz2/actions)
[![LOC](https://img.shields.io/badge/lines%20of%20code-1%2C5k-green)](https://clean-code-developer.com/grades/grade-1-red/#Keep_it_simple_stupid_KISS)
[![100% Kotlin](https://img.shields.io/badge/kotlin-100%25-blue)](https://play.kotlinlang.org/)
[![Examples](https://img.shields.io/badge/examples-showcase-yellow)](https://jamowei.github.io/fritz2-examples/)
[![Dokka](https://img.shields.io/badge/API-dokka-green)](https://jwstegemann.github.io/fritz2/dokka/fritz2/)
[![Wiki](https://img.shields.io/badge/docs-wiki-blue)](https://github.com/jwstegemann/fritz2/wiki)
[![Download](https://api.bintray.com/packages/jwstegemann/fritz2/fritz2-core/images/download.svg?version=0.3)](https://bintray.com/jwstegemann/fritz2/fritz2-core/0.3/link)
[![Examples](https://img.shields.io/badge/examples-showcase-yellow)](https://www.fritz2.dev/examples.html)
[![API](https://img.shields.io/badge/API-dokka-green)](https://api.fritz2.dev/fritz2/)
[![Docs](https://img.shields.io/badge/docs-wiki-blue)](https://docs.fritz2.dev)
[![Download](https://api.bintray.com/packages/jwstegemann/fritz2/fritz2-core/images/download.svg?version=0.2)](https://bintray.com/jwstegemann/fritz2/fritz2-core/0.2/link)

fritz2 is a proof of concept for an ***extremely lightweight*** well-performing independent library for client-side ui in ***Kotlin*** heavily depending on coroutines and flows.

Expand All @@ -21,7 +21,7 @@ html {
value = model.data
model.update <= changes.values()
}
p() {
p {
text("model value = ")
store.data.bind()
}
Expand All @@ -32,18 +32,18 @@ html {
fritz2 implements **precise data binding**. That means that exactly those (and **only** those) dom-nodes (elements, attributes, etc.) change, that depend on the parts of your data-model, that have changed.
There is no intermediate layer needed like a virtual DOM and you do not have to implement any additional methods to decide, which parts of your component have to be rerendered, when your data changes:

![State management in fritz2](https://jwstegemann.github.io/fritz2/static/fritz2_state.001.png)
![State management in fritz2](https://www.fritz2.dev/static/fritz2_state.001.png)

Utilizing Koltin's multiplatform-abilities, you have to write the code of your data classes just once and use it on your client and server (i.e. in a [SpringBoot](https://spring.io/guides/gs/rest-service/)-Backend). This of course also true for your model-validation-code, that can become far more complex than your data model really fast.

The learning curve should be quite flat. We chose Kotlin as a language, that is easy to learn and has a focus on writing clean and intuitive code.
fritz2 itself depends on only a handful of [concepts](https://github.com/jwstegemann/fritz2/wiki)) you have to master. The [core API](https://jwstegemann.github.io/fritz2/dokka/fritz2/) consists of just about a dozen key objects and types offering only the methods und functions, that are really needed.
fritz2 itself depends on only a handful of [concepts](https://docs.fritz2.dev)) you have to master. The [core API](https://api.fritz2.dev/fritz2/) consists of just about a dozen key objects and types offering only the methods und functions, that are really needed.

## How to try it that early?
## How to try it?
You can either
* checkout the project, import it in your favourite IDE (or whatever you like) and run `./gradlew :examples:todomvc:run` (or another example)
* take a look at our [examples repo](https://jamowei.github.io/fritz2-examples/)
* set up a new project on your own following our [documentation](https://github.com/jwstegemann/fritz2/wiki/Project-Setup)
* take a look at our hosted [examples](https://www.fritz2.dev/examples.html)
* set up a new project on your own following our [documentation](https://docs.fritz2.dev/Project.html)


## What is there already?
Expand All @@ -54,9 +54,9 @@ You can either
- hassle-free redux-like state-handling
- model-validation and message handling
- routing (for SPAs, hash-based)
- [example-app](https://github.com/jwstegemann/fritz2/tree/master/examples/todomvc) implementing the specification of [TodoMVC](http://todomvc.com/)
- [examples](https://www.fritz2.dev/examples.html) i.e. implementing the specification of [TodoMVC](http://todomvc.com/)
- server-communication (Rest APIs, etc.) (work in progress)
- [documentation](https://github.com/jwstegemann/fritz2/wiki) (work in progress)
- [documentation](https://docs.fritz2.dev) (work in progress)

## What will come next?

Expand Down

0 comments on commit e753cc3

Please sign in to comment.