All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning starting from 1.x releases.
All recent changes are published
5.0.0
Releases - 5.0.7 | 5.0.8
4.2.0 Releases - 4.2.0 |
4.2.1 | 4.2.2 | 4.2.3 | 4.2.4 | 4.2.5 |
4.1.0 Releases - 4.1.0 |
4.1.3 |
4.0.0 Releases - 4.0.0 |
4.0.1 |
1.0.0 Releases - 1.0.0 |
1.0.1 |
1.0.0-betax Releases - 1.0.0-beta1 |
1.0.0-beta2 | 1.0.0-beta3 | 1.0.0-beta4 | 1.0.0-beta5 |
0.10.x
Releases - 0.11.00.10.x Releases - 0.10.0 |
0.10.1 | 0.10.2 |
0.9.x Releases - 0.9.0 |
0.9.1 | 0.9.2 | 0.9.3 |
0.8.x
Releases - 0.8.00.7.x Releases - 0.7.0 |
0.7.1 | 0.7.2 | 0.7.3 | 0.7.4 | 0.7.5 | 0.7.6 | 0.7.7 |
0.6.x Releases - 0.6.0 |
0.6.1 |
0.5.x
Releases - 0.5.00.4.x Releases - 0.4.0 |
0.4.1 |
0.3.x Releases - 0.3.0 |
0.3.1 |
5.0.7
Released on 2020-02-18
4.2.4
Released on 2018-12-27
4.2.3
Released on 2018-12-06
EntryDecodable
by id that prevented links from being resolved.4.2.2
Released on 2018-12-02
@discardableResult
to some methods it was missing from4.2.1
Released on 2018-11-22
4.2.0
Released on 2018-11-13
ContentfulLogger
singleton which will log messages to the console. ContentfulLogger
can be configured with a CustomLogger
in order to use any third-party logging frameworks of your choice.4.1.3
Released on 2018-11-08
4.1.1
, 4.1.2
, and 4.1.3
are all hotfix releases that fixed small corruptions in the Xcode project configuration. 4.1.3
specifically sets the deployment version on the macOS target, even though the correct deployment version was set on the macOS framework target.4.1.0
Released on 2018-11-06
RichTextDocument
type which can be used in EntryDecodable
instances as a field type corresponding to rich text fields in Contentful.4.0.1
Released on 2018-10-25
4.0.0
Released on 2018-10-24
Interstellar
has been removed as a dependency of the SDK and the SDK now has its own Result
type. If you were relying on fetch methods that returned an Observable
, you will need to update your code.Client
have changed. Refer to the v4 migration guide.EntryQueryable
has been renamed FieldKeysQueryable
, the required associated type Fields
has been renamed FieldKeys
to accurately reflect the type’s real usage.MixedMappedArrayResponse
has been renamed MixedArrayResponse
.Swift.Decodable
have been exposed so that SDK usage is more flexible for various development strategies.Endpoint
enum and EndpointAccessible
protocol for clarity on endpoints available through the APIs and which resource types are returned from said endpoints.ResourceQueryable
protocol, which Asset
, Entry
, ContentType
conform to; it enables querying and filtering on the API for conforming types.FlatResource
protocol which can be used if you prefer to have all sys
properties on the top level of your EntryDecodable
. All Resource
types have a default implementation of FlatResource
so refactoring is opt-in.DataDelegate
protocol has been removed in favor of directly fetching raw Data
on your own. If you want to store JSON to disk, simply fetch it and do what you like.EntryModellable
protocol is now gone. Just use EntryDecodable
.3.1.2
Released on 2018-08-24
A retain cycle due to the fact that the URLSession
owned by Client
was not invalidated on client deallocation. Thanks to @edwardmp for identifying the issue and submitting a fix in #226.
3.1.1
Released on 2018-08-22
fetchLocales(then:)
method to not pass the correct error back to it’s completion handler. This bug would, for example, incorrectly pass back an SDKError
if internet connection dropped rather than passing back the proper NSErrror
from Foundation.3.1.0
Released on 2018-08-10
Query
and QueryOn
methods for finding entries which reference another entry (by id
) with a specific linking field.3.0.0
Released on 2018-07-30
.standard
or .eight
bits as an additional ImageOption
to request PNGs from the Images API.SDKError
if the SDK is unable to serialize an APIError
Client
to interface with Content Preview API is no longer done through the ClientConfiguration
type. Instead, pass host: Host.preview
to the Client
initializer. Also, you can now configure the client to use any arbitrary string host if you have whitelisted via your plan in Contentful.2.2.1
Released on 2018-07-30
2.2.0
Released on 2018-06-13
timeZone
on the ClientConfiguration
to specify which TimeZone
should be used when normalizing dates returned by the API. The default timezone is 0 seconds offset from GMT which enables serializing the exact representation the API returns rather than transforming to the current system time.2.1.0
Released on 2018-04-27
/sync
endpoint on non-master environments.2.0.0
Released on 2018-04-16
null
values that were present for fields were being stored in dictionaries as a Bool with a value of true
. Now these values are omitted from the dictionary. The handling of null
values in JSON arrays has also been improved.Client
and can be fetched on their own with the fetchLocales
methods.AssetProtocol
to enable data fetches for other asset data types.initialSync
and nextSync
have been replaced with sync
with a default argument of an empty sync space to start an initial sync operation.Swift.JSONDecoder
and updating it with locale information of your space or environment has changed.LocalizationContext
property of Space
has been moved and is now a property of Client
.ResourceQueryable
has been renamed EntryQueryable
for correctness and consistency.1.0.1
Released on 2017-01-31
String
extension to generate an image url that didn’t always prepend the “https” scheme to the url.1.0.0
Released on 2017-01-25
static
localization context on the Client
which caused issues if a new client connected to a different space was instantiated.1.0.0-beta5
Released on 2017-01-09
LinkQuery
ImageOptions
, the ‘https’ scheme will always be applied.Location
type is now an Objective-C that conforms to NSCoding class so that it may be stored in CoreData as an attribute on an NSManagedObject
1.0.0-beta4
Released on 2017-12-19
width
and height
properties of the ImageInfo
for an Asset
are now public so they can be used. Thanks to @ErikLuimes for the pull request: #1571.0.0-beta3
Released on 2017-11-27
true
would be decoded to Int
with value 1
when decoding JSON to [String: Any]
. The SDK now attempts to decode Bool
before Int
to prevent this error.1.0.0-beta2
Released on 2017-11-03
Client
, the SDK would enter an infinite loop.1.0.0-beta1
Released on 2017-10-24
No more breaking changes will be made before 1.0.0 release. Following this point, the project will strictly adhere to Semantic Versioning.
ResourceQueryable
protocol to enable safer queries via the QueryOn
query type.SyncSpace.SyncableType
enum for specifying which Contentful types should be synced.ContentType
ContentTypeQuery
for syncing content types.ArrayResponseError
type as a member of all array responses to inform you when your links are not resolvable because the target resources are unpubished.(matching:then:)
.throw
errors and so the need to call them in a do
catch
block has been obviated.QueryOperation
is now called Query.Operation
.QueryError
s.0.11.0
Released on 2017-10-10
EntryModellable
is now called EntryDecodable
and extends Decodable
from the Swift 4 Foundation standard library. There are convenience methods for deserializing fields in the “fields” container for an entry.MappedContent
type no longer exists. If requesting heterogeneous collections (by hitting “/entries” with no query paramters for intance), you will get a Result<MixedMappedArrayResponse>
and it is up to you to filter the array by the contained types.EntryDecodable
not synthesizing arrays of linksEntryDecodable
not allowing properties that are implicit optionals0.10.2
Released on 2017-10-06
0.10.1
Released on 2017-10-03
0.10.0
Released on 2017-10-02
Decodable
protocol in Foundation.CLLocationCoordinate2D
has been replaced with Location
type native to the SDK so that linking with CoreLocation is no longer necessary. If you have location enabled queries, you’ll need to migrate your code.
• Resource
is now a protocol and is no longer the base class for Asset
and Entry
. LocalizableResource
is the new base class.0.9.3
Released on 2017-09-08
DataDelegate
protocol to receive callbacks from SDK which contain raw Data
from fetches to the API.0.9.2
Released on 2017-08-16
ContentModel
which was implicitly internal
. The initializer is now exposed as public.
Entry
s and Asset
s, from fields
dictionaries.Query
s on specific content types without conforming to EntryModellable
.0.9.1
Released on 2017-08-11
0.9.0
Released on 2017-08-09
Modellable
protocol now splits mapping of regular (non-relationship) fields, and link fields into two separate methods.0.8.0
Released on 2017-07-26
--use-submodules
flag and the source (i.e. Carthage/Checkouts) is now tracked in gitpersistenceIntegration
instance variable is now a public var
which means it can be set anytime after Client
initialization.0.7.7
Released on 2017-07-24
String
extension methods to generate urls for the Contentful Images API.0.7.6
Released on 2017-07-19
0.7.5
Released on 2017-07-18
PersistenceIntegration
.0.7.4
Released on 2017-07-17
0.7.3
Released on 2017-07-17
/sync
endpoint were only being sent for last page when a sync was returned on multiple pages.0.7.2
Released on 2017-07-12
LocalizationContext
is now a public variable on Space
so that SDK consumers can direclty initialize Entry
or Asset
instances from bundled JSON.0.7.1
Released on 2017-06-20
PersistenceIntegration
when calling Client.nextSync()
and Client.initialSync()
in #710.7.0
Released on 2017-06-19
Client
called nextSync
rather than being a method on SyncSpace
.
PersistenceIntegration
protocol. Client
can now be initialized with a persisistenceIntegration
which will receive messages when Asset
s & Entry
s are ready to be transformed to a persistable format and cached in persistent store such as CoreData. Note that this only works for the initialSync
and nextSync
operations.updatedAt
and createdAt
properties of the Sys
type are now stored as Date
objects instead of as String
s.Integration
protocol to append information about external integrations to Contentul HTTP user-agent headers.ContentModel
type used to contain mapped ContentModellable
(user-defined types) instances rather than Entry
& Asset
s.initialSync
when using the Content Preview API.0.6.1
Released on 2017-06-12
ImageOption
that changed background using `Fit.pad(with: Color) now generates the correct URL.0.6.0
Released on 2017-06-12
/sync
endpoint or specifing locale=*
)defaultLocale
property: Issue #68 and #65
0.5.0
Released on 2017-05-31
0.4.1
Released on 2017-05-23.
SyncSpace
instance0.4.0
Released on 2017-05-18.
QueryOn
queries.Link
typeContentful.Array
is now called ArrayResponse
to avoid clashing with native Swift arrays.fetch
methods no longer return tuples of (URLSessionTask?, Observable)
and now simply return the observable.0.3.1
Released on 2017-02-03.
0.3.0
Released 2017-01-08.