This repository was archived by the owner on Nov 12, 2019. It is now read-only.
Releases: haversnail/SpotifyKit
Releases · haversnail/SpotifyKit
Version 1.1.0
Added
- A standalone web-based mechanism for retrieving temporary access tokens from the Spotify Web API when using the SpotifyKit playground or running the framework's unit tests, hosted on SpotifyKit's GitHub Pages.
Changed
- Updated the framework to use Swift 4.1. Specifically:
- Refactored the
JSONDecodable,JSONEncodable, andURLEncodableextensions using conditional conformances. - Replaced any deprecated symbols with their Swift 4.1 equivalent (e.g.,
flatMap→compactMap).
- Refactored the
- Renamed the cursor properties
latest/earliesttonewest/oldestto improve clarity. - Modified the design of the documentation pages and refactored the
/docsdirectory. - Updated all the developer.spotify.com hyperlinks to reflect the new site.
- Updated the README with better visuals and an improved roadmap.
- Updated the build environment for Xcode 9.4.
Fixed
- Embeds the
Cursorstype within theCursorPagestruct as originally designed (now that SR-5086 has been resolved in Swift 4.1), enabling the compilation of page cursors as concrete types.
Version 1.0.1
Added
- Incorporated Travis CI into the project.
Changed
- Updated the README content.
Fixed
- A
URLEncodablebug that kept the project from compiling.
Version 1.0.0
This is the first public release of the SpotifyKit framework. As such, the following changes outline all the notable differences and design deviations between SpotifyKit and the Spotify Web API. All changes have been carefully considered and are intended to better standardize SpotifyKit and conform its model and methods to match Swift design convention.
Added
- An
SKRequestclass for preparing and sending URL requests to the Web API. - JSON Encoding and Decoding mechanisms for the API Object Model.
- An
SKCatalogstruct that functions as a request factory for locale-dependent endpoints. - An
SKPlayerstruct that functions as a request factory for the Web API Connect endpoints. - An
SKSearchResultsstruct for the Search endpoint response. - An
SKFeaturedPlaylistsstruct for the "Get Featured Playlists" endpoint response. - Various enumeration types to support other endpoint requests.
- Extensions to symbols in the
SpotifyAuthenticationandSpotifyAudioPlaybackiOS SDK frameworks.
Changed
-
Object Model:
- Renamed Paging and Cursor-Based Paging objects to
PageandCursorPage, respectively. These types function asCollections. - Renamed Private User objects to
SKCurrentUser. This type also functions as a request factory for endpoints that are restricted to the current authenticated user. - Renamed Play History objects to
SKRecentTrack. - Renamed beta Currently Playing objects to
SKPlaybackState. - Refactored Cursor objects as embedded structs with a generic cursor type that depends on the type of elements in the paging collection.
- Decodes objects without fixed key names or with a variable or number of keys (i.e., External ID objects, External URL objects, etc.) as
[String : String]or[String : URL]dictionary objects. - Represents objects with both a "simplified" and "full" version as one type, with an optional set of properties for any simplified instances. See the
Expandableprotocol in the documentation for more details.
- Renamed Paging and Cursor-Based Paging objects to
-
Object Properties:
- Changed standardized string attributes to enumeration types (e.g.,
SKAlbumType,SKDatePrecision, etc.). - Renamed all
hrefattributes tourl. - Renamed properties whose names originally ended in prepositions (e.g.,
added_at,linked_from, etc.) to descriptive names read as nouns (e.g.,dateAdded,trackLinks, etc.). - Prefixed all Boolean properties with a linking verb (e.g. “is,” “has,” etc.) asserting the condition about the given object.
- Converted all strings representing dates or timestamps to a formatted
Datetype, each with their respective level of precision. - Standardized all
durationproperties asTimeIntervaltypes, converting values to seconds (maintaining millisecond precision).
- Changed standardized string attributes to enumeration types (e.g.,
Removed
-
The
typeattribute from the following model types (used as a privately-scoped property to verify the object during decoding instead):SKAlbumSKArtistSKAudioFeaturesSKPlaylistSKTrackSKTrackLinksSKUserSKCurrentUser
-
Does not include request methods for any Web API Connect endpoints that control playback; this is already handled by the
SpotifyAudioPlaybackframework.