Case Studies

Shapes

ReactShapes

ReactShapes is a small drawing program. The user can drag and drop different shapes on a canvas, connect them with lines and change the stroke width and the color of each shape. The application supports a history with undo. Finally, the drawing canvas can be shared with other clients that participate in the same task from remote.

ReactEdit on GitHub: https://github.com/guidosalva/shapes


RSS Reader

ReactRSS

ReactRSS is a RSS feed reader displaying a list of channels, which are periodically checked for updates.

Fetched items are immediately displayed to the user in a side bar. When the user selects one of them, the HTML content is rendered in the main view.

ReactEdit on GitHub: https://github.com/guidosalva/rssreader


Editor

ReactEdit

ReactEdit is a minimal text editor implementing functionalities like text selection, line counting, and cutting-and-pasting of text.

ReactEdit is a minimal version of the Editor widget in the SWT library, which is malleable to investigating various design alternatives based on reactive abstractions.

ReactEdit on GitHub: https://github.com/guidosalva/editor


Universe

Universe

Universe is a program that simulates a 2D environment. The environment is populated by animals and plants; the simulation involves growing of animals and plants, movements of animals, and planning for food search.

The simulation evolves in rounds and the state of each element at a given step is a function of the other elements and of the state of the simulation in the previous step. This structure allows one to express several aspects of the computation functionally. However, the elements of the simulation are mutable objects that encapsulate state, so the OO and the functional style must be properly combined.

Universe on GitHub: https://github.com/guidosalva/universe