update documentation
This commit is contained in:
parent
8a99aebe5e
commit
93ca0be659
18
README.md
18
README.md
|
@ -7,9 +7,6 @@
|
|||
<a href="https://matrix.to/#/+jellyfin:matrix.org">
|
||||
<img src="https://img.shields.io/matrix/jellyfin:matrix.org">
|
||||
</a>
|
||||
<a href="https://sonarcloud.io/dashboard?id=jellyfin_SwiftFin">
|
||||
<img src="https://sonarcloud.io/api/project_badges/measure?project=jellyfin_SwiftFin&metric=alert_status">
|
||||
</a>
|
||||
<a href="https://discord.gg/zHBxVSXdBV">
|
||||
<img src="https://img.shields.io/badge/Talk%20on-Discord-brightgreen">
|
||||
</a>
|
||||
|
@ -18,7 +15,7 @@
|
|||
<b>Swiftfin</b> is a modern client for the <a href="https://github.com/jellyfin/jellyfin">Jellyfin</a> media server. Redesigned in Swift to maximize direct play with the power of <b>VLC</b> and look <b>native</b> on all classes of Apple devices.
|
||||
</p>
|
||||
|
||||
## ⚡️ Links!
|
||||
## ⚡️ TestFlight
|
||||
|
||||
**✨New! Updated TestFlight Link**
|
||||
|
||||
|
@ -28,6 +25,8 @@
|
|||
|
||||
If you have an Apple TV and do not own an iOS device, please use this [Google Form](https://forms.gle/U5CczbfQzm8MbpJX9) to get an invitation code.
|
||||
|
||||
## 📚 Translations
|
||||
|
||||
**Don't see SwiftFin in your language?**
|
||||
|
||||
Check out our [Weblate instance](https://translate.jellyfin.org/projects/swiftfin/) to help translate Swiftfin and other projects.
|
||||
|
@ -38,13 +37,4 @@ Check out our [Weblate instance](https://translate.jellyfin.org/projects/swiftfi
|
|||
|
||||
## ⚙️ Development
|
||||
|
||||
Thank you for your interest in Swiftfin, please check out the [Contribution Guidelines](https://github.com/jellyfin/Swiftfin/blob/main/contributing.md) to get started.
|
||||
|
||||
-----
|
||||
|
||||
### Intended Behaviors Due to Technical Limitations
|
||||
|
||||
The following behaviors are intended due to technical limitations with VLCKit:
|
||||
|
||||
- Pausing playback when app is backgrounded as VLCKit pauses video output at the same time
|
||||
- Audio delay when starting playback and un-pausing, may be fixed in VLCKit v4
|
||||
Thank you for your interest in Swiftfin! Please check out the [Contribution Guidelines](https://github.com/jellyfin/Swiftfin/blob/main/contributing.md) to get started.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
> Thank you for your interest in contributing to the Jellyfin (Swiftfin) project! This page and its children describe the ways you can contribute, as well as some of our policies. This should help guide you through your first Issue or PR.
|
||||
|
||||
> Even if you can't contribute code, you can still help Jellyfin (Swiftfin)! The two main things you can help with are testing and creating issues. Contributing to code, ..., and other non-code components are all outlined in the sections below.
|
||||
> Even if you can't contribute code, you can still help Jellyfin (Swiftfin)! The two main things you can help with are testing and creating issues. Contributing to code, documentation, ..., and other non-code components are all outlined in the sections below.
|
||||
|
||||
## Setup
|
||||
|
||||
|
@ -21,36 +21,51 @@ $ open Swiftfin.xcworkspace
|
|||
|
||||
## Git Flow
|
||||
|
||||
Pull Requests must be created from branch that is _**not**_ your fork's `main` branch. This is to prevent many potential problems that come from unnecessary or irrelevant commits and rebasing your fork.
|
||||
Swiftfin follows the same Pull Request Guidelines as outlined in the [Jellyfin Pull Request Guidelines](https://jellyfin.org/docs/general/contributing/development.html#pull-request-guidelines).
|
||||
|
||||
If your Pull Request relates to an Issue, link the issue or mention it in the Issue itself.
|
||||
If your Pull Request relates to an Issue, mention the issue correctly in your PR description.
|
||||
|
||||
[SwiftFormat](https://github.com/nicklockwood/SwiftFormat) is our linter. You can run `swiftformat .` in the project directory or install SwiftFormat's Xcode extension.
|
||||
|
||||
The following must pass in order for a PR to be merged:
|
||||
- automated `iOS` and `tvOS` builds must succeed
|
||||
- developer account cannot be attached
|
||||
- SwiftFormat linting check must pass
|
||||
- SwiftFormat linting check must pas
|
||||
- new strings that are not part of an experimental feature must be localized
|
||||
- correct label(s) are attached
|
||||
|
||||
Swiftfin follows the same Pull Request Guidelines as outlined in the [official Jellyfin contribution guidelines](https://jellyfin.org/docs/general/contributing/development.html#pull-request-guidelines).
|
||||
Labeling PRs with `enhancement`, `bug`, or `crash` will allow the PR to be tracked in GitHub's [automatically generated release notes](https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes). Small fixes (like minor UI adjustments) or non-user facing issues (like developer project clean up) should also have the `ignore-for-release` label since many PRs may be similar. If you think that no labels are required, that is acceptable.
|
||||
|
||||
### Documentation
|
||||
Documentation for advanced or complex features and other implementation reasoning is encouraged so that future developers may have insights and a better understand of the application. `// MARK:` comments are encouraged for organization, maintainability, and ease of navigation in Xcode's Minimap.
|
||||
|
||||
## Architecture
|
||||
|
||||
Swiftfin is developed using SwiftUI with some UIKit components where deemed necessary, as SwiftUI is still in relatively early development. Swiftfin consists of both the iOS and tvOS Jellyfin clients with a shared general underlying structure where each client has their own respective views. Because of this architecture, keep in mind while developing you may have to work for both clients.
|
||||
Swiftfin is developed using SwiftUI with some UIKit components where deemed necessary, as SwiftUI is still in relatively early development and limiting. Swiftfin consists of both the iOS and tvOS Jellyfin clients with a shared underlying structure where each client has their own respective views. Due to this architecture, working on both clients at once may be necessary.
|
||||
|
||||
Playback is done using [VLCKit](https://code.videolan.org/videolan/VLCKit) for its great codec support.
|
||||
Playback is done with [VLCKit](https://code.videolan.org/videolan/VLCKit) for its great codec support. Becoming familiar with VLCKit will be necessary for video playback development or relating features.
|
||||
|
||||
While there are no design guidelines for UI/UX features, Swiftfin has the goal to use native SwiftUI components with specific theming to Jellyfin. If your feature creates new UI/UX components, you are welcome to introduce a general design that may receive feedback during the PR process or may be re-designed later on. Some UI/UX features are intended to be user customizable but not every item should be to keep to some idea of Swiftfin's own design. Taking inspiration, but not always copying, from other applications is encouraged.
|
||||
## Design
|
||||
|
||||
While there are no design guidelines for UI/UX features, Swiftfin has the goal to use native SwiftUI/UIKit components while adhering to a Jellyfin theme. If your feature creates new UI/UX components, you are welcome to introduce a general design that may receive feedback during the PR process or may be re-designed later on.
|
||||
|
||||
User customizable UI/UX features are welcome and intended, however not all customization may be accepted for code maintainability and to also establish a specific Swiftfin design. Taking inspiration, but not always copying, from other applications is encouraged.
|
||||
|
||||
## New Features
|
||||
|
||||
If you would like to develop a new feature, create an issue with a description of the feature such that a discussion can be made for its possibility, whether it belongs in Swiftfin, and finally its general implementation. Leave a comment when you start work on an approved feature such that duplicate work among developers doesn't conflict.
|
||||
If you would like to develop a new feature or `Developer` issue, create an issue with a description of the feature so that a discussion can be made for its possibility, whether it belongs in Swiftfin, and finally its general implementation. Leave a comment when you start work on an approved feature so that duplicate work among developers doesn't conflict.
|
||||
|
||||
## Other Code Work
|
||||
|
||||
Other code work like bug fixes, issues with `Developer` tags, and localization efforts are welcome to be picked up anytime. Just leave a comment when you start work on a bug fix or `Developer` issue.
|
||||
Other code work like bug fixes, issues with `Developer` tags, and localization and accessibility efforts are welcome to be picked up at any time. Just leave a comment when you start work on a bug fix or `Developer` issue.
|
||||
|
||||
If you notice undesirable behavior or would like to make a UI/UX tweak, create an issue or ask in the iOS Matrix/Discord channel and a discussion will be made.
|
||||
|
||||
If you have a question about any existing implementations, ask the iOS Matrix/Discord channel for developer insights.
|
||||
|
||||
## Intended Behaviors Due to Technical Limitations
|
||||
|
||||
The following behaviors are intended due to current technical limitations with VLCKit:
|
||||
|
||||
- Pausing playback when app is backgrounded as VLCKit pauses video output at the same time
|
||||
- Audio delay when starting playback and un-pausing, may be fixed in VLCKit v4
|
||||
|
|
Loading…
Reference in New Issue