Skip to content

Rewriting JSQMessagesViewController #1

Closed

Description

@SD10

Hey everyone 😃 ,

After 4 long years of hard work and dedication, Jesse Squires recently deprecated one of the most widely used open source iOS projects - JSQMessagesViewController. I believe this project's popularity is evidence enough that the iOS community should continue moving it forward.

The current state of JSQMessageViewController is rock solid. It's been reiterated, battled tested over 4 years, and used by countless apps in production.

It's safe to say that JSQMessagesViewController will continue to serve the needs of developers for a great time to come, but before the day comes where this is no longer the case -- I propose we have a plan for moving forward.

My suggestions:

  • We rebrand the project as MessageKit.
  • The repository is hosted as an organization as opposed to under a personal account.

I think these two points are important to building an inclusive community where every contributor feels a sense of ownership, importance, and welcome.

  • We port the project to Swift.

While there's nothing wrong with Obj-C, I think this is a good opportunity to consider the future of iOS development and port the project to Swift. I believe a Swift codebase will encourage a greater number of contributors and bring fresh blood to the project.

  • We rally behind a centralized MessageViewController project for iOS.

Open source projects require an enormous amount of effort to maintain. Instead of building competing MessagesViewController, we should all come together to deliver the highest quality project we can on behalf of the iOS community.

Getting involved/other suggestions:

I remember at the old MessageKit repo there were countless comments from people willing to contribute.

I encourage everyone to share their thoughts and suggestions for the future of this project.

Please discuss any issues/ideas/concerns below.

