Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide a standardized UIKit for Skygear Chat #77

Closed
royuen opened this issue Jan 10, 2017 · 6 comments
Closed

Provide a standardized UIKit for Skygear Chat #77

royuen opened this issue Jan 10, 2017 · 6 comments
Assignees

Comments

@royuen
Copy link

royuen commented Jan 10, 2017

Could explore whether we could support Atlas by Layer or other UI libraries.

@royuen royuen added the Planned label Jan 10, 2017
@royuen royuen changed the title Port Atlas / other chat library to Skygear Provide a standardized UI kit for Skygear Chat Jan 10, 2017
@ben181231
Copy link
Contributor

Skygear Chat UI Research

Option 1: Use Atlas by Layer

Pros

  • The followings have been done by Atlas:
    • Conversation list view
    • Conversation view
    • Participant list view
    • Typing indication view (a subclass of UIViewController, don't know whether it matches the model in Skygear Chat)

Cons

  • All models and mechanisms are highly depends on LayerKit. Modification will involve many parts in the framework.
  • Message receipt user interface is not included in Atlas.

Refs.:

Option 2: Use JSQMessagesViewController

Pros

  • The followings have been included in the framework:
    • Basic data models (including avator, photo asset, video asset, message)
    • Display messages mechanism
    • Typing indicator user interface

Cons

  • The followings are not included in the framework:
    • Conversation list view
    • Participant list view
    • Message receipt

Refs.:

@royuen royuen changed the title Provide a standardized UI kit for Skygear Chat Provide a standardized UIKit for Skygear Chat Jan 11, 2017
@ben181231
Copy link
Contributor

ben181231 commented Jan 11, 2017

After discussion, we would try to use JSQMessagesViewController and implement the missing parts of the framework.

Tasks

  • Create an extension in SKYKitChat, called SKYKitChat/UI.

  • Implement Participant List View

    • UI
    • Avatar
    • Search user by username, suppose no more than one user will be found
    • Search user by email, suppose no more than one user will be found
    • Search user by name, can limit the user scope
  • Implement Conversation List View

    • Basic UI
    • Conversation title
    • Member count
    • Unread count
    • Avatar
  • Implement Conversation View

    • Setup UI
    • Fetch participants
    • Fetch messages
    • Subscribe new messages
    • Typing Indicator mechanism
    • Message Receipt mechanism
    • Make the view configurable
    • Configure Accessory Button

@ben181231
Copy link
Contributor

Currently, the views are implemented as iOS default tableView.

Participant List View

participants list view

Conversation List View

conversation list view

cheungpat added a commit to SkygearIO/chat-SDK-iOS that referenced this issue Jan 23, 2017
@ben181231
Copy link
Contributor

ben181231 commented Jan 25, 2017

After merging the PR Support for avatar, the user interface will be like:

Participant List View

participant list with avatar

Conversation List View

conversation list with avatar

cheungpat added a commit to SkygearIO/chat-SDK-iOS that referenced this issue Jan 26, 2017
@ben181231
Copy link
Contributor

Currently, basic UI of Conversation View is implemented.

conversation view

@royuen
Copy link
Author

royuen commented Feb 9, 2017

Update demo

  • Update Chat SDK
  • Use Participant List View from UIKit
  • Use Conversation View from UIKit
  • Use Conversation List View from UIKit
  • Update conversation detail view

Documentation

  • Update readme for basic usage

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants