VLC for iOS and tvOS official mirror

Overview

VLC-iOS banner

This is the official mirror repository of VLC for iOS and tvOS application.

You can find the official repository here.

It's currently written in Objective-C / Swift and uses VLCKit, a libvlc wrapper.

Requirements

  • Xcode 11.0+
  • macOS 10.12+
  • Cocoapods 1.4+

Building

VLC-iOS

  1. Run [sudo] gem install cocoapods.
  2. Run pod install.
  3. Open VLC.xcworkspace.
  4. Hit "Build and Run".

Custom VLCKit

Mostly for debugging or advanced users, you might want to have a custom local VLCKit build.

  1. Clone VLCKit:

    git clone https://code.videolan.org/videolan/VLCKit.git

  2. Inside the VLCKit folder, run the following command:

    ./compileAndBuildVLCKit.sh -a ${MYARCH}

    MYARCH can be i386 x86_64 armv7 armv7s or aarch64.

    Add -d for a debug build (to have valid stack straces and asserts).

    Add -n if you want to use you own VLC repository for VLCKit (See VLCKit README.md).

  3. Replace the MobileVLCKit.framework with the one you just built.

    Inside your vlc-ios folder, after a pod update, do:

    cd Pods/MobileVLCKit

    rm -rf MobileVLCKit.framework

    ln -s ${VLCKit}/build/MobileVLCKit.framework

  4. Hit "Build and Run".

Beginner's Guide

Can't get your project to build or run? Head over to the beginner's guide for help on common issues beginners tend to run into.

If you can't find your problem on the guide, please feel free to submit an issue.

Contribute

Pull request

Pull request are more than welcome! If you do submit one, please make sure to use a descriptive title and description.

Commit

We try to follow a simple set of rules, outlined by this guide.

Additionally, commit messages should have all the information needed to understand the commit easily as the follwing:

    Subject: Brief description

    Description in detail if needed.

    (ticket related action)

