Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Files 4.0 #87

Merged
merged 4 commits into from Sep 7, 2019
Merged

Files 4.0 #87

merged 4 commits into from Sep 7, 2019

Conversation

@JohnSundell
Copy link
Owner

@JohnSundell JohnSundell commented Sep 7, 2019

This change includes a brand new implementation for Files, that keeps most of the public API intact, while modernizing the underlying implementation.

Under the hood, Files now uses value types and protocols, rather than class inheritance - which improves the type safety of the API, and streamlines the underlying code. Error handling
is also improved to include more underlying info, and the docs have been reworked to be much more thorough.

The API has also been fine-tuned and modernized, dropping the FileSystem class in favor of more “Swifty” APIs on Folder, introducing more options for creating new files and folders, and making it possible to easily change properties on file system sequences.

A list of all changes will be posted as part of this version’s release notes.

JohnSundell added 4 commits Sep 7, 2019
Files 4.0
This change includes a brand new implementation for Files,
that keeps most of the public API intact, while modernizing
the underlying implementation.

Under the hood, Files now uses value types and protocols,
rather than class inheritance - which improves the type safety
of the API, and streamlines the underlying code. Error handling
is also improved to include more underlying info, and the docs
have been reworked to be much more thorough.

The API has also been fine-tuned and modernized, dropping the
`FileSystem` class in favor of more “Swifty” APIs on `Folder`,
introducing more options for creating new files and folders, and
making it possible to easily change properties on file system
sequences.

A list of all changes will be posted as part of this version’s
release notes.
@JohnSundell JohnSundell merged commit 8c956bc into master Sep 7, 2019
5 checks passed
5 checks passed
buddybuild: Files (iOS, Files-iOS) Build succeeded
Details
ci/bitrise/65f3ff29e754c8d8/pr Passed - Files
Details
ci/bitrise/65f3ff29e754c8d8/push Passed - Files
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
continuous-integration/travis-ci/push The Travis CI build passed
Details
@JohnSundell JohnSundell deleted the 4.0 branch Sep 7, 2019
@bernikovich
Copy link

@bernikovich bernikovich commented Sep 12, 2019

I don't really understand why names or count should be func. At the same time I'm pretty sure the most use cases need result after copy(to:) operations.

@clayellis
Copy link
Contributor

@clayellis clayellis commented Sep 12, 2019

@bernikovich from the release notes

Computed properties that don't have O(1) time complexity have now been changed into methods instead. That includes name(), count(), and last() on file/folder sequences, since computing those requires enumerating the sequence. The time complexity of each sequence operation is now also documented.

@seadiem
Copy link

@seadiem seadiem commented Sep 19, 2019

Hello. It is a nice framework. But where is new docs? How to create a Folder without FileSystem?

Copy link

@dyna-dot dyna-dot left a comment

Hope this’ll help

gwikiera added a commit to gwikiera/Files that referenced this pull request May 8, 2020
Files 4.0

This change includes a brand new implementation for Files,
that keeps most of the public API intact, while modernizing
the underlying implementation.

Under the hood, Files now uses value types and protocols,
rather than class inheritance - which improves the type safety
of the API, and streamlines the underlying code. Error handling
is also improved to include more underlying info, and the docs
have been reworked to be much more thorough.

The API has also been fine-tuned and modernized, dropping the
`FileSystem` class in favor of more “Swifty” APIs on `Folder`,
introducing more options for creating new files and folders, and
making it possible to easily change properties on file system
sequences.

A list of all changes will be posted as part of this version’s
release notes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

5 participants
You can’t perform that action at this time.