Swiftpack.co - Swift Packages by DenTelezhkin

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.

Packages published by DenTelezhkin

DenTelezhkin/DTTableViewManager 11.0.0
Protocol-oriented UITableView management, powered by generics and associated types.
⭐️ 453
πŸ•“ 1 year ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
11.0.0
1 year ago
### Added * Support for `UITableViewDelegate.tableView(_:canPerformPrimaryActionForRowAt:)` and `UITableViewDelegate.tableView(_:performPrimaryActionForRowAt:)` delegate methods on iOS 16 and tvOS 16. * Support for `UIHostingConfiguration` on iOS 16 / tvOS 16 / macCatalyst 16: ```swift manager.registerHostingConfiguration(for: Post.self) { _, post, _ in UIHostingConfiguration { PostView(post: post) } } ``` It's also possible to incorporate UIKit cell states by simply adding additional parameter to registration: ```swift manager.registerHostingConfiguration(for: Post.self) { state, _, post, _ in UIHostingConfiguration { PostView(post: post, isSelected: state.isSelected) } } ``` * Support for events, wrapping `UITableViewDataSourcePrefetching` protocol. ```swift manager.register(PostCell.self) { mapping in mapping.prefetch { model, indexPath in } mapping.cancelPrefetch { model, indexPath in } } ``` > Please note, that while datasource methods are called once per array of indexPaths, events for models will be called individually, so single model (and indexPath) is passed to each event. Theoretically, this should make prefetching and cancellation easier, since you no longer need to walk through array and find all data models, you can operate on a single data model at a time. ### Deprecated * Cell / View events, registered with `DTTableViewManager` are soft-deprecated. Please use events in mapping instead: Deprecated: ```swift manager.register(PostCell.self) manager.didSelect(PostCell.self) { postCell, post, indexPath in } ``` Recommended: ```swift manager.register(PostCell.self) { mapping in mapping.didSelect { postCell, post, indexPath in } } ``` > While previously main benefits for second syntax were mostly syntactic, now with support for SwiftUI it will be hard to actually specialize hosting cells (and might be impossible when iOS 16 hosting configuration is supported), so only second syntax will work for all kinds of cells, and first syntax can only work for non-SwiftUI cells. > New delegate methods for UITableView (starting with iOS 16 / tvO 16 SDK) will be added only as extension to mapping protocols, not DTTableViewManager itself.
11.0.0-beta.1
1 year ago
### **Introducing support for SwiftUI!** Registering SwiftUI views as content for table view cells: ```swift manager.registerHostingCell(for: Post.self) { model, indexPath in PostSwiftUIView(model: model) } ``` This method is supported on iOS 13+ / tvOS 13+ / macCatalyst 13+. > Please note, that this integration is not supported by Apple, therefore it comes with several workarounds, read more about those in [SwiftUI support document](Documentation/SwiftUI.md) ### Added * `HostingCellViewModelMapping` - `CellViewModelMapping` subclass to register mappings fro SwiftUI views. * `HostingTableViewCell` - `UITableViewCell` subclass , implementing container for SwiftUI view embedded into it. * `HostingTableViewCellConfiguration` - configuration for SwiftUI views hosting inside `HostingTableViewCell`. ### Changed * Event reactions are now defined in protocol extension instead of extending former `ViewModelMapping` class, thus allowing to call those methods not only for UIKit mappings, but SwiftUI-hosted cells as well. ### Breaking * `ViewModelMapping` class and it's protocol have been split into multiple classes and protocols for better subclassability (for example `CellViewModelMapping` / `TableViewCellModelMapping`). Please note, that while technically this is breaking, it's very unlikely to break anything in code, since this type is only present in mapping closures, and public interfaces did not change at all.
10.0.0
2 years ago
### Added * Closure wrappers for iOS 15 `tableView:selectionFollowsFocusForRowAt` method. ### Changed * To align version numbers between `DTModelStorage`, `DTTableViewManager` and `DTCollectionViewManager`, `DTTableViewManager` will not have 9.x release, instead it's being released as 10.x. ### Removed * Wrappers for `tableView:willCommitMenuWithAnimator` delegate method, that was only briefly available in Xcode 12, and was removed by Apple in one of Xcode 12 releases.
9.0.0-beta.1
2 years ago
8.0.1
3 years ago
### Added * Support for DTModelStorage 9.1
8.0.0
3 years ago
8.0.0-beta.1
3 years ago
### Added * Cell and supplementary view events are now available inside mapping closure directly, for example: ```swift // Previous releases manager.register(PostCell.self) manager.didSelect(PostCell.self) { cell, model, indexPath in // React to selection } // New manager.register(PostCell.self) { mapping in mapping.didSelect { cell, model, indexPath in } } ``` Those events are now tied to `ViewModelMapping` instance, which means, that events, registered this way, will only trigger, if mapping condition of current mapping applies. For example: ```swift manager.register(PostCell.self) { mapping in mapping.condition = .section(0) mapping.didSelect { cell, model, indexPath in // This closure will only get called, when user selects cell in the first section } } manager.register(PostCell.self) { mapping in mapping.condition = .section(1) mapping.didSelect { cell, model, indexPath in // This closure will only get called, when user selects cell in the second section } } ``` Please note, that headers and footers only support mapping-style event registration, if they inherit from `UITableViewHeaderFooterView`. * `TableViewConfiguration` `semanticHeaderHeight` and `semanticFooterHeight`, that specify whether `DTTableViewManager` should deploy custom logic in `tableView(_ tableView: UITableView, heightForHeaderInSection section: Int)` and `tableView(_ tableView: UITableView, heightForFooterInSection section: Int)`. This logic includes checking whether header and footer models exist in storage, returning `UITableView.automaticDimension` for sections, whose header and footer models are Strings (for table section titles), as well as returning minimal height for cases where data model is not there(which happens to be different for `UITableView.Style.plain` and `UITableView.Style.grouped`). Those properties default to true, but if you want to use self-sizing table view sections headers or footers, which may improve perfomance, consider turning those off: ```swift manager.configuration.semanticHeaderHeight = false manager.configuration.semanticFooterHeight = false ``` Please note, that even when those properties are set to false, corresponding `UITableViewDelegate` methods will still be called in two cases: 1. Your `DTTableViewManageable` instance implements them 2. You register a `heightForHeader(withItem:_:)` or `heightForFooter(withItem:_:)` closures on `DTTableViewManager` instance. ### Breaking This release requires Swift 5.3. Minimum iOS / tvOS deployment targets are unchanged (iOS 11, tvOS 11). Some context: this release heavily relies on where clauses on contextually generic declarations, that are only available in Swift 5.3 - [SE-0267](https://github.com/apple/swift-evolution/blob/master/proposals/0267-where-on-contextually-generic.md). * `ViewModelMapping` is now a generic class, that captures view and model information(ViewModelMapping<T,U>). ### Fixed * `indentationLevelForCell` closure now correctly returns `Int` instead of `CGFloat`. * Several event API's have been improved to allow returning nil for methods, that accept nil as a valid value: `contextMenuConfiguration`, `previewForHighlightingContextMenu`, `previewForDismissingContextMenu`. ### Changed * Generic placeholders for cell/model/view methods have been improved for better readability. ### Deprecated * Several cell/header/footer/supplementary view registration methods have been deprecated to unify registration logic. Please use `register(_:mapping:handler:)`, `registerHeader(_:mapping:handler:)`, `registerFooter(_:mapping:handler:)` as a replacements for all of those methods. For more information on those changes, please read [migration guide](Documentation/Migration%20guides/8.0%20Migration%20Guide.md). * All non-deprecated registration methods now have an additional `handler` closure, that allows to configure cells/headers/footers that are dequeued from UITableView. This is a direct replacement for `configure(_:_:`, `configureHeader(_:_:)`, `configureFooter(_:_:)` , that are all now deprecated. Please note, that handler closure is called before `DTModelTransfer.update(with:)` method. * `DTTableViewManager.configureEvents(for:_:)`, it's functionality has become unnecessary since mapping closure of cell/header/footer registration now captures both cell and model type information for such events. * `DTTableViewManager.configureDiffableDataSource(modelProvider:)` for non-hashable data models. Please use configureDiffableDataSource method for models, that are Hashable. From Apple's documentation: `If you’re working in a Swift codebase, always use UITableViewDiffableDataSource instead`. * `TableViewUpdater.usesLegacyTableViewUpdateMethods` property.
7.2.0
3 years ago
7.1.0
3 years ago
### Changed * It's not longer necessary to import DTModelStorage framework to use it's API's. `import DTTableViewManager` now implicitly exports `DTModelStorage`.
7.0.0
4 years ago
* `willCommitMenuWithAnimator` method has been made unavailable for Xcode 11.2, because `UITableViewDelegate` method it used has been removed from UIKit on Xcode 11.2.
iOS tvOS
DenTelezhkin/DTCollectionViewManager 11.0.0
Protocol-oriented UICollectionView management, powered by generics and associated types.
⭐️ 314
πŸ•“ 1 year ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
11.0.0
1 year ago
### Added * Support for `UICollectionViewDelegate.collectionView(_:canPerformPrimaryActionForItemAt:)` and `UICollectionViewDelegate.collectionView(_:performPrimaryActionForItemAt:)` delegate methods on iOS 16 and tvOS 16. * Support for `UICollectionViewDelegate.collectionView(_:contextMenuConfigurationForItemsAt:point:)`, `UICollectionViewDelegate.collectionView(_:contextMenuConfiguration:highlightPreviewForItemAt:`) and `UICollectionViewDelegate.collectionView(_:contextMenuConfiguration:dismissalPreviewForItemAt:` methods on iOS 16. * Support for `UIHostingConfiguration` on iOS 16 / tvOS 16 / macCatalyst 16: ```swift manager.registerHostingConfiguration(for: Post.self) { _, post, _ in UIHostingConfiguration { PostView(post: post) } } ``` It's also possible to incorporate UIKit cell states by simply adding additional parameter to registration: ```swift manager.registerHostingConfiguration(for: Post.self) { state, _, post, _ in UIHostingConfiguration { PostView(post: post, isSelected: state.isSelected) } } ``` Additionally, it's possible to customize `UICollectionViewCell` being used to host SwiftUI view, for example for list cells: ```swift manager.registerHostingConfiguration(for: Post.self, cell: UICollectionViewListCell.self) { _, post, _ in UIHostingConfiguration { PostView(post: post) } } ``` * Support for events, wrapping `UICollectionViewDataSourcePrefetching` protocol. ```swift manager.register(PostCell.self) { mapping in mapping.prefetch { model, indexPath in } mapping.cancelPrefetch { model, indexPath in } } ``` > Please note, that while datasource methods are called once per array of indexPaths, events for models will be called individually, so single model (and indexPath) is passed to each event. Theoretically, this should make prefetching and cancellation easier, since you no longer need to walk through array and find all data models, you can operate on a single data model at a time. ### Deprecated * Cell / View events, registered with `DTCollectionViewManager` are soft-deprecated. Please use events in mapping instead: Deprecated: ```swift manager.register(PostCell.self) manager.didSelect(PostCell.self) { postCell, post, indexPath in } ``` Recommended: ```swift manager.register(PostCell.self) { mapping in mapping.didSelect { postCell, post, indexPath in } } ``` > While previously main benefits for second syntax were mostly syntactic, now with support for SwiftUI it will be hard to actually specialize hosting cells (and might be impossible when iOS 16 hosting configuration is supported), so only second syntax will work for all kinds of cells, and first syntax can only work for non-SwiftUI cells. > New delegate methods for UICollectionView (starting with iOS 16 / tvO 16 SDK) will be added only as extension to mapping protocols, not DTCollectionViewManager itself.
11.0.0-beta.1
1 year ago
### **Introducing support for SwiftUI!** Registering SwiftUI views as content for collection view cells: ```swift manager.registerHostingCell(for: Post.self) { model, indexPath in PostSwiftUIView(model: model) } ``` This method is supported on iOS 13+ / tvOS 13+ / macCatalyst 13+. > Please note, that this integration is not supported by Apple, therefore it comes with several workarounds, read more about those in [SwiftUI support document](Documentation/SwiftUI.md) ### Added * `HostingCellViewModelMapping` - `CellViewModelMapping` subclass to register mappings fro SwiftUI views. * `HostingCollectionViewCell` - `UICollectionViewCell` subclass , implementing container for SwiftUI view embedded into it. * `HostingCollectionViewCellConfiguration` - configuration for SwiftUI views hosting inside `HostingCollectionViewCell`. ### Changed * Event reactions are now defined in protocol extension instead of extending former `ViewModelMapping` protocol, thus allowing to call those methods not only for UIKit mappings, but SwiftUI-hosted cells as well. ### Breaking * `ViewModelMapping` class and it's protocol have been split into multiple classes and protocols for better subclassability (for example `CellViewModelMapping` / `CollectionViewCellModelMapping`). Please note, that while technically this is breaking, it's very unlikely to break anything in code, since this type is only present in mapping closures, and public interfaces did not change at all.
10.0.0
2 years ago
### Added * Wrappers for `collectionView:selectionFollowsFocusForItemAtIndexPath:` delegate method. * Wrappers for iOS 15 `UICollectionViewDelegate.collectionView(_:targetIndexPathForMoveOfItemFromOriginalIndexPath:atCurrentIndexPath:toProposedIndexPath:)` delegate method. ### Removed * Wrappers for `collectionView:willCommitMenuWithAnimator` delegate method, that was only briefly available in Xcode 12, and was removed by Apple in one of Xcode 12 releases. ### Changed * To align version numbers between `DTModelStorage`, `DTTableViewManager` and `DTCollectionViewManager`, `DTCollectionViewManager` will not have 9.x release, instead it's being released as 10.x. ### Deprecated * `targetIndexPathForMovingItem` deprecated on iOS / tvOS 15 and higher, because delegate method `collectionView:targetIndexPathForMoveFromItemAt:toProposedIndexPath:` was deprecated in favor of newer method.
9.0.0-beta.1
2 years ago
7.1.3
2 years ago
### Fixed * Build issues with Xcode 12.5 / Xcode 12.4 and lower.
7.1.2
2 years ago
### Fixed * Build issue for Xcode 12.4, now compatible with both Xcode 12.5 and 12.4 and lower
7.1.1
2 years ago
Note: This is backwards-compatibility release, it only fixes build issue with Xcode 12.5. For future development please consider migrating to DTCollectionViewManager 8. ### Fixed * Build issues with Xcode 12.5
8.2.0
2 years ago
### Changed * `UICollectionViewDatasource`.`indexTitles(for:)` and `UICollectionViewDatasource`.`collectionView(_: indexPathForIndexTitle:at:)` methods and events now require iOS 14 (and seem to be working only on iOS 14) as per SDK changes in Xcode 12.5. ### Fixed * Xcode 12.5 / Swift 5.4 warnings * Cell and supplementary view anomaly verification now correctly checks if corresponding subclasses respond to `init(frame:)` initializer.
8.1.0
3 years ago
This release fixes a critical issue with cell and supplementary reuse on iOS 14 / tvOS 14. If you are using 8.x release, it's highly recommended to upgrade to this release. ### Changed * `UICollectionView.CellRegistration` and `UICollectionView.SupplementaryRegistration` on iOS 14 / tvOS 14 are now created once per mapping, thus properly allowing cell and supplementary reuse. ### Deprecated * `DTCollectionViewManagerAnomaly.differentCellReuseIdentifier`. If you are using cells from code or from xib, please use empty reuseIdentifier, because on iOS 14 / tvOS 14 reuseIdentifiers are being set by `UICollectionView.CellRegistration` object. If you are using storyboards, set reuseIdentifier of the cell to cell subclass name.
8.0.1
3 years ago
### Fixed * Typo, that caused anomalies to trigger when using events for UICollectionViewLayout(thanks, @RenGate).
iOS tvOS
DenTelezhkin/DTModelStorage 11.0.2
Storage classes for datasource based controls
⭐️ 80
πŸ•“ 42 weeks ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
11.0.2
42 weeks ago
### Added * Support for Xcode 15 (beta 1) ### Removed * Previously deprecated and marked unavailable properties: `displaySectionNameForSupplementaryKinds`, `SectionModel.supplementaries`, `RealmSection.supplementaries`
11.0.1
50 weeks ago
### Fixed * Compilation issue with new Realm versions (@RenGate, https://github.com/DenTelezhkin/DTModelStorage/pull/36)
11.0.0
1 year ago
11.0.0-beta.1
1 year ago
### Added * `CellViewModelMapping`, `SupplementaryViewModelMapping` base classes and several protocols to cover existing implementation of `ViewModelMapping`. Concrete implementation for those base class is now a part of `DTTableViewManager` / `DTCollectionViewManager`. ### Removed * `ViewModelMapping` and `ViewModelMappingProtocol`. Their functionality has been moved into `CellViewModelMapping`, `SupplementaryViewModelMapping` and protocol extensions on those. Please note, that while technically those are breaking changes, usage of mappings in `DTTableViewManager` / `DTCollectionViewManager` is unchanged, and should not introduce breaking changes, unless those type names have been explicitly written in code. ### Breaking * Package now requires Xcode 13.
10.0.0
2 years ago
### Added * `Section.isEmpty` property indicating that section does not contain any elements. Accessing this property is faster than accessing `Section.numberOfItems` property.
10.0.0-beta.1
2 years ago
### Removed * `defersDatasourceUpdates` on `MemoryStorage`. This property was deprecated in previous release and is now removed. `MemoryStorage` now always defers updates as if this property was turned on (which was the default). * `ProxyDiffableDataSourceStorage`. Diffable datasource integration has been restructured in a way, that no longer requires this class.
9.1.2
2 years ago
### Added * Ability to create `SectionModel` with array of items.
9.1.1
2 years ago
### Fixed * Xcode 12.5 / Swift 5.4 warnings
9.1.0
3 years ago
### Changed * UICollectionView cell and supplementary registration from code and xib has been updated to only create `UICollectionView.CellRegistration` and `UICollectionView.SupplementaryRegistration` once per mapping. This is required for proper cell and supplementary reuse.
9.0.1
3 years ago
### Changed * Realm subspec has been reenabled.
iOS tvOS
DenTelezhkin/Ariadne 0.7.0
Elegant and extensible routing framework in Swift
⭐️ 23
πŸ•“ 2 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
0.7.0
3 years ago
### Added * Support for Xcode 12 and Swift 5.3
0.6.1
4 years ago
* Add support for Mac Catalyst.
0.6.0
4 years ago
### Added * `ReplaceNavigationTransition` to encapsulate `UINavigationController.setViewControllers(_:animated:)` method call. * `PopNavigationTransition` `popToFirstInstanceOf` and `popToLastInstanceOf` behaviors for calling `popToViewController(_:animated:)` method on found navigation controller. * `SplitViewCurrentlyVisibleViewFinder`, a subclass of `CurrentlyVisibleViewFinder`, that allows to prioritize either master or detail view controller when searching for currently visible view controller. ### Changed * `PopNavigationTransition` now supports both pop and pop to root transitions. ### Deprecated * `PopToRootNavigationTransition`, it's functionality is moved to `PopNavigationTransition` with .popToRoot kind.
0.5.1
4 years ago
* `NavigationViewBuilder` and `TabBarViewBuilder` now have publicly available initializers.
0.5.0
4 years ago
### Added * `AnyBuilder` struct, that can be used to erase any `ViewControllerBuilder` type to allow more convenient usage, as well as shorter notation. ### Deprecated * `ViewBuilder` protocol was deprecated to avoid clashes with SwiftUI `ViewBuilder`. Please use `ViewControllerBuilder` instead.
0.4.1
4 years ago
### Changed * `BaseTransition.animateAlongsideTransition(with:isAnimated:completion:` method is now open to allow calling and subclassing it in custom transitions.
0.4.0
4 years ago
* Support for Swift Package Manager in Xcode 11. * Added preliminary support for UIKit on Mac(Catalyst) * `View` renamed to `ViewController` to avoid ambiguity with `SwiftUI.View`
0.3.0
4 years ago
### Added * `NonTransition` struct, that represents a transition that should not be performed. This is useful for cases when transition cannot be clearly defined, for example for chainable routes. * `TransitionType.custom` for custom transitions * `prepareForCustomTransition` closure on `Route` class ### Changed * `Routable` protocol how has additional `Transition` associated type to define `ViewTransition` * `Routable` protocol now requires to have a `ViewBuilder` and `ViewTransition` getters. If your route does not need a builder or does not need a transition, you can return `NonBuilder` or `NonTransition` structs.
0.2.0
4 years ago
* Support for Xcode 10.2 and Swift 5.
0.1.0
5 years ago
Initial OSS release.
DenTelezhkin/Swarm 0.3.0
Simple, fast, modular Web-scrapping engine written in Swift
⭐️ 15
πŸ•“ 2 years ago
πŸ”– Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
0.3.0
2 years ago
0.2.0
3 years ago
### Breaking * `Spider` protocol no longer requires `init(url:)` initializer, `url` parameter is passed in `request(url:completion:)` method instead. * `URLSessionSpider` now has `init()` method without parameters. ### Added * Linux support * `ScrappableURL.userInfo` property for storing values or objects related to this scrappable URL * `Swarm.cooldown` property, that allows to customize how cooldown is executed. For example, when using Swarm from Vapor app, which itself uses SwiftNIO for scheduling tasks, cooldown property can be setup in following way: ```swift swarm.cooldown = { interval, closure in eventLoop.scheduleTask(in: TimeAmount.seconds(Int64(interval)), closure) } ``` ### Changed * Absence of response and data is now treated as failure for network request ( request timeout ), and request is retried `configuration.delayedRequestRetries` times after `configuration.delayedRetryDelay` ### Fixed * Action log for previous requests is now properly stored, thus allowing correct number of request retries.
0.1.0
3 years ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics