Changelog
This page contains an overview of all relevant changes made to the Amity Chat SDK modules and the latest version releases
API / Behaviour Changes
Introduce a completion parameter to
registerDeviceWithUserId(:_)
inEkoClient
Breaking Changes
None
API / Behaviour Changes
Fixed issue where categories property of community is updated incorrectly when fetching list of community categories.
Breaking Changes
None
API / Behaviour Changes
Fix socket connection state that causes feed cannot be loaded
Fix issue where token does not update correctly
Fix issue where collection is not triggered when there is empty result
Fix edited date does changed after the comment get updated
Breaking Changes
None
API / Behaviour Changes
Fix issue where custom messages are not parsed correctly
Fix crash when setting up custom avatar for in
EkoClient
class.
Breaking Changes
None
API / Behaviour Changes
N/A
Breaking Changes
Add
EkoUserNotification
andEkoUserNotificationModule
class for supporting user notification settingsAdd
EkoCommunityNotification
andEkoCommunityNotificationEvent
class for supporting community notification settingsAdd
notificationManagerForCommunityId:
method inEkoCommunityRepository
class to provideEkoCommunityNotificationsManager
Add
EkoRoleFilter
andEkoRoleFilterType
; class and enum for defining what roles would be affected by notification setting
API / Behaviour Changes
Add
displayName
option inEkoCommunitySortOption
enum to sort list of communities alphabetically.Fix issue where
dataStatus
forEkoObject
was not reflected correctly.
Breaking Changes
Add
EkoCommunityFeedSortOption
enum.sortBy
parameter type is changed toEkoCommunityFeedSortOption
forgetCommunityFeed:
method inEkoFeedRepository
class.Add
EkoCommunityMembershipSortOption
enum.sortBy
parameter type is changed toEkoCommunityMembershipSortOption
forgetMemberships:
method inEkoCommunityParticipation
class.
Note: If you have been using enum in short form i.e
.displayName
, these breaking changes would not cause any effect.
API / Behaviour Changes
Fix issue where post was not getting removed from global feed when deleted
Fix issue where non members could search for private communities locally
Comment in error state can be hard deleted by
deleteComment()
api inEkoCommentEditor
API / Behaviour Changes
Fix issue where deleted comment was being shown from cache
API / Behaviour Changes
SDK is now distributed as xcframework. .dsym files are also included inside the framework. Please refer to installation docs for more info
Add new message type i.e audio. Please refer to Message documentation
EkoMediaRepository
has been depreciated. Please migrate todownloadImage:
&downloadFile:
method present inEkoMessageRepository
.Add
roles
properties inEkoCommunityMembership
classAdd
hasPermission:
methods in EkoClient to check permissions for current user.
API / Behaviour Changes
New Channel Types:
Community
&Live
. Channel typePrivate
andStandard
has been removed. Please refer to channel documentation for more detailsOlder
createChannel:
methods has been removed. Use new method with builder instead.type
parameter is removed fromjoinChannel
method.Older
createConversation:
method has been removed. Use newcreateChannel
or new method with builder instead.
API / Behaviour Changes
Add EkoCommentRepository, EkoCommentEditor and EkoCommentFlagger class. Complete documentations are on Comment section.
Add EkoReactionRepository model support reactions.
Add EkoReaction class to provide reaction info.
Support Xcode 11.7
API / Behaviour Changes
Fix bug on
membership
property onEkoChannelUserModel
which has wrong result
API / Behaviour Changes
Fix bug on
isEdited
property onEkoMessage
which has an unconsistent result
API / Behaviour Changes
No need to add
zlib
integration anymoreSupport Cocoapod and Carthage installation
API / Behaviour Changes
Resolve crash when trying to access
editedAt
timestamp for messageAdd
isEdited
property onEkoMessage
to check if message has been edited
API / Behaviour Changes
Resolve allow display name
nil
and empty string onregisterDevice
Support Xcode 11.6
API / Behaviour Changes
Resolve bug on conversation channel filtering
API / Behaviour Changes
Add
getAllUsersSortedBy
method to fetch list of users inEkoUserRepository
.Add
searchUser
method to search list of users with their display name inEkoUserRepository
.
Sample App Changes
Add new UI for showing list of Users.
Refactor UI to show two tabs, one for list of users and another for channels/chat.
API / Behavior Changes
Support
getMessage
bymessageId
fromEkoMessageRepository
usinggetMessage(messageId)
function.
Version 3.0 (2020-03-27)
Sample App Changes
Add new 'UI' for select the channel type for query.
Add new 'UI' for re-select the channel type on
More
page.Fix 'UI' for create new channel type.
API / Behavior Changes
Support
query
allchannel
types which isStandard
,Private
,Broadcast
,Conversation
, and combination.Support creating 2
channel
types which isStandard
andPrivate
.New API for creating a
conversation
is embedded intoEkoChannelRepository
which iscreateConversation
.Add new function for retrieving the
channelCollection
object byquery
it through newBuilder
pattern. Consists of 5 type ofBuilder
which isEkoStandardChannelQueryBuilder
,EkoPrivateChannelQueryBuilder
,EkoByTypesChannelQueryBuilder
,EkoBroadcastChannelQueryBuilder
andEkoConversationChannelQueryBuilder
. Each builder has their own configuration settings based on their requirements.New getter of
channelCollection
onEkoChannelRepository
that will return theEkoChannelQueryBuilder
following by the channel type then callquery
method, observe the changes usingEkoNotificationToken
.Support
private
andstandard
channel type forcreateChannel
.New enum for creation which is
EkoChannelCreateType
.New method helper inside
EkoChannel
for conversion betweenEkoChannelCreateType
intoEkoChannelType
if needed.channelsForFilter
andchannelsForFilter:includingTags:excludingTags
is deprecated function.joinChannel
only works for join existing channel, it doesn't work for join while creating a channel simultaneously.
API / Behavior Changes
Support
getMessage
bymessageId
fromEkoMessageRepository
usinggetMessage(messageId)
function.
Version 2.7 (2020-03-17)
Sample App Changes
Add new 'Like' UI on each message for react of Like and Unlike to test the optimistic UI.
Change implementation of
EkoMessageReactor
so it able to retain the process of previous reactor.
API / Behavior Changes
Add optimistic UI on the
Reaction
implementation.
Version 2.6.4 (2020-03-06)
API / Behavior Changes
Give safeguard for
RLMRealm
access of the properties in each object.
Version 2.6.3 (2020-02-27)
API / Behavior Changes
Protect
setDisplayName
ofEkoClient
to be able sent with emptyuserId
.
Version 2.6.2 (2020-02-27)
API / Behavior Changes
Set
EkoObject
to be nil in any case if model not exist or invalidated.
Version 2.6.1 (2020-02-21)
API / Behavior Changes
Protect
joinChannel
parameters attribute withnonnull
protection to guarantee thechannelId
is notnull
value.Make sure if the
realmModel
isinvalidated
then it changes thedataStatus
to benotExist
and set theEkoObject
to benil
and continue the network request process.
Version 2.6 (2020-01-23)
Sample App Changes
Add new 'Setting' section in the settings page for updating the user meta data.
Add new 'User Meta data' section inside about page for showing the user meta data.
API / Behavior Changes
Add
setUserMetadata
function insideEkoClient
object for updating the current user meta data.
Version 2.5.1 (2020-01-17)
Sample App Changes
Fix crash that happens if show reaction with empty display name.
Fix reactions model is not auto removed when someone removes the reaction.
API / Behavior Changes
Fix and enhance query system to clear reactions cache on first query.
Fix handle case when display name is empty.
Add support for Xcode 11.3.1.
Version 2.5.0 (2020-01-14)
API / Behavior Changes
Support query all reactions.
New method for observing all reaction which is
allMessageReactionsWithMessageId
within a message onEkoMessageRepository
for retrieving all of reactions inside a specific message.New properties on
EkoMessageReaction
which isreactorId
and alsoreactorDisplayName
for getting the user id of the reactor along with the display name.
Sample App Changes
Add action sheet for displaying all of reactions the single message.
Version 2.4.0 (2020-01-07)
API / Behavior Changes
Support add and remove reactions.
New class
EkoMessageReaction
andEkoMessageReactor
.Add Message reaction feature, a reaction can be added or removed from a message with
EkoMessageReactor
.New properties on
EkoMessage
which isreactions
data and alsoreactionsCount
andmyReactions
.
Sample App Changes
Add action sheet for adding and removing reactions on the message.
Add action sheet for displaying all of own reactions on the message.
Version 2.3.0 (2019-11-20)
API / Behavior Changes
Change update data endpoint.
Support update custom message.
Sample App Changes
Add action sheet for editing or deleting the message by clicking on the selected message cell.
Version 2.2.0 (2019-10-21)
API / Behavior Changes
Support Custom message type:
A message of this type can be created with a
Dictionary
data that following aJSON
format that the developers are responsible to parse it by themselves.This object is included in the
data
property of the message.Support File message type:
A message of this type can be created with an
NSData
of the choosen file. File could not exceed than 1 GB.
Sample App Changes
Add upload file button to choose file from the device.
New file cell view for the file message type.
Parse custom message from server into a text cell.
Add new custom view for sending the custom message, limit to only sent a key and value as a
String
.
Version 2.1.1 (2019-10-07)
Sample App Changes
Fix handling of deleted images
Version 2.1.0 (2019-09-27)
API / Behavior Changes
Add support for Xcode 11 and Swift 5.1
Version 2.0 (2019-09-18)
API / Behavior Changes
Message tagging support:
Messages can now be sent along with customized tags.
Messages can now be filtered by tags (both including and excluding).
Tags can also be set on any message.
Every message has a new
tags
property.Message sorting support:
Messages can now be fetched from the oldest first, or the newest first.
Message parenting support:
Messages can now be connected on creation by passing a new optional
parentId
value.Note how a message child can also become a parent itself, without any limit.
The
parentId
must be passed on the child message creation and cannot be changed afterwards.Every message has a new optional
parentId
andchildrenNumber
property.Improve background transaction performances
Remove AFNetworking dependency
Memory improvements
Enhance code documentation
Sample App Changes
Add full message tags support
Add full message order support
Add full message parenting support
Add example of message parenting usage with a special comment screen:
join a channel with tag “
comments
” to see the alternative experienceEnhance api key management
Display push notifications even when app is in foreground
Reset badge count upon opening the app
Enhance project structure
Breaking Changes
EkoMessageRepository
replaces the functionmessages(withChannelId:)
withmessages(withChannelId:reverse:)
, along with many other new options such asmessages(withChannelId:includingTags:excludingTags:reverse:)
,messages(withChannelId:filterByParentId:parentId:reverse:)
.Be aware that all the functions above are convenience function to the complete
messages(withChannelId:includingTags:excludingTags:filterByParentId:parentId:reverse:)
function.
Version 1.10 (2019-06-21)
API / Behavior Changes
Add Push Notification toggles:
users can now choose to mute selected channels or stop receiving notifications completely from any device.
The new settings, documented in the Notifications section, are per user, not per single device.
Sample App Changes
Adopt new push notification toggles.
Refactor various settings in new screens throughout the app.
Version 1.9 (2019-06-04)
API / Behavior Changes
Add Push Notification feature:
developers can call register and unregister for push notification directly from the
EkoClient
instance. Read more about the feature in the new Notifications section.Several internal performance and memory enhancements
Sample App Changes
Add notifications support (note: your implementation will work with Eko Notifications only in Production, not in sandbox/development)
Version 1.8 (2019-05-15)
API / Behavior Changes
Add new
GlobalBanError
:when a user is banned globally is automatically unregistered and the EkoChat sdk will be on a clean state. This event is sent to the
EkoClient
'sclientErrorDelegate
EkoChannel
has a newlastActivity
propertyFix register/unregister issue:
you can now use the same EkoClient to log in and log out multiple times with different users.
Improve documentation
Sample App Changes
Add possibility to login/logout with different users
ChannelListTableViewController
now displays channels typesAdd possibility to choose channel type when creating a new channel
Several minor improvements everywhere
Version 1.7 (2019-04-26)
API / Behavior Changes
EkoChannelRepository
replaces the functionchannelsForFilter(:tags:)
withchannelsForFilter(:includingTags:excludingTags:)
internal Realm objects are no longer exposed:
from this version there's no longer need for migrations when upgrading the SDK
actively purging Channel Memberships when new data comes from the server:
a new
EkoChannelMembership
collection observation is needed in order to to trigger this
Sample App Changes
update channel filtering functionality with both including and excluding tags
remove channel videos
improve set channel tags UI/UX
improve
MembershipListTableViewController
improve
EkoMessagesTableViewController
Breaking Changes
EkoChannelRepository
replaces the functionchannelsForFilter(:tags:)
withchannelsForFilter(:includingTags:excludingTags:)
remove
markReadWithCompletion
function fromEkoMessageEditor
. UseEkoChannelParticipation
start/stop reading functions insteadchange
channelsForFilter
behaviour:a channel is now matched when it contains ANY tag listed in
includingTags
, and contains NONE of the tags listed inexcludingTags
. Previously a channel would match only if it contained ALL the listed tags. If you would like the old behaviour, please create your own filter on top of this method.
Version 1.6 (2019-04-12)
API / Behavior Changes
EkoChannelMembership
now behaves correctly
Sample App Changes
add Channel Membership List View
multiple minor improvements
Version 1.5.2 (2019-04-01)
Xcode 10.2 and Swift 5 support
Version 1.5.1 (2019-02-27)
Xcode 10.1 and iOS 12.1 SDK support
Version 1.5 (2018-12-14)
API / Behavior Changes
add
isFlagByMeWithCompletion:
method in bothEkoUserFlagger
andEkoMessageFlagger
Breaking Changes
EkoUserFlagger
andEkoMessageFlagger
now require, respectively, aEkoUser
and aEkoMessage
on initialisation
Sample App Changes
improve flag feature
Version 1.4 (2018-11-30)
API / Behavior Changes
add back iOS 9 support
new Flag feature:
flags are reported to the Admin panel for moderator to see
EkoMessage
andEkoUser
expose a newNSUInteger
flagCount
propertyIntroducing
EkoMessageFlagger
andEkoUserFlagger
objects, both of which have two methods:flagWithCompletion:
unflagWithCompletion:
EkoChannel
'stags
property is now indexed (which results in slower writes, bigger realm database, and much faster searches)
Breaking Changes
remove
EkoMessage
'sEkoMessageEditor
shortcut: this way the EkoMessage is a pure model. If you'd like this feature back, please write your own extension/category/wrapper around it.
Sample App Changes
Add Flag feature in Sample App
Version 1.3 (2018-11-02)
Breaking Changes
remove completion blocks from
EkoChannelParticipation
's start/stop reading methodsEkoChannelRepository
createChannel
requires a newtags
parameter (read the below for more info)EkoChannelRepository
channelsForFilter
requires a newtags
parameter (read the below for more info)
API / Behavior Changes
automatically call
startRead
upon re-gaining connection with the server if the connection was ever lost (the SDK will keep track of the channels currently being read until the app is killed)improve Realm migration logic
introducing
EkoChannel
'stags
property:this property is an optional array of strings that the developer can use for whatever purpose.
Via the
EkoChannelRepository
you can now:create a channel with tags via the
createChannel:displayName:type:metadata:users:
methodquery/filter channels by tags via the
channelsForFilter:tags:
methodset tags on existing channels (each call will overwrite the previous channels tags) via the
setTagsForChannel:tags:completion:
method
improve channels cleanup on startup: at every startup, the data of channels where the user is not a member is deleted
internal fixes and enhancements
Sample App Changes
implement channel tags usage in sample app
implement channels filtering in sample app
Version 1.1.1 (2018-10-29)
Xcode 10 support
Version 1.1 (2018-10-16)
add possibility to get channels based on the user membership (all channels, channels where user is member, channels where user is not a member) via the
EkoChannelRepository
'schannelsForFilter:
add
membership
property inEkoChannelMembership
object: the possible values aremember
,none
(not member), andbanned
;expose the device user
membership
above also in the associatedEkoChannel
object via the newcurrentUserMembership
property;expose
totalUnreadCount
in theEkoChannelRepository
new live reading feature:
every user can now start and stop reading a channel (via the
EkoChannelParticipation
'sstartReadingWithCompletion
/stopReadingWithCompletion
methods), this will automatically update the unread count for said channel when receiving new messages for that channel.
implement
unread count
, both total and per channel, andmembership type
usage in sample appinternal fixes and enhancements
Version 1.0.1 (2018-07-10)
Internal changes (for gathering statistics on sdk version usage)
Version 1.0 (2018-07-10)
Last updated