Skip to content
This repository was archived by the owner on Aug 14, 2019. It is now read-only.
This repository was archived by the owner on Aug 14, 2019. It is now read-only.

RELEASE 6.0 — ongoing release notes #476

@jessesquires

Description

@jessesquires

Welcome to JSQMessagesViewController 6.0!

This issue serves to document ongoing and upcoming changes in release 6.0 of this library, which is scheduled to finally include media message support (#223), as well as many more exciting improvements. The goal is to release 6.0 by the end of September.

All development will take place on the release-6.0 branch. Feel free to checkout this branch at anytime, but be aware that it will be rapidly changing and will not be guaranteed to be 100% functional 100% of the time.

FAQs

Will this version of the library support iOS 8?
Yes. However, during development I will be targeting iOS 7. After iOS 8 is public, I will address any iOS 8-specific issues.

Will this version of the library support interoperability with Swift?
Yes. This library currently uses uses modern Objective-C and follows current best practices to facilitate Swift interoperability. However, no specific efforts will be made to support compatibility with Swift until it reaches 1.0.

What about iOS 8 frameworks?
Once iOS 8 is public and Cocoapods supports CocoaTouch Frameworks, this library will be distributed as such. It will also include a bridging header for interoperability with Swift.

Want to help?

Any and all feedback from the community will be greatly appreciated as we move forward with this release. Please let me know what you like, dislike, and what will or will not work for your specific uses of this library. Is that any documentation that doesn't make sense? Let me know. Is there an API that could be improved, or changed completely? Let me know.

Major API changes

Version 6.0 will not be backwards compatible with 5.x.x. I will be documenting all major library API changes below as they happen. Note, these will likely be brief as they are not intended to be a guide for migrating from 5.x.x to 6.0. This type of more in-depth documentation will happen at the time that 6.0 is released.

// Changes in JSQMessagesCollectionViewDataSource

// OLD
- (UIImageView *)collectionView:(JSQMessagesCollectionView *)collectionView bubbleImageViewForItemAtIndexPath:(NSIndexPath *)indexPath;

// NEW
- (id<JSQMessageBubbleImageDataSource>)collectionView:(JSQMessagesCollectionView *)collectionView messageBubbleImageDataForItemAtIndexPath:(NSIndexPath *)indexPath;
  • REFACTOR JSQMessagesBubbleImageFactory
  • RENAME JSQMessagesAvatarFactory --> JSQMessagesAvatarImageFactory
  • NEW JSQMessageAvatarImageDataSource Protocol: this new data source protocol replaces the use of imageView objects for avatar image views. The avatarImageView of a JSQMessagesCollectionViewCell is now part of the cell prototype. This change is reflected in JSQMessagesCollectionViewDataSource as well as JSQMessagesAvatarImageFactory. See Improve performance: new bubbleImage and avatarImage dataSource #319 for further details.
// Changes in JSQMessagesCollectionViewDataSource

// OLD
- (UIImageView *)collectionView:(JSQMessagesCollectionView *)collectionView avatarImageViewForItemAtIndexPath:(NSIndexPath *)indexPath;

// NEW
- (id<JSQMessageAvatarImageDataSource>)collectionView:(JSQMessagesCollectionView *)collectionView avatarImageDataForItemAtIndexPath:(NSIndexPath *)indexPath;
  • REFACTOR JSQMessagesAvatarImageFactory
  • REMOVE JSQMessagesViewController --> typingIndicatorColor
  • ADD JSQMessagesCollectionView
    • typingIndicatorDisplaysOnLeft
    • typingIndicatorMessageBubbleColor
    • typingIndicatorEllipsisColor
    • loadEarlierMessagesHeaderTextColor
  • REFACTOR JSQMessage model object, now an abstract base class (removed text property)
  • REFACTOR JSQMessageData protocol
    • - (NSString *)text method now optional
    • added optional - (id<JSQMessageMediaData>)media method
  • NEW JSQMessageMediaData protocol - similar to JSQMessageData, but for media data
  • NEW JSQTextMessage : concrete model object, represents text messages
  • NEW JSQMediaMessage : concrete model object, represents media messages
  • UPDATE JSQMessagesCollectionViewCell now has a mediaView property
  • REFACTOR Demo project heavily refactored
  • UPDATE JSQMessagesCollectionViewCell now has a mediaCellReuseIdentifier method
  • UPDATE JSQMessagesViewController now has outgoingMediaCellIdentifier and incomingMediaCellIdentifier properties
  • NEW JSQPhotoMediaItem model object for representing photo media
  • NEW JSQMessagesMediaPlaceholderView view for async loading media
  • NEW JSQLocationMediaItem model object for representing location media

6.0-beta1 released



6.0-beta2 released



6.0-beta3 released


  • Update JSQSystemSoundPlayer 2.0.0

6.0-beta4 released



6.0-beta5 released



6.0-beta6 released


Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions