Search packages, repositories and app categories

chat_composer cover
Package detailsv1.0.3

chat_composer

A Flutter package for easy implementation of chat composer allows users to chat with Text, Audio, and Other Media.

AndroidiOS
30-day downloads
69
Likes
47
Pub points
130

Install package

flutter pub add chat_composer

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

ChatComposer is a Flutter package designed to simplify the integration of chat composition features in applications. It enables users to send messages using text, audio recordings, and other media types within a unified and customizable interface. Built with ease of use in mind, it supports both Android and iOS platforms, offering developers a streamlined way to enhance communication experiences. The package provides a responsive and extensible foundation for real-time messaging apps, making it ideal for social platforms, customer support tools, or collaborative environments.

Use cases

  • Real-time messaging apps
  • Customer support chat interfaces
  • Social media messaging
  • Collaborative workspaces
  • Voice-enabled chat features

Key features

  • Text message input
  • Audio recording support
  • Media attachment capabilities
  • Cross-platform compatibility (Android & iOS)
  • Customizable UI components

Suitable for

  • Developers building chat applications
  • Teams needing rich media messaging
  • Apps requiring voice-to-text communication
  • Mobile-first communication platforms
  • Projects with tight development timelines

Considerations

  • Requires platform-specific permissions for audio recording
  • May need additional styling for brand alignment
  • Depends on external dependencies for media processing
  • Limited out-of-the-box analytics or message history
  • Best suited for simple to moderately complex chat flows

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

chat_composer

pub package

A Flutter package for easy implementation of chat composer allows users to chat with Text, Audio, and Other Media.

Gif

Setup

Android

Permissions

    ...
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    ...
   <application

AndroidX

  1. Add the following to your "gradle.properties" file:
android.useAndroidX=true
android.enableJetifier=true
  1. Make sure you set the compileSdkVersion in your "android/app/build.gradle" file to 33 or higher:
android {
  compileSdkVersion 33
  ...
}
  1. Make sure you set the minSdkVersion in your "android/app/build.gradle" file to 18 or higher:
defaultConfig {
  minSdkVersion 18
  ...
}
  1. Make sure you replace all the android. dependencies to their AndroidX counterparts (a full list can be found here: https://developer.android.com/jetpack/androidx/migrate ).

IOS

I'm working on the iOS version until then you can support me by buying me a cup of coffee 🙂

Add dependency

dependencies:
  chat_composer: ^1.0.2 #latest version
Import
import 'package:chat_composer/chat_composer.dart';
Easy to use
ChatComposer(
    onReceiveText: (str) {
    print('TEXT : ' + str!);
    },
    onRecordEnd: (path) {
    print('AUDIO PATH : ' + path!);
    },
)
Attributes

leading: A widget to display before the [TextField].
actions: A list of Widgets to display in a row after the [TextField] widget.
onReceiveText: A callback when submit Text Message.
onRecordStart: A callback when start recording.
onRecordEnd: A callback when end recording, return the recorder audio path.
onRecordCancel: A callback when cancel recording.
onPanCancel: A callback when the user does not lock the recording or does not hold.
maxRecordLength: Audio max duration should record then return recorder audio path.

Buy Me A Coffee

Categories

Dependencies

Dependency list 7 items

Source repository

Projects using this package

No data available yet.