-
-
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
senderhave been replaced withsenderIdandsenderDisplayName. See better documentation forsenderproperty, 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
imageViewobjects for message bubble image views. ThemessageBubbleImageViewof aJSQMessagesCollectionViewCellis now part of the cell prototype. This change is reflected inJSQMessagesCollectionViewDataSourceas 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
imageViewobjects for avatar image views. TheavatarImageViewof aJSQMessagesCollectionViewCellis now part of the cell prototype. This change is reflected inJSQMessagesCollectionViewDataSourceas 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
JSQMessagesCollectionViewtypingIndicatorDisplaysOnLefttypingIndicatorMessageBubbleColortypingIndicatorEllipsisColorloadEarlierMessagesHeaderTextColor
- REFACTOR
JSQMessagemodel object, now an abstract base class (removedtextproperty) - REFACTOR
JSQMessageDataprotocol- (NSString *)textmethod now optional- added optional
- (id<JSQMessageMediaData>)mediamethod
- NEW
JSQMessageMediaDataprotocol - similar toJSQMessageData, but for media data - NEW
JSQTextMessage: concrete model object, represents text messages - NEW
JSQMediaMessage: concrete model object, represents media messages - UPDATE
JSQMessagesCollectionViewCellnow has amediaViewproperty - REFACTOR Demo project heavily refactored
- UPDATE
JSQMessagesCollectionViewCellnow has amediaCellReuseIdentifiermethod - UPDATE
JSQMessagesViewControllernow hasoutgoingMediaCellIdentifierandincomingMediaCellIdentifierproperties - NEW
JSQPhotoMediaItemmodel object for representing photo media - NEW
JSQMessagesMediaPlaceholderViewview for async loading media - NEW
JSQLocationMediaItemmodel object for representing location media
6.0-beta1 released
- Performance improvements and minor fixes (progress on Scrolling perfomance on iOS8 #492)
- UPDATE added
isMediaMessagetoJSQMessageData(Update JSQMessageData protocol with "isMedia" method #530) - Use
MKMapSnapshotterfor 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
JSQMessageBubbleImageFactorycan 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
JSQSystemSoundPlayer2.0.0
6.0-beta4 released
- Closed Update bubble image assets #524
- NEW
JSQVideoMediaItemmodel 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
JSQMessagesMediaViewBubbleImageMaskerfor 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
JSQMediaItemclass. For your media items you should now specifyappliesMediaViewMaskAsOutgoing = { YES / NO }
6.0-beta6 released
- REFACTOR Remove previously added
JSQTextMessageandJSQMediaMessagein favor of absorbing them into the originalJSQMessageclass. Closes Refactor JSQMessage object hierarchy? #602