# jessesquires/jsqmessagesviewcontroller

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jessesquires-jsqmessagesviewcontroller).**

11,080 stars · 2,759 forks · Objective-C · NOASSERTION

## Links

- GitHub: https://github.com/jessesquires/JSQMessagesViewController
- awesome-repositories: https://awesome-repositories.com/repository/jessesquires-jsqmessagesviewcontroller.md

## Description

JSQMessagesViewController is a UIKit-based conversational UI framework and library for iOS. It provides a set of components for rendering interactive message streams, multimedia chat histories, and customizable input controllers within mobile applications.

The framework features a layout engine that calculates dynamic bubble dimensions and handles orientation-aware rendering. It includes a resizing text input area with a customizable toolbar for sending and formatting messages, as well as support for group conversations with multiple participants.

The library covers message rendering through branded visual styling, avatar visibility control, and localized metadata for timestamps. It integrates rich media and data detectors to create interactive text and supports customizable chat cells and bubble animations.

The project is implemented in Objective-C.

## Tags

### Mobile Development

- [iOS Chat UI Frameworks](https://awesome-repositories.com/f/mobile-development/ios-chat-ui-frameworks.md) — Provides a UIKit-based framework for building messaging screens with bubble layouts and dynamic input areas.
- [Conversational UI Components](https://awesome-repositories.com/f/mobile-development/ios-ui-components/conversational-ui-components.md) — Provides a set of components for displaying multimedia chat histories and interactive message streams.
- [Messaging Input Controllers](https://awesome-repositories.com/f/mobile-development/messaging-input-controllers.md) — Implements a resizing text field and toolbar for sending and formatting messages in a mobile application.

### User Interface & Experience

- [Chat Bubbles](https://awesome-repositories.com/f/user-interface-experience/chat-bubbles.md) — Calculates dynamic bubble dimensions and handles orientation-aware rendering within a UIKit environment.
- [Chat Message List Renderers](https://awesome-repositories.com/f/user-interface-experience/chat-message-utilities/chat-message-list-renderers.md) — Provides a collection of views for rendering a scrollable list of conversational messages with customizable bubbles.
- [Conversational UI Patterns](https://awesome-repositories.com/f/user-interface-experience/conversational-ui-patterns.md) — Implements design principles for a visual conversation stream supporting avatars and custom branded styles.
- [Dynamic Bubble Layouts](https://awesome-repositories.com/f/user-interface-experience/dynamic-bubble-layouts.md) — Provides a layout engine that calculates dynamic bubble dimensions based on text content and screen constraints using UIKit.
- [Message List Renderers](https://awesome-repositories.com/f/user-interface-experience/message-list-renderers.md) — Uses a scrolling table view to manage memory and render a sequential list of conversation bubbles.
- [Toolbar Button Customizations](https://awesome-repositories.com/f/user-interface-experience/action-toolbars/toolbar-button-customizations.md) — Allows developers to adjust input area buttons by swapping positions for languages or replacing default actions. ([source](https://github.com/jessesquires/JSQMessagesViewController/blob/develop/Documentation/faq.md))
- [Visual Style Customization](https://awesome-repositories.com/f/user-interface-experience/brand-specification-alignment/visual-style-customization.md) — Provides options to modify the appearance of chat bubbles and avatars to align with specific brand guidelines. ([source](http://jessesquires.github.io/JSQMessagesViewController))
- [Adaptive Conversation Views](https://awesome-repositories.com/f/user-interface-experience/chat-message-utilities/chat-message-list-renderers/adaptive-conversation-views.md) — Renders a conversational view that supports group chats and automatically adapts layouts across all device orientations. ([source](http://jessesquires.github.io/JSQMessagesViewController))
- [Custom Message Cells](https://awesome-repositories.com/f/user-interface-experience/editor-customization-tools/custom-cell-editors/custom-cell-styling/custom-message-cells.md) — Allows modifying the look and behavior of message cells or replacing them with custom cell prototypes. ([source](https://github.com/jessesquires/JSQMessagesViewController/blob/develop/Documentation/faq.md))
- [Delegate-Based](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/event-handling-architectures/event-handling/delegate-based.md) — Uses the iOS delegate pattern to route user interactions and lifecycle events to a separate controller.
- [Group Chat Interfaces](https://awesome-repositories.com/f/user-interface-experience/group-chat-interfaces.md) — Enables the management and display of messages from multiple participants within a single conversation view. ([source](http://jessesquires.github.io/JSQMessagesViewController))
- [Interface Layout Orientations](https://awesome-repositories.com/f/user-interface-experience/interface-layout-orientations.md) — Recalculates the placement and width of chat bubbles when the device rotates between portrait and landscape.
- [Auto-Resizing Input Areas](https://awesome-repositories.com/f/user-interface-experience/plain-text-input-fields/multiline-text-areas/auto-resizing-input-areas.md) — Provides a resizing text input area that supports custom toolbar buttons for sending and formatting messages. ([source](http://jessesquires.github.io/JSQMessagesViewController))

### Part of an Awesome List

- [Text Input Resizing](https://awesome-repositories.com/f/awesome-lists/devtools/text-inputs/text-input-fields/dynamic-height-adjustments/text-input-resizing.md) — Implements a text entry area that adjusts its height in real time as the user adds content.
- [Table And Collection Views](https://awesome-repositories.com/f/awesome-lists/devtools/table-and-collection-views.md) — Comprehensive UI library for chat interfaces.

### Graphics & Multimedia

- [Multimedia UI Integration](https://awesome-repositories.com/f/graphics-multimedia/multimedia-ui-integration.md) — Integrates interactive content and various media types within a chat stream using data detectors and flexible layouts.
- [Rich Media Integration](https://awesome-repositories.com/f/graphics-multimedia/rich-media-integration.md) — Integrates non-text content, media attachments, and data detectors to create interactive elements within the chat stream. ([source](http://jessesquires.github.io/JSQMessagesViewController))

### Networking & Communication

- [Interactive Messaging Content](https://awesome-repositories.com/f/networking-communication/interactive-messaging-content.md) — Integrates rich media and data detectors to create interactive links and phone number triggers within the message stream.
