Releases: kean/DFImageManager
DFImageManager 0.5.0
Overview
DFImageManager 0.5.0
is a major release that brings WebP support, introduces some great new APIs, and features redesigned DFCompositeImageTask
.
Changes
- #14 WebP support
- #22 Rename
DFImageRequestID
toDFImageTask
, add new public interfaces (state
,request
,error
and more) - #24
DFImageManager
guarantees that the error is always created when the task fails - #25 Add
-resume
method toDFImageTask
, tasks should not start running automatically - #26 Completely redesigned
DFCompositeImageTask
, simple interface, fully covered by unit tests - #27 Add
- (void)getImageTasksWithCompletion:(void (^)(NSArray *tasks, NSArray *preheatingTasks))completion;
method toDFImageManaging
protocol - Minor performance improvements
DFImageManager 0.4.1
- #21 Add documented way to determine whether the response came from memory cache. Remove undocumented way to do that from previous versions.
DFImageManager 0.4.0
Overview
DFImageManager
now works great with Swift thanks to new nullability annotations. Some internals has also changed accordingly. Make sure that the way you use DFImageManager
API complies with the new requirements.
Changes
Major
- #11 Add nullability annotations
- #13
DFImageManager
's memory cache fast path is now completely transparent to the client - #17 Add
invalidateAndCancel
method toDFImageManaging
protocol that cancel all outstanding requests and invalidate the image manager (new requests may not be started).DFImageManager
internal tasks now hold strong references to the image manager DFCompositeImageManager
now raisesNSInvalidArgumentException
when there are no registered managers that can handle the request
Minor
- #9
DFImageView
no longer overridescontentMode
set in Interface Builder - #18
DFImageView
no longer implementsDFImageViewDelegate
protocol which makes this protocol available for the clients DFImageContainerView
is not longer part of the framework- Remove
ALAssetsLibrary+DFImageManager
category, shared assets library is now exposed byDFAssetsLibraryImageFetcher
class method DFAssetsLibraryImageFetchOperation
is now a private classDFPhotosKitImageFetchOperation
is now a private classDFImageManagerConfiguration
fetcher property is now readwrite, not readonly (simplifies configuration)- Upgrade playground
DFImageManager 0.3.2
- Fix synchronization issue in
[DFImageManager startPreheatingImagesForRequests:]
method - Fix "multiple definition types for selector warning"
DFImageManager 0.3.1
- Fix deadlock in DFImageManager
- Fix DFImageMaximumSize option for Photos Framework
DFImageManager 0.3.0
- New, rock solid
DFImageManager
implementation based on finite state machines, 25% smaller. The FSM code is based onImageManager
implementation from Nuke (experimental DFImageManager analog written in Swift). - Add
DFImageManagerErrorDomain
andDFImageManagerErrorCancelled
. TheDFImageManager
now guarantees that completion block for the request is called when the request is cancelled. DFImageRequestID
implementsNSCopying
protocol and can be used in dictionaries, sets, etcDFAFURLImageFetcher
now tracks progress of data tasks- Fix
DFImageRequestOptions priority
that can now be used on iOS 7 (@andrebraga) - Fix crash when using
DFImageProcessingCornerRadiusKey
(@andrebraga) - Fix an issue when
UIImageView (DFImageManager)
wasn't canceling requests. - Remove
-cancelRequestWithID
and-setPriority:forRequestWithID:
methods fromDFImageManagingCore
protocol. There is a single way to cancel request or change its priority (usingDFImageRequestID
) - Remove
-startPreheatingImageForResources:targetSize:contentMode:options:
and-stopPreheatingImageForResources:targetSize:contentMode:options:
methods fromDFImageManaging
protocol. There is now a single way to start/stop preheating using-start(stop)PreheatingImagesForRequests:
methods. - Streamlined
DFImageManaging
protocol. RemoveDFImageManagingCore
protocol. - Remove
allowsSynchronousMemoryCacheLookup
option, this option is always on.
DFImageManager 0.2.1
- Fix GIF demo
- Fix cross-dissolve issue in
DFImageContainerView
- Improve performance
- Remove
DFProcessingImageFetcher
andDFProcessingInput
, rely on memory cache instead of reusing processing operations (which is much easier to implement) - Processing operations for preheating requests now have low priority
- Further reduce the code base
DFImageManager 0.2.0
Overview
This is a delightful release that brings an AFNetworking integration. Combine the power of both frameworks!
Another great improvement is a support for CocoaPods dynamic frameworks. You can now use DFImageManager in your Swift projects.
This version also dramatically simplifies a lot of stuff. The project structure has changed, and new subspecs have been introduced.
AFNetworking
This release gives you a full power of AFNetworking. All you need to do is install optional DFImageManager/AFNetworking
subspec, which replaces DFImageManager networking stack with AFNetworking. The integration is dead simple, the entire subspec is just 124 lines of code. In case you don't want to use AFNetworking, the DFImageManager still provides its basic networking implementation, which is included in DFImageManager/NSURLSession
subspec.
Subspecs
Default subspecs:
DFImageManager/Core
- core DFImageManager classes, now just under 1600 lines of codeDFImageManager/UI
- UI componentsDFImageManager/NSURLSession
- basic networking on top of NSURLSessionDFImageManager/PhotosKit
- Photos Framework supportDFImageManager/AssetsLibrary
- ALAssetsLibrary support
Optional subspecs:
DFImageManager/AFNetworking
- replaces networking stack with AFNetworkingDFImageManager/GIF
- GIF support with a FLAnimatedImage dependency
Changes
- Add
DFImageManager/AFNetworking
subspec which replaces networking stack with AFNetworking when installed #5 - Add support for CocoaPods dynamic frameworks #4
- Move UI components to new
DFImageManager/UI
subspec - Move NSURLSession support to new
DFImageManager/NSURLSession
subspec - Move Photos Framework support to new
DFImageManager/PhotosKit
subspec - Move ALAssetLibrary support to new
DFImageManager/AssetsLibrary
subspec DFImageManager/GIF
subspec is now optional+[DFImageManager setSharedManager]
method is now thread safe- Add
+[DFImageManager addSharedManager]
to simplify managers composing DFImageManager
now holds strong references to the operations created by image fetchers- Remove
DFURLImageRequestOptions
class, useDFURLRequestCachePolicyKey
instead - Remove
DFAssetsLibraryImageRequestOptions
class, useDFAssetsLibraryImageSizeKey
andDFAssetsLibraryAssetVersionKey
instead - Remove
DFPhotosKitImageRequestOptions
class, useDFPhotosKitVersionKey
,DFPhotosKitDeliveryModeKey
,DFPhotosKitResizeModeKey
instead - Remove
DFMutableImageResponse
class,DFImageResponse
now has a sufficient initializer and no longer need to be copied - Rename
DFCompositeImageFetchOperation
toDFImageFetchTask
(emphasize that it’s not anNSOperation
subclass) - Rename
DFCompositeImageRequestContext
toDFImageFetchContext
- Remove
DFImageFetchOperation
,DFOperation
classes DFPhotosKitImageFetchOperation
no longer depends onDFImageManager
classes- Remove
DFImageInfoURLResponseKey
- Rename
DFImageManagerValueTransforming
toDFProxyRequestTransforming
, which now has a single responsibility. TheDFProxyRequestTransforming
now also allows you to modify the entire request, not just a resource; RemoveDFImageManagerBlockValueTransformer
class - Make
DFURLSessionOperation
private - Improved documentation