ult_flutter_ui 0.1.1
ult_flutter_ui: ^0.1.1 copied to clipboard
A Flutter package for building beautiful chat UIs with support for text, images, voice messages, and more.
Chat UI #
A beautiful and feature-rich Flutter chat UI package that supports one-on-one and group chats with advanced features.
Features #
- π¬ One-on-one and group chat support
- π Message reactions with emoji
- β©οΈ Reply to messages functionality
- π Link preview for URLs
- π€ Voice messages support
- πΈ Image sharing capabilities
- π File sharing
- π¨ Custom message types
- β¨οΈ Typing indicators
- π‘ Reply suggestions
- β Message status indicators (sent, delivered, read)
- π― Highly customizable UI components
- π Plug-and-play backend support using Firebase
Installation #
Add this to your package's pubspec.yaml
file:
dependencies:
chat_ui: ^0.1.0
Usage #
Basic Usage #
import 'package:chat_ui/chat_ui.dart';
class MyChatScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Chat')),
body: ChatView(
currentUserId: 'user1',
groupId: 'group1', // Optional, for group chats
),
);
}
}
Customization #
ChatView(
currentUserId: 'user1',
showUserAvatars: true,
showUserNames: true,
primaryColor: Colors.blue,
secondaryColor: Colors.grey[300],
messageTextStyle: TextStyle(fontSize: 16),
replyTextStyle: TextStyle(fontSize: 14),
messageSpacing: 8.0,
messagePadding: EdgeInsets.all(12),
messageBorderRadius: BorderRadius.circular(16),
quickReplies: ['Hello!', 'How are you?', 'See you later!'],
onQuickReplySelected: (reply) {
// Handle quick reply selection
},
)
Custom Message Builder #
ChatView(
currentUserId: 'user1',
customMessageBuilder: (context, message, isMe) {
return Container(
// Your custom message widget
);
},
)
Custom Input Builder #
ChatView(
currentUserId: 'user1',
customInputBuilder: (context, controller) {
return Container(
// Your custom input widget
);
},
)
Features in Detail #
Message Types #
The package supports various message types:
- Text messages
- Image messages
- Voice messages
- File messages
- Custom message types
Message Status #
Messages can have different statuses:
- Sending
- Sent
- Delivered
- Read
- Failed
Reactions #
Users can react to messages with emojis. The reactions are displayed below the message.
Reply to Messages #
Users can reply to specific messages. The reply preview shows the original message and its sender.
Typing Indicators #
The package shows when someone is typing a message.
Quick Replies #
You can provide quick reply suggestions that users can tap to send.
Link Preview #
URLs in messages are automatically detected and made clickable.
Voice Messages #
Users can record and send voice messages by long-pressing the send button.
File Sharing #
Users can share files of any type.
Image Sharing #
Users can share images from their gallery.
Backend Integration #
The package is designed to work seamlessly with Firebase:
- Firebase Authentication for user management
- Cloud Firestore for real-time message storage
- Firebase Storage for media files
Contributing #
Contributions are welcome! Please feel free to submit a Pull Request.
License #
This project is licensed under the MIT License - see the LICENSE file for details.