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

🚀 v2 progress #646

Open
12 of 21 tasks
demchenkoalex opened this issue Oct 26, 2024 · 5 comments
Open
12 of 21 tasks

🚀 v2 progress #646

demchenkoalex opened this issue Oct 26, 2024 · 5 comments
Assignees

Comments

@demchenkoalex
Copy link
Member

demchenkoalex commented Oct 26, 2024

👋 Welcome! This document outlines the current progress of Flutter Chat UI v2. A development release is now available on pub.dev. While comprehensive documentation is still in progress, you can explore the included examples to see the new features in action. I am also thinking of creating a video demonstration to showcase all the exciting improvements in this version! ✨

Current Status ✨

Core Features:

  • 💬 Basic chat screen with message input bar
  • 📝 Text message support
    • Basic text messages
    • Markdown formatting
  • 🖼️ Image message support
    • Thumbhash and Blurhash support
    • Cross-platform caching via CrossCache package
    • CrossCache is very basic and requires more features like caching strategies, error handling and cache management
  • 🎮 ChatController for managing chat and messages
  • 📱 Flexible scroll view
    • Support for both reversed and normal scroll view
    • Scroll to bottom functionality (normal scroll view only)
  • 🎨 Rich theming capabilities
    • Theme constructor from ThemeData
    • Automatic light/dark mode switching
    • Simple font family customization
    • Full Builder-based customization
  • 🧩 Modular architecture
    • Lean core design
    • Optional message type packages
    • Easy custom implementations

Example Implementations:

  • 🌐 REST API integration (image upload coming soon)
  • 🤖 AI chat with Gemini
    • Includes scroll-to-top on message receive
  • 💾 Local storage examples
    • Sembast implementation
    • Hive implementation

🔄 Features from v1 that are not yet implemented

Message Core Features:

  • 🌐 Localization support
  • 📝 Message grouping
  • ⏰ Message timestamps
  • ✓ Message delivery/read statuses

Message Types:

  • 📎 File message support
  • 😀 Emoji-only messages
    🖼️ Image preview functionality - out of scope until there is a better image preview package, too complex to implement here

Visual Elements:

  • 👤 Message avatars
  • 📅 Date dividers
  • ⌨️ Typing indicator
  • 🔵 Unread message indicator
  • 🔗 Link preview

📝 Current Plan

🔄 All open issues from v1 will be closed and migrated to GitHub Discussions if not yet implemented. The unimplemented features listed above will also be tracked in Discussions.

⭐️ Priority will be given to essential features like:

  • 🌐 Localization
  • ⏰ Timestamps
  • ✓ Message statuses
  • 🤔 Probably something else from the list above

Additional features will be implemented based on:

  • 👍 Community upvotes in Discussions
  • 🤝 Community contributions
  • 🚨 Urgent requests from production users (depending on maintainer availability)
  • 💭 Maintainer preferences

Let me know if you have any questions or concerns.

@nbonamy
Copy link

nbonamy commented Nov 9, 2024

Hey thanks for the great library. Using the v2 for a project and it is working great. Some minor issues I am facing but I have been able to handle:

  • Building my own ChatInput so using inputBuilder. I am under the impression that for layout of the main screen to be properly calculated I have to use ChatInputHeightNotifier (in _updateInputHeight). But this is not "exported" so I need to import 'package:flutter_chat_ui/src/utils/chat_input_height_notifier.dart'; for which of course I get a warning. If I don't handle ChatInputHeightNotifier, the chat area goes behind my custom ChatInput.

  • I am also using a custom ChatController as I want to have my own data model for messages. In my custom ChatController I end up having to store all the flutter_chat_ui messages in case of update because of (I believe)

    . Maybe just checking id equality would be enough It will allow me to only save messages with my model and recreate flutter_chat_ui messages in List<Message> get messages on the fly.

Keep up the great work!

Screen.Recording.2024-11-08.at.21.59.34.mov

@demchenkoalex
Copy link
Member Author

Thank you @nbonamy! Would you mind raising a discussion with the same comment, I would like to ask a few questions there to see if I can do anything to improve things :)

@jackie-maxx
Copy link

can't wait ..... <3

@jesusmartinoza
Copy link

Wow! That video looks great!! 😍

@jackie-maxx
Copy link

A_creative_and_humorous_depiction_of_a_developer_e

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

4 participants