João Freitas

A desktop app to watch Simpsons shorts while your monolith app compiles. Made to learn Compose Multiplatform!


The app was developed and built with Compose Multiplatform, a framework to build applications for multiple platforms, without having to rewrite the same code multiple times. It’s very similar to Flutter in terms of architecture, declarative programming model and API.

Architecture

In terms of project structure, the application has been segregated in several different layers:

And the diagram below describes how these layers communicate with each other:

uml diagram describing how the app decomposes in several layers

UML diagram describing how the app decomposes in several layers

The shorts URLs are stored in a single JSON file that is hosted on GitHub, so they can be queried freely and in a fast manner.

To play the short, VLC media player is required to exist at runtime. I couldn’t find a better way to do this, and the compose block for the video player was adapted from Kotlin Multiplatform desktop example.

More technical information about the project can be found in the repository README.


Here’s a demo of the app:


#projects #kotlin #kmp #desktop #simpsons