pub package gitHub license

Overview

The at_notify_flutter package is for Flutter developers who want to handle notifications in atProtocol apps.

This open source package is written in Dart, supports Flutter and follows the atPlatform'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
  • Send and receive notifications

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.

Get Started:

Initially to get a basic overview of the SDK, you must read the atsign docs.

To use this package you must be having a basic setup, Follow here to get started.

How it works

Setup

It is expected that the app will first authenticate an atsign using the Onboarding widget.

The notify service needs to be initialised with a required atClientManager, currentAtSign & atClientPreference.

initializeNotifyService(
      atClientManager,
      activeAtSign,
      atClientPreference,
    );

This package needs local notification permission:

IOS: (ios/Runner/AppDelegate.swift)

if #available(iOS 10.0, *) {
  UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
}

Android: (android/app/src/main/AndroidManifest.xml)

android:showWhenLocked="true"
android:turnScreenOn="true"

Usage

To notify an atsign with a message:

notifyText(
      context,
      currentAtsign,
      receiver,
      message,
    )

To see a list of past notifications:

  Navigator.push(
    context,
    MaterialPageRoute(
        builder: (context) =>
            NotifyScreen(notifyService: NotifyService())),
  );

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.

Libraries

at_notify_flutter
init_notify_service
notify_model
notify_screen
notify_service
A service to handle save and retrieve operation on notify
notify_utils
strings