Activity

  1. jyounus commented on Jul 17, 2017

    @jyounus
    Member

    I'd love to see the community come together on this and work on MessageKit with joined forces, rather than everyone working on their own implementation.

    I've secured the MessageKit organisation on Github. If there's enough interest from the community for this project, we can move this repo over there.

    For this project, I would really love to mimic the native iMessage app as much as possible. Swipe left to reveal timestamps, make the bubbles bounce when you scroll (UIDynamics), custom bubble effects like "Slam" etc. Basically keeping up with the iMessages app and having a modern UI.

    Of course it would be silly to try and replicate the iMessages app for v1 of this lib, that's why we need to finalise the big picture and then start prioritising.

    I know a lot of people would want to use something like ASDK/Texture. Personally I've never used it, so it would be good to get input from others.

    I personally would say we create MessageKit using simply UIKit. However I'm sure we could architect it in such a way, that it would be easy enough to replace the View part with anything else (I'm thinking of the "V" inside "VIPER" here).

    What are your thoughts on this?

  2. SD10 commented on Jul 18, 2017

    @SD10
    MemberAuthor

    @jyounus When you mentioned the MessageKit organization I thought you were talking about a webpage 😂 We would love to have that name for this project!

    I agree careful planning is important in regards to architecture. There might be a more idiomatic Swift architecture opposed to doing a direct rewrite from Obj-C.

    About mimicking iMessage, I'm only afraid of infringing on Apple. I believe users need to clearly recognize whether they're in iMessage or a MessageKit view controller.

    I've also considered using AsyncDisplayKit/Texture. I'd have to fully understand the implications of doing so and I am cautious about adding any form of dependencies to the project.

  3. SpaceDivePro commented on Jul 18, 2017

    @SpaceDivePro

    @SD10 Thanks for taking the initiative to start this lib, as someone who only added JSQMessagesViewController to my app at the start of the month I am keen to get something lined up for future builds.
    I am relatively new to development but I am very will to help where I can.
    In terms of mimicking iMessage I agree we want it to be distinct from Apple, however I think the user flow and keeping the basic inputs the same makes sense so that use is intuitive for the user.

  4. jyounus commented on Jul 18, 2017

    @jyounus
    Member

    @SD10 Ha no! I only have the Github org name reserved, not a domain name! :P

    Fair enough. I didn't really think it would be a problem, but who knows. Apple might have some patents on these new bubble effects they've introduced. :P

    Either way, we should still go for something that's modern and simple to use from a users perspective. Like @SpaceDivePro said, something that's familiar enough to users. We could leave out the bubble effects, but everything else should be fine imo.

    Keeping the number of external dependencies to a minimum would be ideal.

  5. jessesquires commented on Jul 18, 2017

    @jessesquires
    Member

    Hey all — I would strongly suggest adding everyone to https://github.com/messageKit and moving all conversations there. 😄 This will make everything much easier for the community to organize and get started on building something new. Then I can tweet out a link and update my blog post to point to this org as the single source of truth.

    @jyounus - Can you do this?

    Also, I've decided that if you'll add me to this org, I can help with some initial setup. I can provide logos, etc. if you'd like to keep the same "JSQ branding" (green message bubble, etc.)

  6. SD10 commented on Jul 18, 2017

    @SD10
    MemberAuthor

    @jessesquires Of course you're welcome at the new org and I would love the "JSQ branding". I was planning to ask for the green message bubble logo 😅 All of this sounds great.

    @jyounus When you get the chance can you transfer ownership of MessageKit or add Jesse and I as owners so we can transfer this repo there and provide some initial setup?

  7. jyounus commented on Jul 18, 2017

    @jyounus
    Member

    @SD10 @jessesquires done. Added you both as owners to the org. :)

  8. itolisto commented on Jul 19, 2017

    @itolisto

    Great initiative @SD10 I'm willing to help where I can. Glad to see everyone in the community has very interesting thoughts about the future of MessageKit and I'm pretty sure this is the beginning of, what it will be, the most used messaging library. Long live to JSQMessagesViewController, to the ones we used it, it will always be remembered, thank you @jessesquires

  9. bojanstef commented on Jul 19, 2017

    @bojanstef

    Oh I'm very much looking forward to contributing 😄

  10. coreywiley commented on Jul 19, 2017

    @coreywiley

    I'm also wanting to contribute! JSQMessagesViewController is a big part of my app and I have a vested interest making sure a version of it lives on. Big shout out to @jessesquires, thank you so much! Hopefully I can buy you a beer or two one day.

    In Jesse's blog post when talking about JSQMessagesViewController he said:

    ... and fix up some long-standing architectural issues.

    I'm very interested in Jesse's opinion for the architecture of MessageKit. An initial blueprint from the person who knows it best would be a great spark to the project.

  11. tapanprakasht commented on Jul 19, 2017

    @tapanprakasht
    Member

    @SD10 I would also like to be part of this initiative. :)

  12. NikolaySohryakov commented on Jul 19, 2017

    @NikolaySohryakov

    @SD10 I'd love to put some effort in contributing too.

  13. jessesquires commented on Jul 19, 2017

    @jessesquires
    Member

    @coreywiley i've commented at #2

  14. mding5692 commented on Jul 20, 2017

    @mding5692
    Member

    Would love to help out, JSQMessagesViewController is a large part of my current app so happy to put in the hours if need to.

  15. 10 remaining items

  16. dgaedcke commented on Jul 27, 2017

    @dgaedcke

    I'm not sufficiently familiar with JSQMessagesViewController to know how much of it overlaps with what they've already done in Chatto, but it might be useful if someone would list the goals for this project that are distinct from what Chatto has already built....

  17. SD10 commented on Jul 27, 2017

    @SD10
    MemberAuthor

    @mukyasa ASDK seems to be mentioned a lot. I'm fine with adding ASDK support as long as it's opt-in functionality. That being said, out of scope for v1.

  18. ingeniousgenius commented on Jul 29, 2017

    @ingeniousgenius

    I'd be up to contribute towards this. I just recently found JSQMessagesViewController and it was great. It came as a shock when I ran pod outdated to see that it had been deprecated but I agree a swift version would be ideal as it seems like the future for iOS development.

  19. CoolHandLuke88 commented on Aug 1, 2017

    @CoolHandLuke88

    Jesse did a amazing job and I would love to contribute to this project. I would love to help in these efforts. Not sure where to begin, but just let me know other wise when I get free time I will start going through current bug list.

  20. Finb commented on Aug 11, 2017

    @Finb

    Looks great! Is it easy to replace the JSQMessagesViewController in my project with MessageKit?

  21. iamagam commented on Aug 19, 2017

    @iamagam

    @SD10 JSQMessagesViewController is a part of my many app so happy to put in some efforts if needed to. Thanks @jessesquires for such a wonderful library.

  22. glennposadas commented on Aug 23, 2017

    @glennposadas

    Indeed, I commend @jessesquires for the much loved JSQMessagesViewController. Thanks be to @SD10 as well for initiating this project. :D

  23. akerenyi commented on Aug 24, 2017

    @akerenyi

    @SD10 I'm a junior-mid level iOS developer who would like to contribute to this project. This would be my first open-source project, but I am motivated and willing to dedicate time to this, so I finally give something back to the community.

  24. added a commit that references this issue on Jun 27, 2018
  25. added a commit that references this issue on Aug 15, 2018
  26. LilMoke commented on Jun 7, 2019

    @LilMoke

    Looks great! Is it easy to replace the JSQMessagesViewController in my project with MessageKit?

    I do not see any comments on this. Can you tell me if you ever migrated over to MessageKit? We need to update our chat from JSQMessagesViewController to something else. Was it hard to transition.

  27. kinoroy commented on Feb 19, 2020

    @kinoroy
    Member

    Closing since this discussion is long outdated

  28. added a commit that references this issue on Oct 11, 2022
  29. added a commit that references this issue on Feb 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions