https://github.com/manuel-mauky/todomvcfx
TodoMVC for JavaFX. The same application with different frameworks and design patterns
https://github.com/manuel-mauky/todomvcfx
javafx javafx-frameworks
Last synced: 12 days ago
JSON representation
TodoMVC for JavaFX. The same application with different frameworks and design patterns
- Host: GitHub
- URL: https://github.com/manuel-mauky/todomvcfx
- Owner: manuel-mauky
- License: mit
- Created: 2016-09-20T02:05:47.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-11-06T22:31:07.000Z (over 8 years ago)
- Last Synced: 2025-04-12T07:52:10.053Z (12 days ago)
- Topics: javafx, javafx-frameworks
- Language: Java
- Size: 161 KB
- Stars: 30
- Watchers: 3
- Forks: 9
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# TodoMVC JavaFX
[](https://travis-ci.org/lestard/todomvcFX)
TodoMVC-JavaFX is a collection of different implementations of the same JavaFX application. It aims to provide examples with different design patterns, frameworks, programming languages and programming styles.
It's inspired by the famous [TodoMVC](http://todomvc.com/) project which is doing the same thing for JavaScript/Web frameworks.
By implementing the same use cases with different approaches we hope to provide several benefits:
- find out which different approaches and frameworks are out there
- compare different frameworks
- learn how to setup a small application with a specific framework and use it as basic project skeleton
- bring JavaFX community together and discuss the various approaches## Contribute
**Contributions are very welcome**.
There are several thinks to help out:- add a new example for another framework/language/pattern
- improve existing examples
- improve documentation of the examples
- ideas on how the build scripts can be improved
- fix spelling errors
- ...### How to add a new example?
1. Add a new issue with your idea. This way we can discuss about your idea and can make sure that multiple people aren't working on the same things without knowing from each other
2. Fork the repository
3. Add a new gradle module for your example
- Create a directory `examples/`
- Add the module in `settings.gradle`
- Add a `build.gradle` file in your directory for your submodule
4. Implement your example app.
5. Add an acceptance test for your app. See [Acceptance Tests](https://github.com/lestard/todomvcFX#acceptance-tests) for more infomations. If this approach doesn't work for your framework or language please comment in your issue and we will find a solution.
6. Create a pull requestThe module `reference_impl` contains a basic solution of how the app should work. You can use this as a starting point for your app. There are also FXML and CSS files that you can use.
### Acceptance Tests
The idea behind this project is to have multiple implementations of the same use cases. To make sure that each implementation has the same behaviour and acomplishes the same requirements there is a test suite of [TestFX](https://github.com/TestFX/TestFX) test cases for all requirements. You can find the tests in [/tests/src/main/java/todomvcfx/AbstractTest.java](https://github.com/lestard/todomvcFX/blob/master/tests/src/main/java/todomvcfx/AbstractTest.java).
To add the acceptance tests for your module:
1. Create a test class in your module with a name like `Test`
2. This test class has to extend from `todomvcfx.AbstractTest` (the dependency to the `tests` module is defined globally in the root `build.gradle` file)
3. Override the method `getAppClass()` in your test class. This method has to return a class reference to your application's starter class (the class that extends from `javafx.application.Application).