* Good start but some missing items: - Upload image isn't working - Only a single image is shown per section. Need to make this the HCollection of all images for the group * Upload still failing but now update and set are 2 different processes because I think that's better. Spacing on the add screen is still all wrong but we're getting closer * ~70% Complete TODO: - Spacing for remote portrait images is wrong & cramped - Upload image from file browser never works & produces 400 error - Show all images for an item.imageType opposed to just the first - Setting image works but produces a 400 error - Error alert looks bad * Merge with Main * URL Changes * Updating logic and confirmation screen * Lots of changes: Selecting a Remote image is now working without error and works consistently! Upload a local file is still broken Item types with multiple images is working as intended now! Overriding an image on index doesn't seem to work but it doesn't work for Web either so........ UI is way more jank but the hard parts are getting solved! * Breaking this even more with the hopes of a better tomorrow. * Getting better? * Refreshing is working but I might need to make this work mroe effiently... * 90% There! * Ability to cancel the update * Still no luck uploading images? * Stop reordering on deletion/addition * 2025 disclaimers * Uploading finally works! * Functional but messy. TODO: - Figure out better resizing if too big? - Upload from Photos - Move upload logic to imageViewModel and make RemtoeImageViewModel PagingLibraryViewModel conformant - Create a ImageInfoView for Selection & Deletion. * Now conforms to PagingLIbraryViewModel but everything else is a mess * Close! * First no all appears * Fix double pop/routerdismiss * Uploading from Photos is (Finally) Ready! * wip * Reuse PhotoPicker and Crop code. * 4/6 of the codefactor changes * Pass around the URL NOT the UIImage * Clean up ItemImageDetails types. * Make sure the ImageView mirrors the real shape of the image. Posters should be uniform but this is the selection for the image so the dimensions are important to demonstrate. * Rating Type label. * Delete confirmation dialog. * Remove double sizing. Remove Unused ViewModel. Change PhotoPicker to a checkmark instead a 1. Since there is only ever one picture selected, no need to count the images. * Get the image URL as needed. No more Truples. Localize ImageTypes. * Remove attempt at ImageInfo Poster Comformance. * Even more cleanup * Delete vs Save flip * Hide delete button * Even more cleanup * Fix tvOS build issues. * Reduce delay & remove unused comment. Should finally be ready again. * wip * Update ItemImagesView.swift * Event Only on upload failures. * Remove unnecessary ViewModel's from tvOS. * Add dismiss action to RemoteSearchResultView. While I am doing this here, fix it there. * Move From Coordinator -> .Sheet. This fixes the popping issue / delay requirement! * wip * wip * wip * wip --------- Co-authored-by: Ethan Pippin <ethanpippin2343@gmail.com> |
||
---|---|---|
.github | ||
Documentation | ||
PreferencesView | ||
Resources | ||
Scripts/Translations | ||
Shared | ||
Swiftfin | ||
Swiftfin tvOS | ||
Swiftfin.xcodeproj | ||
Translations | ||
fastlane | ||
.gitignore | ||
.swiftformat | ||
Cartfile | ||
ChromeCastFramework.json | ||
Gemfile | ||
LICENSE.md | ||
README.md | ||
RedrawOnNotificationView.swift | ||
swiftgen.yml |
README.md
Swiftfin is a modern video client for the Jellyfin media server. Made using Swift to maximize direct play with the power of VLC and look native on all classes of Apple devices.
⚡️ Download
🛠️ TestFlight
Use the TestFlight version to test new features and bug fixes before being published to the App Store. We are grateful for your time and resources for reporting new bugs.
[!NOTE] Only iOS has a TestFlight version. See this discussion for tvOS updates.
⚙️ Development
Thank you for your interest in Swiftfin! Please check out the Contribution Guidelines to get started.
🎬 Player Differences
Swiftfin offers both Native (AVKit) and Swiftfin (VLCKit) players to provide the best compatibility across Apple devices. To learn more about the capabilities and differences between these players, visit our Player Differences documentation.
📚 Translations
Don't see Swiftfin in your language?
Check out our Weblate instance to help translate Swiftfin and other Jellyfin projects.