File Provider app connecting the Files app to servers over various protocols. For iOS 11+.
Out of the box, Shares supports the following protocols:
- SFTP, using SFTPKit
If you would like to see another protocol added to the app, file an issue, or feel free to contribute.
Shares uses the ibuild build system to manage dependencies. Install it using homebrew:
brew install IMcD23/brew/ibuild
Dependencies are specified in build.plist.
There are a few submodules in the app as well, so run git submodule update --init --recursive
before building the first time.
Shares acts as a bridge between the Files app on iOS and connections to various servers. These connections are written using the ConnectionKit framework.
Shares knows nothing about specific implementations of protocols. At runtime, Shares loads frameworks with a principal class that is written for ConnectionKit and presents them as available protocols to the user.
The Shares app merely exists for settings and account management. All other logic runs in the File Provider
and File Provider UI
extensions, which are presented in the Files app.
Provides data to the Files app, and is the process where all listing, uploading, and downloading of files occurs.
Displays UI inside the files app, when there are errors, actions need to be performed, or authentication needs to occur.
Most core app logic is written in frameworks, and the app and extension targets contain only target-specific logic. There are two primary frameworks: SharesUI and SharesData.
User interface elements, used for authentication, settings, and more.
Models, utilities, and more, which make the app work.