flutter_chat_core
Core package for Flutter chat apps, complementing flutter_chat_ui. Contains models and core functionality. #chat #ui
2.9.0
54K downloads/mo
#1427 most downloaded on pub.dev
flyerhq/flutter_chat_ui
What this package is like to depend on
Last release 8 months ago
06 Dec 2025
Ships unpredictably
gaps range from 8 days to 4 months
Nearly every release is documented
notes for 30 of 30 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
30 releases · first in 2024
1 release in the last 12 months
see the full history below
Release timeline
30 releases · Aug 2024 to Dec 2025Releases
latest 30-
2.9.006 Dec 2025Release notes
Open source →This release introduces two-sided pagination. You can now load newer messages using the new
onStartReachedcallback, whileonEndReachedcontinues to work for older messages. For pagination to work correctly, messages should be inserted instantly, without animation.To allow this and offer more granular control, a new optional
animatedparameter has been added to all controller operations exceptupdate. This is not a breaking change, but if you'd like to use it, you can update your controller like so:insertMessage(Message message, {int? index}) // ❌ insertMessage(Message message, {int? index, bool animated = true}) // ✅ ChatOperation.insert(..., animated: animated) // add animated to insert operations insertAllMessages(List<Message> messages, {int? index}) // ❌ insertAllMessages(List<Message> messages, {int? index, bool animated = true}) // ✅ ChatOperation.insertAll(..., animated: animated) // add animated to insertAll operations removeMessage(Message message) // ❌ removeMessage(Message message, {bool animated = true}) // ✅ ChatOperation.remove(..., animated: animated) // add animated to remove operations setMessages(List<Message> messages) // ❌ setMessages(List<Message> messages, {bool animated = true}) // ✅ ChatOperation.set(..., animated: animated) // add animated to set operations
As an optional improvement, you can use this parameter to disable animations when clearing the chat, which is now the default behaviour in the example apps.
ChatOperation.set(messages, animated: messages.isEmpty ? false : animated) // inside the controller
⚠️ There is a small potential breaking change:
LoadMoreNotifierwas updated for two-sided loading. If you used a custom LoadMore widget and usedLoadMoreNotifierto measure its height, that logic has been removed as it was not used. Additionally, the internal property_isLoadingis now_isLoadingOlder, and_isLoadingNewerhas been added.2.8.1
- FIX: composer inputClearMode and fix custom editing controller. (b4872190)
Release notes
Open source → -
2.8.026 Jul 2025 -
2.7.119 Jul 2025 -
2.7.012 Jul 2025 -
2.6.227 Jun 2025Release notes
Open source →-
Use utf8 codec to parse chinese symbols
-
Update dependencies. Requires Dart >= 2.15.1.
-
-
2.6.109 Jun 2025 -
2.6.008 Jun 2025Release notes
Open source →⚠️ Breaking Changes ⚠️
onMessageTapandonMessageLongPressaddedBuildContextas a first parameter, so if you had something like this:void _handleMessageLongPress( Message message, { int? index, LongPressStartDetails? details, })
replace it with this:
void _handleMessageLongPress( BuildContext context, Message message, { int? index, LongPressStartDetails? details, })
- FIX: scrollToIndex does not work when starting with an empty list #793. (1948c1f5)
- FEAT: add sendButtonVisibilityMode and allowEmptyMessage to the composer. (7a496607)
- FEAT: add method OnMessageDoubleTapCallback; add param BuildContext context for OnMessageTapCallback and OnMessageLongPressCallback (#817). (6fe68886)
2.5.3
- FIX: update dependencies. (a8ff8b57)
2.5.2
- Update a dependency to the latest release.
2.5.1
- FIX: re-enable composer blur. (791f7308)
Release notes
Open source →-
Updated dependencies (requires Dart >=2.14.0)
-
Fixed Android example. Thanks @rvndsngwn for reporting!
-
2.5.008 Jun 2025Release notes
Open source →- FIX: introduce status field back (#809). (1aadf874)
- FIX: prevent sending blank messages (#808). (6fbcfc73)
- FIX: perf improvements (#807). (71e6d690)
- FIX: allow to set a different color in Composer when not empty (#794). (788ca0c6)
- FEAT: time and status grouping same minute fix #764 (#792). (61c04002)
Release notes
Open source →-
Update to Flutter 2.5
-
Rename REGEX_EMAIL to regexEmail and REGEX_LINK to regexLink
-
2.4.026 May 2025Release notes
Open source →⚠️ Breaking Changes ⚠️
All message builders will also provide
isSentByMeandgroupStatusnow. Just pass{ required bool isSentByMe, MessageGroupStatus? groupStatus, }after the index param. It is fine not to use these fields if not needed.
-
2.3.022 May 2025Release notes
Open source →2.3.0
⚠️ Breaking Changes ⚠️
-
Renamed LinkPreview → LinkPreviewData
-
LinkPreview.imageUrl→LinkPreviewData.image.url -
Both
LinkPreviewData.image.widthandLinkPreviewData.image.heightare now required
2.2.4
- FIX: add physics param to the ChatAnimatedList(Reversed). (ede3a170)
- FIX: emptyChatList not clickable (#787). (88937baa)
2.2.3
2.2.2
2.2.1
- FIX: list rebuilding when keyboard opens/closes. (48e28e7e)
-
-
2.2.119 May 2025 -
2.2.017 May 2025 -
2.1.211 May 2025 -
2.1.104 May 2025 -
2.1.003 May 2025 -
2.0.202 May 2025Release notes
Open source →-
Fix paddings for an empty preview data
-
Limit number of images parsed
-
Fix regex
-
-
2.0.102 May 2025 -
2.0.001 May 2025Release notes
Open source →- BREAKING : onPreviewDataFetched and previewData are now required. In the previous version, a link preview used on a ListView resulted in a fetch call every time the preview was appearing on a screen.
-
0.0.1201 May 2025Release notes
Open source →⚠️ Breaking changes ⚠️
- Updated the
Messagemodel to renameparentIdtoreplyToMessageId - The
createdAtfield is now optional in the message model - The
sendingfield has been removed from the message model; instead, you can setsending: truein the metadata of the Message model to achieve the same functionality. - The
isOnlyEmojiproperty has been removed from the text message model; to indicate that a message contains only emojis, useisOnlyEmoji: truein the metadata of the text message. - The
firstNameandlastNamefields in theUsermodel have been consolidated into a singlenamefield for improved simplicity.
Other changes
- Introduced
MessageIDandUserIDtypedefs to provide clearer context, while maintaining their underlying type asStrings - Introduced
TextStreamMessagetype to support text streaming - Added
textStreamMessageBuilderto theBuildersclass to support text streaming UI widget
- Updated the
-
0.0.1120 Apr 2025 -
0.0.1006 Apr 2025Release notes
Open source →⚠️ Breaking changes ⚠️
- Requires Freezed 3.0.0
- Replace
statusfield with a computed getter that determines message state based on lifecycle timestamps (createdAt,deletedAt,sending,failedAt,sentAt,deliveredAt,seenAt,updatedAt). This enables granular message history tracking and status transitions, matching the behavior of popular chat applications. - Rename
overlaytohasOverlayinImageMessage
Other changes
- Downgrade
intlpackage version for better compatibility with other Flutter packages
-
0.0.925 Mar 2025Release notes
Open source →- Added system message for displaying system notifications and events in chat
-
0.0.816 Mar 2025Release notes
Open source →- Add
UserCacheclass to store resolved users for synchronous access, preventing flickering in recycled widgets by caching user data with LRU eviction strategy - Add
ScrollToMessageMixinto enable programmatic scrolling in chat list:scrollToMessage(messageId): Scrolls to a specific message by IDscrollToIndex(index): Scrolls to a message at a specific index- Both methods support customizable animation duration, curve, alignment and offset
- Can be used directly through any
ChatControllerinstance - See the pagination example in the example project for usage details
- Add validation to prevent duplicate message IDs
- Add
-
0.0.718 Feb 2025 -
0.0.616 Feb 2025Release notes
Open source →⚠️ Breaking changes ⚠️
- Changed signature of
chatMessageBuilderto includeisRemovedandgroupStatusparameters. - Changed
imageUrltoimageSourcefor theUsermodel. Change is necessary to show that not only remote URLs are supported but also local assets.
- Changed signature of
-
0.0.504 Feb 2025Release notes
Open source →⚠️ Breaking changes ⚠️
🔄 Core Changes:
author(typeUser) is replaced withauthorId(typeString) for simpler user management- All
DateTimeproperties now use milliseconds instead of microseconds for JSON serialization
🎨 Theme Simplification: Theme has been streamlined to 3 key parameters:
colors- Uses Material 3 semantic names (e.g.primary,onPrimary,secondary) making it easy to apply color schemestypography- Follows Flutter'sTextThemesemantic naming conventionsshape- Controls border radius of all messages (rounded vs square messages)
✨ Enhanced Customization:
- Individual widget customization available through the
buildersparameter - Example:
loadMoreBuilder: (context) => LoadMore(color: Colors.red)overrides theme colors - Full widget customization possible by returning custom widgets from builders
-
0.0.402 Jan 2025Release notes
Open source →- Added
isOnlyEmojiparameter toTextMessage. - Message builders now include the message index in their parameters.
- Reverted
withValuestowithOpacityto resolve a compatibility issue.
- Added
-
0.0.328 Dec 2024Release notes
Open source →- Added
customMessageBuilderfor building custom messages - Added
overlayparameter toImageMessage - Themes:
- Added
ImageMessageTheme(replacingimagePlaceholderColor) - Updated
InputTheme(addingtextFieldColor) - Updated
ScrollToBottomTheme - Updated
TextMessageTheme
- Added
- Added
UploadProgressMixinfor handling upload progress tracking
- Added
-
0.0.221 Oct 2024 -
0.0.117 Aug 2024Release notes
Open source →- Initial release
365
likes
150
points
67.7k
downloads
Documentation
API reference
Publisher
flyer.chat
Weekly Downloads
Metadata
Customizable link and URL preview extracted from the provided text with the ability to render from the cache. Ideal for chat applications.
Homepage
Repository (GitHub)
View/report issues
Contributing
License
MIT ( license )
Dependencies
flutter , flutter_chat_core , html , http , punycode , url_launcher
More
Packages that depend on flutter_link_previewer
← Metadata
365
likes
150
points
67.7k
downloads
Documentation
API reference
Publisher
flyer.chat
Weekly Downloads
Metadata
Customizable link and URL preview extracted from the provided text with the ability to render from the cache. Ideal for chat applications.
Homepage
Repository (GitHub)
View/report issues
Contributing
License
MIT ( license )
Dependencies
flutter , flutter_chat_core , html , http , punycode , url_launcher
More
Packages that depend on flutter_link_previewer
Back