-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
RELEASE 6.0 — ongoing release notes #476
Description
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.
- JSQMessageData Protocol: all instances of
sender
have been replaced withsenderId
andsenderDisplayName
. See better documentation forsender
property, change tosenderId
, addsenderDisplayName
#389 for further details. - REFACTOR
JSQMessageData
,JSQMessage
, and associated classes. - NEW JSQMessageBubbleImageDataSource Protocol: this new data source protocol replaces the use of
imageView
objects for message bubble image views. ThemessageBubbleImageView
of aJSQMessagesCollectionViewCell
is now part of the cell prototype. This change is reflected inJSQMessagesCollectionViewDataSource
as well asJSQMessagesBubbleImageFactory
. See Improve performance: new bubbleImage and avatarImage dataSource #319 for further details.
// 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. TheavatarImageView
of aJSQMessagesCollectionViewCell
is now part of the cell prototype. This change is reflected inJSQMessagesCollectionViewDataSource
as well asJSQMessagesAvatarImageFactory
. 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 (removedtext
property) - REFACTOR
JSQMessageData
protocol- (NSString *)text
method now optional- added optional
- (id<JSQMessageMediaData>)media
method
- NEW
JSQMessageMediaData
protocol - similar toJSQMessageData
, but for media data - NEW
JSQTextMessage
: concrete model object, represents text messages - NEW
JSQMediaMessage
: concrete model object, represents media messages - UPDATE
JSQMessagesCollectionViewCell
now has amediaView
property - REFACTOR Demo project heavily refactored
- UPDATE
JSQMessagesCollectionViewCell
now has amediaCellReuseIdentifier
method - UPDATE
JSQMessagesViewController
now hasoutgoingMediaCellIdentifier
andincomingMediaCellIdentifier
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
- Performance improvements and minor fixes (progress on Scrolling perfomance on iOS8 #492)
- UPDATE added
isMediaMessage
toJSQMessageData
(Update JSQMessageData protocol with "isMedia" method #530) - Use
MKMapSnapshotter
for location media items (Instead of using an MKMapView, use MKMapSnapshotter to display location preview #529) - Resolved [Springiness] Loading earlier messages results in garbled messages when using springiness #522
6.0-beta2 released
- Resolved replace stroked bubble assets in 6.0 #534
- REFACTOR
JSQMessageBubbleImageFactory
can now be initialized with custom images. See Refactor JSQMessageBubbleImageFactory to allow custom images #535 - Resolved Screen zooms and flickers on iPhone 6 when interactivePopGestureRecognizer begins #544
- Resolved contextViewWindowHeight is incorrect on iOS8 landscape #521
6.0-beta3 released
- Update
JSQSystemSoundPlayer
2.0.0
6.0-beta4 released
- Closed Update bubble image assets #524
- NEW
JSQVideoMediaItem
model object for representing video media (closes Media messages continued: add more concrete media items #504)
6.0-beta5 released
- NEW Localization! 🎉 Closes Localization #237
- NEW Allow using custom nibs, Use custom Nib with JSQMessagesViewController subclass #563
- NEW
JSQMessagesMediaViewBubbleImageMasker
for masking media views to look like message bubbles - NEW Mask media items as bubble images (Mask media message bubbles with bubble image (with "tail") #571), includes new abstract
JSQMediaItem
class. For your media items you should now specifyappliesMediaViewMaskAsOutgoing = { YES / NO }
6.0-beta6 released
- REFACTOR Remove previously added
JSQTextMessage
andJSQMediaMessage
in favor of absorbing them into the originalJSQMessage
class. Closes Refactor JSQMessage object hierarchy? #602