For example:

    UPnP: Remove iOS 7 compatiblity code

    (closes #166)

Gitlab issues

You can look through issues we currently have on the VideoLAN GitLab.

A beginner friendly tag is available if you don't know where to start.

Communication

Forum

If you have any question or if you're not sure it's actually an issue, please visit our forum.

Issues

You have encountered an issue and wish to report it to the VLC dev team?

You can create one on our GitLab or on our bug tracker.

Before creating an issue or ticket, please double check for duplicates!

IRC

Want to quickly get in touch with us for a question, or even just to talk?

You will always find someone from the VLC team on IRC, #videolan channel on the freenode network.

For VLC-iOS specific questions, you can find us on #vlc-ios.

If you don't have an IRC client, you can always use the freenode webchat.

Code of Conduct

Please read and follow the VideoLAN CoC.

License

VLC-iOS is under the GPLv2 (or later) and the MPLv2 license.

See COPYING for more license info.

More

For everything else, check our wiki or our support page.

We're happy to help!

Comments
  • [Playback] iOS control center media controls

    [Playback] iOS control center media controls

    It seems like simply setting _mediaPlayer.position does not actually change the position of control center's scrubber; or am I missing something???

    My workaround was using the [VLCMediaPlayer jumpFoward:Int] function to take care of all the magic that happens behind the scenes for me.

    opened by mkchoi212 19
  • VLCMovieViewController: Added VideoOptionsControlBar to VLCMovieViewController

    VLCMovieViewController: Added VideoOptionsControlBar to VLCMovieViewController

    Checklist

    • [x] I've run bundle exec fastlane test from the root directory to see all new and existing tests pass
    • [x] I've followed the vlc-ios code style
    • [x] I've read the Contribution Guidelines
    • [x] I've updated the documentation if necessary.

    Description

    opened by robwayne 17
  • Fix empty view

    Fix empty view

    Checklist

    • [x] I've run bundle exec fastlane test from the root directory to see all new and existing tests pass
    • [x] I've followed the vlc-ios code style and run bundle exec fastlane lint to ensure the code style is valid
    • [x] I've read the Contribution Guidelines
    • [x] I've updated the documentation if necessary.

    Description

    simulator screen shot - iphone 6s - 2018-05-14 at 22 08 12

    simulator screen shot - iphone 6s - 2018-05-14 at 22 03 01

    • [x] Adapt empty view to theme
    • [x] Adaptive layout
    • [ ] Enable scrolling?
    opened by mkchoi212 16
  • 360videos with device motion

    360videos with device motion

    It's still work in progress but I wanted to share this. I'm still having the problem that when I hold the phone exactly opposite of the starting point I see the exact start frame upside down again and currently the gesturerecognizers are completely overwritten.

    360videos with devicemotion

    opened by carolanitz 16
  • SwiftFormat integration

    SwiftFormat integration

    Checklist

    • [x] I've run bundle exec fastlane test from the root directory to see all new and existing tests pass
    • [x] I've followed the vlc-ios code style and run bundle exec fastlane lint to ensure the code style is valid
    • [x] I've read the Contribution Guidelines
    • [x] I've updated the documentation if necessary.

    Description

    This is the VLC-iOS SwiftFormat integration (https://github.com/nicklockwood/SwiftFormat). I added SwiftFormat as a Xcode run script for VLC-iOS target. Due to my experience with SwiftFormat i disabled the following "magic" rules: blankLinesAtStartOfScope,hoistPatternLet,indent,redundantParens,redundantSelf,trailingCommas,unusedArguments,wrapArguments All SwiftFormat rules are described here: https://github.com/nicklockwood/SwiftFormat#rules

    Full list of code changes:

    • Fixed inconsistent code - newline at end of functions / structs / computed properties
    • Fixed inconsistent code - trailing colon for todos
    • Fixed inconsistent code - blank line around marks
    • Fixed inconsistent code - multiple spaces instead of one
    • Fixed inconsistent code - space inside / at start of comments
    • Fixed inconsistent code - trailing spaces for empty lines
    • Fixed inconsistent code - space inside brackets
    • Fixed inconsistent code - space inside parens
    • Fixed inconsistent code - space inside braces
    • Fixed inconsistent code - space around operators
    • Fixed inconsistent code - code indent
    • Fixed inconsistent code - order for access specifiers
    • Fixed inconsistent code - redundant self reference
    • Fixed inconsistent code - hex formatting
    • Fixed inconsistent code - unnecessary nil initialization
    • Fixed inconsistent code - no new trailing blank lines from inside braces, brackets, parens or chevrons
    • Fixed inconsistent code - sorted imports
    • Added SwiftFormat support for VLC-iOS debug schema
    • Added run script phase for swiftFormat to VLC-iOS project
    opened by Tinkeacc 13
  • Fix StatusBar update in dark mode

    Fix StatusBar update in dark mode

    Checklist

    • [x] I've run bundle exec fastlane test from the root directory to see all new and existing tests pass
    • [x] I've followed the vlc-ios code style
    • [x] I've read the Contribution Guidelines
    • [x] I've updated the documentation if necessary.

    Description

    This merge request updates the status bar in dark mode. fixes #403

    opened by robwayne 12
  • Automated framed screenshots

    Automated framed screenshots

    Major feat in this PR are

    • Support for fastlane screenshots with localization
    • New UI tests for the new shiny UI with localization

    I wasn't sure which screens to capture and what kind of text to put in the frames but here's what I came up with. Here's some demo screenshots in German; thanks to Google Translate 😃

    Please note that code for screenshooting is part of UI testing

    opened by mkchoi212 11
  • VLCGoogleDriveController: Implement files sorting

    VLCGoogleDriveController: Implement files sorting

    Checklist

    • [x] I've run bundle exec fastlane test from the root directory to see all new and existing tests pass
    • [x] I've followed the vlc-ios code style
    • [x] I've read the Contribution Guidelines
    • [x] I've updated the documentation if necessary.

    Description

    Implemented sorting feature inside Google Drive Controller. Sorting can be invoked by pressing the sort button right next to number of files button now, and sorting button will be hidden when using a non-Google-Drive controller.

    opened by dzz007 9
  • Add donation button

    Add donation button

    Checklist

    • [x] I've run bundle exec fastlane test from the root directory to see all new and existing tests pass
    • [x] I've followed the vlc-ios code style and run bundle exec fastlane lint to ensure the code style is valid
    • [x] I've read the Contribution Guidelines
    • [x] I've updated the documentation if necessary.

    Description

    Acceptance Critieria: please test on iOS 9 and iOS 10, 11 and 12 since different buttons and delegate methods are available depending on the OS. for the requirements: https://code.videolan.org/videolan/vlc-ios/issues?scope=all&utf8=%E2%9C%93&state=opened&search=Donation

    The following scenarios should be reviewed:

    • not an apple pay capabale device,
    • apple pay not setup
    • setup cards are not supported

    in order to test please create a sandbox test account as described here : https://developer.apple.com/apple-pay/sandbox-testing/

    known issues:

    • weird animation after a successful donation
    • when a card is not setup and the setup flow is finished the UI doesnt update and the user is prompted to still setup a card
    • constraints warnings when first showing the screen
    • show alternative payment option for those who don't have apple pay
    • backend communication with payment provider is still missing
    do not merge 
    opened by carolanitz 7
  • VLCMediaLibraryManager: Basic migration of MLLabels and MLFiles

    VLCMediaLibraryManager: Basic migration of MLLabels and MLFiles

    Checklist

    • [x] I've run bundle exec fastlane test from the root directory to see all new and existing tests pass
    • [x] I've followed the vlc-ios code style and run bundle exec fastlane lint to ensure the code style is valid
    • [x] I've read the Contribution Guidelines
    • [x] I've updated the documentation if necessary.

    Description

    Basic migration of MLLabels and MLFiles.

    Small note: This need a fresh build of VLCMediaLibraryKit to work since the changes haven't been released yet.

    opened by Mikanbu 7
  • Architecture refactoring

    Architecture refactoring

    Checklist

    • [x] I've run bundle exec fastlane test from the root directory to see all new and existing tests pass
    • [x] I've followed the vlc-ios code style and run bundle exec fastlane lint to ensure the code style is valid
    • [x] I've read the Contribution Guidelines
    • [x] I've updated the documentation if necessary.

    Description

    opened by Mikanbu 7
  • ios: fix: last selected subtitle not recovered

    ios: fix: last selected subtitle not recovered

    Add a small delay to recover the playback state.

    The bug reproduce steps(install VLC on iPhone):

    1. Play a video with two or more subtitles,
    2. Switch to a subtitle other than the first one
    3. close the video and back to the video list
    4. Open the same video again
    5. The selected subtitle was the first one.

    Expected behavior: At step 5, the selected subtitle should be the one last selected.

    opened by pangwa 0
  • tvOS: NetworkStream UI: Add sorting button new to old

    tvOS: NetworkStream UI: Add sorting button new to old

    Checklist

    • [ ] I've run bundle exec fastlane test from the fastlane directory to see all new and existing tests pass
    • [ ] I've followed the vlc-ios code style
    • [ ] I've read the Contribution Guidelines
    • [ ] I've updated the documentation if necessary.

    Description

    It is annoying that new stream URLs are added at the bottom to the list, so you have to scroll down to resume a recent stream.

    Can we add a setting to change this behavior? Alternatively I added a "reverse sorting" button with this PR.

    opened by embeddedc 3
Owner
VideoLAN
VideoLAN
📱The official Wikipedia iOS app.

Wikipedia iOS The official Wikipedia iOS app. License: MIT License Source repo: https://github.com/wikimedia/wikipedia-ios Planning (bugs & features):

Wikimedia 2.5k Dec 27, 2022
Swift audio synthesis, processing, & analysis platform for iOS, macOS and tvOS

AudioKit AudioKit is an audio synthesis, processing, and analysis platform for iOS, macOS (including Catalyst), and tvOS. Installation To add AudioKit

AudioKit 9.5k Jan 5, 2023
▶️ video player in Swift, simple way to play and stream media on iOS/tvOS

Player Player is a simple iOS video player library written in Swift. Looking for an obj-c video player? Check out PBJVideoPlayer (obj-c). Looking for

patrick piemonte 2k Dec 24, 2022
Firefox for iOS, branch works with Xcode 12.5.1, Swift 5.4.2 and supports iOS 11.4 and above.

Firefox for iOS Download on the App Store. This branch (main) This branch works with Xcode 12.5.1, Swift 5.4.2 and supports iOS 11.4 and above. Please

Mozilla Mobile 11.2k Jan 7, 2023
Development of the TUM Campus App for iOS devices - for and from students at Technical University of Munich.

Tum Campus App - An Unofficial Guide Through University Life The TUM Campus App (TCA) is an open source project, developed by volunteers and available

TUM Developers 93 Dec 16, 2022
Alfresco iOS App - Alfresco is the open platform for business-critical content management and collaboration.

Welcome to the Alfresco iOS App Alfresco is the open platform for business-critical content management and collaboration. Alfresco Mobile was designed

Alfresco Software 42 Sep 26, 2022
📱 Wire for iOS (iPhone and iPad)

Wire™ This repository is part of the source code of Wire. You can find more information at wire.com or by contacting [email protected]. You can find

Wire Swiss GmbH 3.2k Jan 8, 2023
PHPHub for iOS is the universal iPhone and iPad application for PHPHub

PHPHub is a Forum project written in Laravel 4.2, and it is also the project build up PHP & Laravel China community. PHPHub for iOS is the universal i

Aufree 1.2k Nov 18, 2022
This app shows the current percentage of the vaccination campaign in Brazil and its states

This app shows the current percentage of the vaccination campaign in Brazil and its states. The data is obtained thanks to covid19br.

Anderson Kloss Maia 8 Jul 22, 2022
Sample app to demonstrate data sharing between a WatchKit app and its main app using Realm

#Done! A sample app demonstrating how to share data between an app an its Watch extension using Realm. You can read more about it here. ##Screenshot #

Fancy Pixel 147 Dec 8, 2022
A simple and beautiful barcode scanner.

Description BarcodeScanner is a simple and beautiful wrapper around the camera with barcode capturing functionality and a great user experience. Barco

HyperRedink 1.6k Dec 28, 2022
Basic app to show how to login with Facebook, Google, Twitter. Created for learning purpose :) using Xcode 9 and Swift 4.0

Social Logins iOS Basic app to show how to login with Facebook, Google, Twitter. Created for learning purpose :) using Xcode 9 and Swift 4.0 Note: Bef

