- Fixed an issue when excluding some properties of native types
- Added an ability to exlude custom class fields from interacting with database:
Backendless.shared.data.excludeProperties(forClass: AnyClass, fieldNames: [String])
- fixed issue when publishing without PublishOptions
- fixed issue with pushing broadcast
- added @dynamicMemberLookup for the BackendlessUser
- fixed RT issue when user was able to subscribe only for one messaging channel
- some deprecated code was updated under the hood
- minimal iOS and tvOS versions changed to 12.0
- added implementation for BackendlessExpression
- fixed issue with mirroring class children
- added the
callbackUrlDomain
argument to thegetAuthorizationUrlLink
methods
- fixed RT
bulkUpsert
methods access level for class approach - fixed issue with
DataPermission
'ssetPermission()
function
- fixed issue when
getUserToken
method returned nil after login withstayLoggedIn = true
and re-runing app
- added a necessary
import Foundation
line of code to the UserProperty class - the
loginWithOauth1
method signature changed a little to:
func loginWithOauth1(providerCode: String, authToken: String, tokenSecret: String, fieldsMapping: [String : String], stayLoggedIn: Bool, responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!)
func loginWithOauth1(providerCode: String, authToken: String, tokenSecret: String, guestUser: BackendlessUser, fieldsMapping: [String : String], stayLoggedIn: Bool, responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!)
- the response of the
createEmailConfirmation
method changed to String:
func createEmailConfirmation(identity: String, responseHandler: ((String) -> Void)!, errorHandler: ((Fault) -> Void)!)
- added Hive support
- added support for DataQueryBuilder in the findFirst() and findLast() functions
- added method to create a directory:
func createDirectory(path: String, responseHandler: (() -> Void)!, errorHandler: ((Fault) -> Void)!)
- fixed bug with missing user token in requests after login
- fixed bug with the
makeRequest()
method in the BackendlessRequestManager class when assigningrequest.httpBody
- the
PermissionOperation
enum values updated to: UPDATE, FIND, REMOVE, LOAD_RELATIONS, ADD_RELATION, DELETE_RELATION, UPSERT - added method for batch ACL update:
func updateUsersPermissions(tableName: String, objectId: String, permissions: [AclPermissionDTO], responseHandler: (([Bool]) -> Void)!, errorHandler: ((Fault) -> Void)!)
- Swift-SDK updated. Minimal required versions:
- iOS 11.0
- macOS 10.13
- tvOS 11.0
- watchOS 5.0
- fixed issue when array for the JSON column is not saved
- added the commerce function for verifying Apple receipts:
Backendless.shared.commerce.verifyAppleReceipt(...)
- fixed issue with retrieving cached data
- Swift is set to v5
- added the function with
isUpsert = false
by default
func save(entity: Any, responseHandler: ((Any) -> Void)!, errorHandler: ((Fault) -> Void)!)
- the
create()
,update()
andsave()
methods removed from the PersistenceService, please use instead:
func save(entity: [String : Any], isUpsert: Bool, responseHandler: (([String : Any]) -> Void)!, errorHandler: ((Fault) -> Void)!)
func save(entity: Any, isUpsert: Bool, responseHandler: ((Any) -> Void)!, errorHandler: ((Fault) -> Void)!)
- the
createBulk()
methods renamed tobulkCreate()
- the
updateBulk()
methods renamed tobulkUpdate()
- the
removeBulk()
methods renamed tobulkRemove()
- added support for upseert to the PersistenceService:
func save(entity: Any, isUpsert: Bool, responseHandler: ((Any) -> Void)!, errorHandler: ((Fault) -> Void)!)
func bulkUpsert(entities: [Any], responseHandler: (([String]) -> Void)!, errorHandler: ((Fault) -> Void)!)
- added support for upsert/upsertBulk transaction operation
- added RT support for the upsert methods:
func addUpsertListener(responseHandler: ((Any) -> Void)!, errorHandler: ((Fault) -> Void)!) -> RTSubscription?
func addUpsertListener(whereClause: String, responseHandler: ((Any) -> Void)!, errorHandler: ((Fault) -> Void)!) -> RTSubscription?
func removeUpsertListeners(whereClause: String)
func removeUpsertListeners()
- fixed crash on session timeout in the
isValidUserToken()
method
- added support for append operations in FileService
func append(fileName: String, filePath: String, content: Data, responseHandler: ((BackendlessFile) -> Void)!, errorHandler: ((Fault) -> Void)!)
func append(urlToFile: String, backendlessPath: String, responseHandler: ((BackendlessFile) -> Void)!, errorHandler: ((Fault) -> Void)!)
func append(fileName: String, filePath: String, base64Content: String, responseHandler: ((BackendlessFile) -> Void)!, errorHandler: ((Fault) -> Void)!)
func append(fileName: String, filePath: String, data: String, responseHandler: ((BackendlessFile) -> Void)!, errorHandler: ((Fault) -> Void)!)
- added
uniqueEmails
parameter to the EmailEnvelope class
- deprecated methods removed from SDK
- added support for
fileReferencePrefix
to GroupDataQueryBuilder - added ability to set headers to
CustomService.invoke
- the
returnType
parameter removed from the CustomServiceinvoke
methods
- Socket.IO updated to v 16.0.1. Minimal required versions:
- iOS 10.0
- macOS 10.13
- tvOS 10.1
- watchOS 5.0
- added support for Grouping API:
func group(queryBuilder: GroupDataQueryBuilder, responseHandler: ((GroupResult) -> Void)!, errorHandler: ((Fault) -> Void)!)
func getGroupObjectCount(queryBuilder: GroupDataQueryBuilder, responseHandler: ((Int) -> Void)!, errorHandler: ((Fault) -> Void)!)
- the RelationStatus class is made Codable
- added methods to upload file from url:
func upload(urlToFile: String, backendlessPath: String, responseHandler: ((BackendlessFile) -> Void)!, errorHandler: ((Fault) -> Void)!)
func upload(urlToFile: String, backendlessPath: String, overwrite: Bool, responseHandler: ((BackendlessFile) -> Void)!, errorHandler: ((Fault) -> Void)!)
*added methods to send email from template with attachments:
func sendEmailFromTemplate(templateName: String, envelope: EmailEnvelope, attachments: [String], responseHandler: ((MessageStatus) -> Void)!, errorHandler: ((Fault) -> Void)!)
func sendEmailFromTemplate(templateName: String, envelope: EmailEnvelope, templateValues: [String : String], attachments: [String], responseHandler: ((MessageStatus) -> Void)!, errorHandler: ((Fault) -> Void)!)
- added support for counter listing:
func list(counterNamePattern: String, responseHandler: (([String]) -> Void)!, errorHandler: ((Fault) -> Void)!)
- added
fileReferencePrefix
property to DataQueryBuilder - added the
getAuthorizationUrlLink
methods to User Service:
func getAuthorizationUrlLink(providerCode: String, responseHandler: ((String) -> Void)!, errorHandler: ((Fault) -> Void)!)
func getAuthorizationUrlLink(providerCode: String, fieldsMappings: [String : String], responseHandler: ((String) -> Void)!, errorHandler: ((Fault) -> Void)!)
func getAuthorizationUrlLink(providerCode: String, scope: [String], responseHandler: ((String) -> Void)!, errorHandler: ((Fault) -> Void)!)
func getAuthorizationUrlLink(providerCode: String, fieldsMappings: [String : String], scope: [String], responseHandler: ((String) -> Void)!, errorHandler: ((Fault) -> Void)!)
*added methods to the UserService:
func findByRole(roleName: String, responseHandler: (([BackendlessUser]) -> Void)!, errorHandler: ((Fault) -> Void)!)
func findByRole(roleName: String, loadRoles: Bool, responseHandler: (([BackendlessUser]) -> Void)!, errorHandler: ((Fault) -> Void)!)
func findByRole(roleName: String, queryBuilder: DataQueryBuilder, responseHandler: (([BackendlessUser]) -> Void)!, errorHandler: ((Fault) -> Void)!)
func findByRole(roleName: String, loadRoles: Bool, queryBuilder: DataQueryBuilder, responseHandler: (([BackendlessUser]) -> Void)!, errorHandler: ((Fault) -> Void)!)
- added the
reloadCurrentUser
property to the UserService to return the updated currentUser data
- fixed app init with custom domain to accept domens both with protocol or without
- added possibility to init app with custom domain name
- fixed RT issue when subscribtion failed for events unless socket is connected
- fixed RT issue when socket didn't reconnect automatically after the ConnectErrorEventListener is triggered
- fixed RT issue when channel didn't reconnect after login/logout and adding/removing listeners very quickly
- the
currentUser
is fetched from remote when session resumed
- fixed issue with new version of Socket.IO
- tests refactoring in progress
- fixed the DataQueryBuilder
distinct
property for Flutter-SDK - tests refactoring in progress
- added the ability to add/set the relation using the OpResult from the
uow.create
anduow.update
as children parameter
- fixed issue when SDK crashed with several find methods for class approaches in parallel threads
- fixed issue when Date fields failed to parse in Java Custom Services
- fixed issue when RT socket reconnected after currentUser is updated
- fixed issue when Geometry fields failed to parse in Java Custom Services
- fixed issue with SPM after adding the BLUrlSession, BLUrlSessionShared and BLUrlSessionSetup classes
- fixed issue when RT socket didn't reconnect automatically after disconnect
- added the
ofView()
method to the PersistenceService class - added methods to configure the URLSession for requests manually:
var useSharedUrlSession = false
// true: URLSession is created only once for all requests
// false: URLSession is created for every request
// to setup URLSessionConfiguration manually for all you URLSession requests
func setupURLSessionConfig(_ config: URLSessionConfiguration)
// to setup URLSession manually for all you requests
func setupURLSession(_ session: URLSession)
- fixed issue when Business Logic returned a date as a string
- fixed issue when RT stopped working after logout, relogin or when Internet disappeared
- added the
deepSave()
methods to DataStoreFactory and MapDrivenDataStore
- added the
distinct
property to DataQueryBuilder - fixed the listeners count in the RTListener.swift class
- methods marked as depreated:
logingWithFacebook(...)
loginWithTwitter(...)
loginWithGoogle(...)
- the iOS deployment target is set to 9.0 in the .podspec file
- the signatures of
func loginWithOauth2(providerName: String...)
func loginWithOauth1(providerName: String...)
changed to
func loginWithOauth2(providerCode: String...)
func loginWithOauth1(providerCode: String...)
- the signature of
func resendEmailConfirmation(email: String, responseHandler: (() -> Void)!, errorHandler: ((Fault) -> Void)!)
changed to
func resendEmailConfirmation(identity: String, responseHandler: (() -> Void)!, errorHandler: ((Fault) -> Void)!)
- added function to the UserService:
func createEmailConfirmation(identity: String, responseHandler: (([String : Any]) -> Void)!, errorHandler: ((Fault) -> Void)!)
- the GeoService functionality removed from SDK
- the minimum deployment target is changed to iOS 9.0
- travis.yml changed to work with Xcode 12.2
- added OAuth login methods:
func loginWithOauth2(providerName: String, token: String, fieldsMapping: [String : String], stayLoggedIn: Bool, responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!)
func loginWithOauth2(providerName: String, token: String, guestUser: BackendlessUser, fieldsMapping: [String : String], stayLoggedIn: Bool, responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!)
func loginWithOauth1(providerName: String, token: String, tokenSecret: String, fieldsMapping: [String : String], stayLoggedIn: Bool, responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!)
func loginWithOauth1(providerName: String, token: String, tokenSecret: String, guestUser: BackendlessUser, fieldsMapping: [String : String], stayLoggedIn: Bool, responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!)
- fixed issue when FileService
rename()
,move()
,copy()
methods responses URLs were encased in quotation marks
- fixed bug with FileService
rename()
,move()
,copy()
methods response - fixed FileService tests
- added SPM support
- fixed the JSONSerialization issue in custom services
- added support for JSON data type, added the JSONUpdateBuilder class
- fixed bug when custom service method returns null in response
- added tests for the RT Relations Listeners
- fixed transactions fail issue when object is BackendlessUser
- added RT Listeners for Relations support
- fixed transactions fail issue when object is BackendlessUser
- class approach fixed to handle JSON column type correctly
- added transactions API
- most of the get/set methods are marked as deprecated andtheir corresponding properties changed to public. These getters and setters are still available, but will be removed in the future, please use the
.
to access the properties - fixed the issue when
relationsDepth = 0
was sent to server even when it wasn't set manually
- the
currentUser
property in UserSevice changed to public and can be set manually. Current user is saved after the application restarts only whenstayLoggedIn = true
- the BackendlessUser and UserService properties became public, get/set methods are marked as deprecated
- fixed crash when saving object which doesn't have the
objectId
property - fixed the
BackendlessDataCollection
issue when trying to delete the last object from the collection - the Backendless
Identifiable
protocol for theBackendlessDataCollection
renamed toBLIdentifiable
to avoid the confusion with Swift'sIdentifiable
protocol
- fixed issue when Custom Class attached to User was Null when
stayLoggedIn
in is true
- fixed issue when user property is object of custom class
- fixed issue with class casting when Bunlde Name and Bundle Executable Name have different values
- fixed the FileService
remove
method response - tests fixed
- the
EmailBodyparts
class renamed to theEmailBodyParts
- fixed issue with BLGeometry in BackendlessUser properties
- fixed issue with current user after the Twitter login
- DataQueryBuilder
excludedProperties
renamed toexcludeProperties
- added support for smart-text in rich media url
- fixed issue with Backendless.shared.customService.invoke callback crash
- the
properties
of DataQueryBuilder and LoadRelationsQueryBuilder fixed to return all values when user set only one property as empty string - the
addAllProperties
,excludeProperty
,excludeProperties
methods added to the DataQueryBuilder - fixed issue when DataStore methods didn't process Backendless types in response
- fixed class to table mapping issue
- fixed type casting for Backendless types
- fixed issue when parsing Geometry types for Flutter-SDK
- code refactored
- added the PersistenceHelper class
- classes related to current GeoService marked as deprecated
- fixed Backendless system classes conversion when working with dictionary approach
- fixed
isValidUserToken
method to return error when Internet connection is not available - refactored Fault constructor to handle URLSession errors correctly
- fixed tests according to the last server changes
- fixed the DataQueryBuilder
properties
property to work correctly in search queries - fixed BLGeometry tests and methods that allow to get geometry objects from WKT or GeoJSON
- BackendlessDataCollection fixed
- fixed issue when BackendlessUser object lost its objectId while decoding
- fixed issue when RT disconnect listener didn't trigger when internet disappeared
- added Spatial Data support
- added guest login with social account:
func loginWithFacebook(accessToken: String, guestUser: BackendlessUser, fieldsMapping: [String: String], responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!)
func loginWithTwitter(authToken: String, authTokenSecret: String, guestUser: BackendlessUser, fieldsMapping: [String: String], responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!)
func loginWithGoogle(accessToken: String, guestUser: BackendlessUser, fieldsMapping: [String: String], responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!)
- added function to DataQueryBuilder and LoadRelationsQueryBuilder:
func addProperties(properties: String...)
- fixed issue when RT-subscriptions were lost after socket reconnection
- fixed the geolocation search in radius issue when all category points returned
- fixed LoadRelationsQueryBuilder issue with Users table
- fixed problems with saving/getting objects with File Reference property
- customized encoding/decoding for DataQueryBuilder
- fixed Units in the BackendlessGeoQuery which was broken for Objective-C in v5.6.2
- fixed CodingKeys in the BackendlessGeoQuery to work correctly with
sortBy
property
- fixed the currentUser wasn't updated issue when
stayLoggedIn = true
- StoredObjects now store also the BackendlessUser and DeviceRegistration objects
- added the
relationsPageSize
property to the DataQueryBuilder - added the
sortBy
property to the BackendlessGeoQuery - fixed CodingKeys in the BackendlessGeoQuery
- fixed the
user-token
duplication in the UserService
- fixed the
userToken
update issue - fixed the incorrect date format in the Backendless RequestManager class
- fixed the
addRelated
methods bug when they worked assetRelated
- fixed the BackendlessUser password is not updating issue
- fixed the issue caused by spaces and dashes in the project's product name
- updated the
blUserLocale
behavior
- the
create
method added into the PersistenceService - the
save
method logic changed. When anobjectId != nil
it works like update, whenobjectId == nil
it works like create
- fixed crash in the createBulk method
- the update method returns fault when missing objectId
- fixed CodingKeys in class DeviceRegistration
- fixed error on decoding ObjectProperty received from Flutter
- fixed serialization/deserialization of GeoCluster
- fixed serialization/deserialization of MessageStatus
- fixed serialization/deserialization of class DeliveryOptions
- fixed serialization/deserialization of class ReconnectAttemptObject
- fixed serialization/deserialization of class BackendlessUser
- fixed bug when mapped relations are broken
- the FileService
saveFile
method fixed to return url String value correctly - fixed putting and getting custom types in the CacheService
- added method to the CacheService
func get(key: String, ofType: Any.Type, responseHandler: ((Any?) -> Void)!, errorHandler: ((Fault) -> Void)!)
This method is available for Swift projects.
- fixed error on sending BackendlessGeoQuery with empty metadata
- the CacheService
get
method returns nil if cache for the key doesn't exist - the CacheService
get
method fixed to return String values correctly
- fixed a bug when missing inherited object properties
- fixed deserialization of BackendlessGeoQuery class
- fixed class to table mappings
- added RT support to the BackendlessDataCollection class
- the SharedObject
invoke
method fixed
- the BackendlessDataCollection whereClause fix
- the BackendlessDataCollection class fix
- added the BackendlessDataCollection class for automatic data loading purposes
- added the blUserLocale property (two character code) to the BackendlessUser object
- fixed crashes in the uploadFile and saveFile functions when file name contains unsupported characters
- added methods to UserService:
func setUserToken(value: String)
func getUserToken()
func loginAsGuest(responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!)
func loginAsGuest(stayLoggedIn: Bool, responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!)
- added methods for Backendless headers:
func getHeaders() -> [String : String]
func setHeader(key: String, value: String)
func removeHeader(key: String)
- added Codable and NSCoding support for LoadRelationsQueryBuilder
- LoadRelationsQueryBuilder initializers updated
- the addRelations methods fixed to work correctly
- added methods to GeoService:
func getFencePointsCount(geoFenceName: String, responseHandler: ((Int) -> Void)!, errorHandler: ((Fault) -> Void)!)
func getFencePointsCount(geoFenceName: String, geoQuery: BackendlessGeoQuery, responseHandler: ((Int) -> Void)!, errorHandler: ((Fault) -> Void)!)
- the sendEmailFromTemplate functions signatures changed:
func sendEmailFromTemplate(templateName: String, envelope: EmailEnvelope, responseHandler: ((MessageStatus) -> Void)!, errorHandler: ((Fault) -> Void)!)
func sendEmailFromTemplate(templateName: String, envelope: EmailEnvelope, templateValues: [String : String], responseHandler: ((MessageStatus) -> Void)!, errorHandler: ((Fault) -> Void)!)
- the sendEmails functions renamed into the sendEmailFromTemplate:
func sendEmailFromTemplate(templateName: String, envelope: EmailEnvelope, responseHandler: ((MessageStatus) -> Void)!, errorHandler: ((Fault) -> Void)!)
func sendEmailFromTemplate(templateName: String, templateValues: [String : String], envelope: EmailEnvelope, responseHandler: ((MessageStatus) -> Void)!, errorHandler: ((Fault) -> Void)!)
- added custom serialization/deserialization for class BackendlessGeoQuery
- the EmailEnvelope signatures changed
- code refactoring
- version 0.0.12 experienced some cocoapods issues, so they are fixed in 0.0.13 - please use this version instead
- added the SearchMatchesResult class
- fixed the relativeFind method to return SearchMatchesResult correctly
- added serializations/deserialization for class SearchMatchesResult
- added distance field in class GeoPoint
- fixed the GeoPoint saving issue which caused crash when sending custom object in metadata
- customized serialization/deserialization for the next classes: DeliveryOptions, GeoPoint, GeoQueryRectangle
- fixed password issue when updating the BackendlessUser objects
- fixed Date type issue when retrieving object or registering BackendlessUser with custom Date field
- fixed the BackendlessUser properties methods
- added support of custom smart-text substitutions for push templates:
func pushWithTemplate(templateName: String, templateValues: [String : Any], responseHandler: ((MessageStatus) -> Void)!, errorHandler: ((Fault) -> Void)!)
- added Channel function:
func sendCommand(commandType: String, data: Any?, responseHandler: (() -> Void)!, errorHandler: ((Fault) -> Void)!)
- added IEmailEnvelope protocol, EmailEnvelope, EnvelopeWithRecepients and EnvelopeWithQuery classes
- added functions to MessagingService:
func sendEmails(templateName: String, envelope: IEmailEnvelope, responseHandler: ((MessageStatus) -> Void)!, errorHandler: ((Fault) -> Void)!)
func sendEmails(templateName: String, templateValues: [String : String], envelope: IEmailEnvelope, responseHandler: ((MessageStatus) -> Void)!, errorHandler: ((Fault) -> Void)!)
- added groups support for push notifications (for iOS 12+)
- the AtomicCounters compareAndSet function fixed to return Bool in response instead of Int
- added functions to UserService:
func loginWithTwitter(authToken: String, authTokenSecret: String, fieldsMapping: [String: String], responseHandler: ((BackendlessUser) -> Void)!, errorHandler: ((Fault) -> Void)!)
func resendEmailConfirmation(email: String, responseHandler: (() -> Void)!, errorHandler: ((Fault) -> Void)!)
- fixed bug in the CacheService methods when key contains spaces
- fixed crashes in DataPermission when object is Dictionary
- added the segmentQuery property to the DeliveryOptions
- removed the device registration methods that don't take deviceToken as parameter
- removed the
refreshDeviceToken
method - removed the unnecessary init methods
- customized Serialization/Deserialization for next classes: ObjectProperty, BackendlessFileInfo, GeoCategory, BackendlessUser, UserProperty
init(from decoder: Decoder) throws
func encode(to encoder: Encoder) throws
- added functions to FileService:
func exists(path: String, responseHandler: ((Bool) -> Void)!, errorHandler: ((Fault) -> Void)!)
func listing(path: String, responseHandler: (([BackendlessFileInfo]) -> Void)!, errorHandler: ((Fault) -> Void)!)
func remove(path: String, pattern: String, recursive: Bool, responseHandler: (() -> Void)!, errorHandler: ((Fault) -> Void)!)
- added functions to MessagingService:
func unregisterDevice(channels: [String], responseHandler: ((Bool) -> Void)!, errorHandler: ((Fault) -> Void)!)
func refreshDeviceToken(newDeviceToken: Data, responseHandler: ((Bool) -> Void)!, errorHandler: ((Fault) -> Void)!)
- classes made to conform to the Codable protocol: DataQueryBuilder, LoadRelationsQueryBuilder, BackendlessGeoQuery, GeoQueryRectangle, PublishOptions, DeliveryOptions, BackendlessFileInfo, PublishMessageInfo, UserInfo, ReconnectAttemptObject, BulkEvent
- deviceId is stored permanently in Keychain after device registration
- resolved issue when request response returned in the wrong thread
- fixed the issue of NSClassFromString method when namespace contains dashes
- added support of sortBy and properties for LoadRelationsQueryBuilder
- channel name property getter set to open
- device token is saved on the device when registering in Backendless first time
- added functions to MessagingService:
func registerDevice(responseHandler: ((String) -> Void)!, errorHandler: ((Fault) -> Void)!)
func registerDevice(channels: [String], responseHandler: ((String) -> Void)!, errorHandler: ((Fault) -> Void)!)
func registerDevice(expiration: Date, responseHandler: ((String) -> Void)!, errorHandler: ((Fault) -> Void)!)
func registerDevice(channels: [String], expiration: Date, responseHandler: ((String) -> Void)!, errorHandler: ((Fault) -> Void)!)
func getDeviceRegistrations(responseHandler: (([DeviceRegistration]) -> Void)!, errorHandler: ((Fault) -> Void)!)
- some beautiful changes are made with README.md
- CHANGELOG.md added
- this is the very first release of the Backendless Swift-SDK