github MessageKit/MessageKit 1.0.0-beta.1

latest releases: 4.2.0, 4.1.1, 4.1.0...
pre-release5 years ago

🎉 This version brings a huge number of API breaking changes necessary for performance and the longevity of this project. This also sets a baseline for stable MessageKit API.

Below we've included a changelog and we've tried our best to fully document all API changes. If you're having trouble migrating from an earlier version of MessageKit, please open a GitHub issue and we'll do our best to point you in the right direction.

This release would not have been possible without the help of @zhongwuzw 🙇 🙇 🙇.
He contributed a large number of bug fixes and performance improvements to get MessageKit to where it is today. I'd like to also thank the other core team members @nathantannar4 and @cwalo for their continued support. And of course thanks to the rest of the MessageKit contributors making this project possible 💯

Added

  • Breaking Change Added new MessagesDataSource delegate methods, numberOfSections(in) and numberOfItems(inSection:in).
    #601 by @SD10, @zhongwuzw.

  • Breaking Change Added new protocol MediaItem as the associated value for the
    MessageData.video and MessageData.photo cases.
    #587 by @SD10.

  • Breaking Change Added new protocol LocationItem as the associated value for
    the MessageData.location case.
    #587 by @SD10.

  • Breaking Change Added new DetectorType called .transitInformation to message label.
    #520 by @nosarj.

  • Breaking Change Added .custom(Any?) case to MessageData.
    #498 by @SD10.

  • Breaking Change Added .messageLabelTop case to AvatarPosition.Vertical enum.
    #596 by @zhongwuzw

  • Added CellSizeCalculator protocol that is responsible for sizing and configuring attributes of a MessageCollectionViewCell.
    #579 by @SD10.

  • Added MessageSizeCalculator, MediaMessageSizeCalculator, TextMessageSizeCalculator, and LocationMessageSizeCalculator
    classes that are responsible for sizing the MessagesCollectionViewCell types provided by MessageKit.
    #579 by @SD10.

  • Added three new methods cellTopLabelHeight(for:at:in), messageTopLabelHeight(for:at:in), and messageBottomLabelHeight(for:at:in) to MessagesLayoutDelegate.
    #580 by @SD10.

  • Added new class InsetLabel.
    #580 by @SD10.

  • Added new method configureMediaMessageImageView(_:for:at:in) to configure the UIImageView of a
    MediaMessageCell asynchronously.
    #592 by @zhongwuzw, @SD10

  • Added new MessageContentCell class and MessageReusableView class.
    #596 by @SD10.

Changed

  • Breaking Change Renamed MessageData enum to MessageKind and changed MessageType's data property name to kind.
    #658 by @zhongwuzw.

  • Breaking Change Changed the messageFooterView(for:in) and messageHeaderView(for:in) methods of
    MessagesDisplayDelegate by removing the message parameter.
    #615 by @SD10.

  • Breaking Change Changed the footerViewSize(for:in) and headerViewSize(for:in) methods of MessagesLayoutDelegate
    by removing the MessageType and IndexPath parameters and replacing them with a new section: Int parameter.
    #615 by @SD10.

  • Breaking Change The reuse identifiers of all MessageReusableViews and MessageCollectionViewCells have been
    changed to match their class name exactly.
    #615 by @SD10.

  • Breaking Change MessageHeaderView and MessageFooterView now subclass MessageReusableView class.
    #596 by @SD10.

  • Breaking Change Renamed MessageCollectionViewCell to MessageContentCell.
    The MessageCollectionViewCell class is now a bare bones subclass.
    #596 by @SD10.

  • Breaking Change Changed LabelAlignment to be a struct with properties of
    textAlignment: NSTextAlignment and textInsets: UIEdgeInsets to position the text in the cellTopLabel and cellBottomLabel.
    #580 by @SD10.

  • Breaking Change The type of cellTopLabel and cellBottomLabel has been changed to InsetLabel.
    #580 by @SD10.

  • Breaking Change Renamed cellTopLabel to messageTopLabel and renamed cellBottomLabel to messageBottomLabel.
    #659 by @SD10.

  • Breaking Change Renamed the didTapTopLabel and didTapBottomLabel methods of MessageCellDelegate to didTapMessageTopLabel and didTapMessageBottomLabel.
    #659 by @SD10.

  • Breaking Change Renamed cellBottomLabelAttributedText method of MessagesDataSource to messageBottomLabelAttributedText.
    #659 by @zhongwuzw.

  • The MessageData.emoji case no longer uses a default font of 2x the messageLabelFont size.
    You must now set this font explicitly through the emojiMessageSizeCalculator on MessagesCollectionViewFlowLayout.
    #530 by @SD10.

  • Changed the contentMode of the UIImageView for MediaMessageCell to be .scaleAspectFill.
    #587 by @SD10.

  • The result of the MessagesDisplayDelegate method textColor(for message:...) no longer applies to .attributedText case of MessageData.
    #625 by @cwalo.

  • Removed the explicit height constraint from the separatorLine in MessageInputBar.
    #667 by @zhongwuzw

Removed

  • Breaking Change Removed NSLayoutConstraintSet by changing access control from public to internal.
    #607 by @zhongwuzw.

  • Breaking Change Removed the showsDateHeaderAfterTimeInterval property of MessagesCollectionView.
    #615 by @SD10.

  • Breaking Change Removed the reuseIdentifer method from MessageCollectionViewCell, TextMessageCell,
    LocationMessageCell, MediaMessageCell, and MessageContentCell.
    #615 by @SD10.

  • Breaking Change Removed the CollectionViewReusable protocol.
    #615 by @SD10.

  • Breaking Change Removed MessageHeaderView and MessageFooterView in favor of MessageReusableView.
    #615 by @SD10.

  • Breaking Change Removed numberOfMessages(in) method of MessagesDataSource, instead please use numberOfSections(in) and numberOfItems(inSection:in).
    #601 by @SD10, @zhongwuzw.

  • Breaking Change Removed the messageLabelFont property from MessagesCollectionViewFlowLayout.
    You can now set this property through textMessageSizeCalculator property.
    #579 by @SD10.

  • Breaking Change Removed MessageDateHeaderView class in favor of using cellTopLabel.
    #659 by @zhongwuzw.

Fixed

Don't miss a new MessageKit release

NewReleases is sending notifications on new releases.