jessesquires / JSQMessagesViewController

An elegant messages UI library for iOS

Home Page:https://www.jessesquires.com/blog/officially-deprecating-jsqmessagesviewcontroller/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[8.0 Release] on-going release notes

jessesquires opened this issue · comments

⚠️ Edit: Last updated Dec 30, 2016

Release 8.0

In this issue I'll keep up-to-date, on-going release notes for the 8.0 release.

You can also see the CHANGELOG.

Expected due date

¯\_(ツ)_/¯

What is the expected release date for 8.0? Good question! 😄 Right now, this is TBD. This project is not something I can work on full-time, unfortunately. A realistic timeline would be sometime during the first half of 2017.

High-level goals for this release

  • Drop iOS 7
  • Refactor/reorganize project to use CocoaTouch frameworks
  • Clean up directory structure.
    • Separate framework from example project.
    • Don't require CocoaPods for example app to work, instead link framework.
    • Follow this example.
  • Better Swift inter-op. Nullability, generics, etc.
  • Move to a section-based layout, instead of item-based
  • Remove dependencies.
    • Remove OCMock dependency in Test Target. There are better ways to test. (#1388)
    • Remove JSQSystemSoundPlayer. This isn't really essential to the library, and clients can easily include this library separately. It simply doesn't provide much value in being a dependency.
  • Use TTTAttributedLabel instead of UITextView. This is another reason to remove the dependencies above. I want to minimize external dependencies as much as possible. Adding dependencies takes serious consideration as it can impact clients greatly. However, TTT will provide many benefits.
  • Kill the "massive view controller" anti-pattern. This exists for legacy reasons. Early goals of the library focused on easy of use. Since then, the view controller has grown too large.
    • Pull out the data source into a separate object
    • Pull out all cell configuration into cell factory objects
    • Pull out other view configuration into configuration objects
    • etc.
  • Unit test everything. Currently at ~66% test coverage. Goal is to get to > 80%. The refactoring above should help achieve this.
  • Demo project: re-write in Swift. Provide only a Swift demo.

Issues

For issues see the 8.0.0 milestone.

Development

Development is happening on the develop branch.

Any hotfixes for 7.3.0 should be merged to the release_7.3 branch.


Release notes:

TODO:

This issue is locked for collaborators to keep it clean and focused. For discussion, please go to #1336. 😄

/cc: @eliburke just FYI 😄

Here are some things I'm interested in adding:

  • carthage support
  • keep the ObjC demo. i'm willing to maintain it. I don't think Swift adaptation is high enough yet, and it will likely cut down on questions
  • an optional double-height inputToolbar that supports multiple input media types. I think Messenger does a great job with their input UI
  • multi-select support for the collection view
  • outlets for some of the base cell's auto layout constraints, or a better way to (more easily) control alignment of e.g. avatars, labels, etc.
  • a way to center the left/right cells' bubbles (keeping avatar support as-is) or an official centered / "system message" cell (either with no avatar, or support for placing it on either side)
  • way to support "grouped bubbles" like iMessage and Messenger, where multiple bubbles from the same sender are closer together

👍 👍 👍 👍

@eliburke updated original comment.

  • To facilitate contributions (and better accommodate existing PRs) this work is happening on develop.
  • I cut a release_7.3 branch in case we need to hotfix anything serious

If a 7.3 hotfix is needed, we'll merge that branch into master, then tag and release. Otherwise, master should remain untouched until 8.0 is ready on develop. Then we'll merge develop into master. 😄

Hello everyone!

I'm sorry to inform the community that I'm officially deprecating this project. 😢 Please read my blog post for details:

http://www.jessesquires.com/blog/officially-deprecating-jsqmessagesviewcontroller/

Thus, I'm closing all issues and pull requests and making the necessary updates to formally deprecate the library. I'm sorry if this is unexpected or disappointing. Please know that this was an extremely difficult decision to make. I'd like to thank everyone here for contributing and making this project so great. It was a fun 4 years. 😊

Thanks for understanding,
— jsq