at_chat_flutter 3.0.6 icon indicating copy to clipboard operation
at_chat_flutter: ^3.0.6 copied to clipboard

A Flutter plugin project to provide a chat feature between @‎signs built on the @‎platform to any Flutter application.

pub package gitHub license

Overview #

The at_chat_flutter package is for Flutter developers who want to add peer to peer chat to their apps built on @‎platform.

This open source package is written in Dart, supports Flutter and follows the @‎platform's decentralized, edge computing model with the following features:

  • Cryptographic control of data access through personal data stores
  • No application backend needed
  • End to end encryption where only the data owner has the keys
  • Private and surveillance free connectivity
  • Peer to peer chat

We call giving people control of access to their data “flipping the internet” and you can learn more about how it works by reading this overview.

Get started #

There are three options to get started using this package.

1. Quick start - generate a skeleton app with at_app #

This package includes a working sample application in the Example directory that you can use to create a personalized copy using at_app create in four commands.

$ flutter pub global activate at_app 
$ at_app create --sample=<package ID> <app name> 
$ cd <app name>
$ flutter run

Notes:

  1. You only need to run flutter pub global activate once
  2. Use at_app.bat for Windows

2. Clone it from GitHub #

Feel free to fork a copy the source from the GitHub repo. The example code contained there is the same as the template that is used by at_app above.

$ git clone https://github.com/atsign-foundation/at_widgets.git

3. Manually add the package to a project #

Instructions on how to manually add this package to you project can be found on pub.dev here.

How it works #

Setup #

The chat service needs to be initialised. It is expected that the app will first create an AtClientService instance using the preferences and then use it to initialise the chat service.

initializeChatService(atClientManager, activeAtSign!,
        rootDomain: AtEnv.rootDomain);

Usage #

As a bottom sheet

FlatButton(
    onPressed: () {
        scaffoldKey.currentState
        .showBottomSheet((context) => ChatScreen());
    },
    child: Container(
        height: 40,
        child: Text('Open chat in bottom sheet'),
    ),
),

As a screen

class ThirdScreen extends StatefulWidget {
  @override
  _ThirdScreenState createState() => _ThirdScreenState();
}

class _ThirdScreenState extends State<ThirdScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Chat Screen')),
      body: ChatScreen(
        height: MediaQuery.of(context).size.height,
        incomingMessageColor: Colors.blue[100],
        outgoingMessageColor: Colors.green[100],
        isScreen: true,
      ),
    );
  }
}

Open source usage and contributions #

This is open source code, so feel free to use it as is, suggest changes or enhancements or create your own version. See CONTRIBUTING.md for detailed guidance on how to setup tools, tests and make a pull request.

4
likes
100
pub points
56%
popularity

Publisher

verified publisher iconatsign.org

A Flutter plugin project to provide a chat feature between @‎signs built on the @‎platform to any Flutter application.

Homepage
Repository (GitHub)
View/report issues

Documentation

Documentation
API reference

License

Icon for licenses.BSD-3-Clause (LICENSE)

Dependencies

at_client, at_client_mobile, at_common_flutter, at_commons, at_contact, at_lookup, file_picker, flutter

More

Packages that depend on at_chat_flutter