MessageKit v1.0.0-beta.1 Release Notes

Release Date: 2018-05-03 // about 6 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.

    0️⃣ 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

    • 🛠 Fixed equality checking on MessagesCollectionViewLayoutAttributes.
      #593 by @zhongwuzw, @SD10