Jogendra 12 Nov 4, 2022
A Swift mailing list client for iPhone and iPad

Due to costs and lack of interest, I’ve had to take down the Charter service. If you’re interested in running your own copy, get in touch and I can se

Matthew Palmer 526 Dec 24, 2022
TriangleDraw is a pixel editor for iPad and iPhone.

TriangleDraw TriangleDraw is brilliant for sketching logos. You can quickly create designs that can be used for branding on letterheads or on your web

TriangleDraw 46 Sep 26, 2022
An iOS widget-based HN reader

Benuse, an iOS widget-based HN reader Why did you build this app? There already exist some great native Hacker News clients for iOS. I would recommend

Jordan Mann 8 Jul 21, 2022
iOS app to record how much things cost using various data persistence implementations.

how-much iOS app to record how much things cost using various data persistence implementations. The basic data unit is an item, a simple dictionary: {

null 22 Aug 15, 2022
The (second) best iOS app for GitHub.

GitHawk is the second-highest rated iOS app for GitHub. Features 0️⃣ Inbox Zero your notifications ?? Comment even faster than on GitHub desktop ?? Th

GitHawk 2.8k Dec 23, 2022
Fully open source text editor for iOS written in Swift.

Edhita Fully open source text editor for iOS written in Swift. http://edhita.bornneet.com/ What Edhita means? Edhita (Romaji) == エディタ (Katakana) == Ed

Tatsuya Tobioka 1.2k Jan 7, 2023
iOS app for 5calls.org

5Calls iOS App This is the repository for the iOS app for 5Calls.org. Requirements Xcode 10.2.1 iOS 10.2 Getting Started Install the dependencies: bun

5 Calls 129 Dec 25, 2022