diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..7dd39496 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,24 @@ +# Contributing to Dolphin + +We appreciate your interest in contributing to Dolphin! + +## Code of Conduct + +We follow Jellyfin's example by adhering to their [Code of Conduct](https://jellyfin.org/docs/general/community-standards/#code-of-conduct). + +## How to contribute + +You can contribute in several ways: +* File bug reports +* Request new features +* Propose code changes via pull request + +In all cases, be sure to fully explain the issue. + +### Code change proposals + +You acknowledge that, if applicable, submitting and subsequent acceptance of any pull request you, the code contributor of the pull request, agree and acknowledge that the code will be licensed under [GPLv2](LICENSE). + +Please be thoughtful when contributing code and consider the long term maintenance/support aspect for any new features. + +See the [developer's guide](./DEVELOPMENT.md) for more information. diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md new file mode 100644 index 00000000..55e82bbc --- /dev/null +++ b/DEVELOPMENT.md @@ -0,0 +1,26 @@ +# Dolphin developer's guide + +See also the [Contributing](CONTRIBUTING.md) guide for general information on contributing to the project. + +## Overview + +This project is an Android TV client for Jellyfin. It is written in Kotlin and uses the official [Jellyfin Kotlin SDK](https://github.com/jellyfin/jellyfin-sdk-kotlin) to interact with the server. + +The app is a single Activity (`MainActivity`) with MVVM architecture. + +The app uses: +* [Compose](https://developer.android.com/jetpack/compose) for the UI +* [Navigation 3](https://developer.android.com/guide/navigation/navigation-3) for navigating app screen +* [Room](https://developer.android.com/training/data-storage/room) & [DataStore](https://developer.android.com/topic/libraries/architecture/datastore) for local data storage +* [Hilt](https://developer.android.com/training/dependency-injection/hilt-android) for dependency injection +* [Media3/ExoPlayer](https://developer.android.com/media/media3/exoplayer) for media playback +* [Coil](https://coil-kt.github.io/coil/) for image loading +* [OkHttp](https://square.github.io/okhttp/) for HTTP requests + +## Getting started + +We follow GitHub's fork & pull request model for contributions. + +After forking and cloning your fork, you can import the project into Android Studio. + +You need a compatible Android Studio version for the configured AGP. This is generally `Narwhal 3 Feature Drop | 2025.1.3` or newer. See https://developer.android.com/build/releases/gradle-plugin and [`libs.versions.toml](./gradle/libs.versions.toml).