at_follows_flutter 3.0.14 copy "at_follows_flutter: ^3.0.14" to clipboard
at_follows_flutter: ^3.0.14 copied to clipboard

A Flutter plugin project that provides a basic social "follows" functionality for atSigns. Provides a list of followers and following for atSigns with the option to unfollow them.

The Atsign FoundationThe Atsign Foundation

pub package pub points gitHub license

at_follows_flutter #

Introduction #

A Flutter plugin that provides a basic social "follows" functionality for atSigns. This plugin provides a list of followers and following for atSigns with the option to unfollow them.

Features #

In addition to providing the list of followers and following, this plugin:

  • Provides services to follow and unfollow.
  • Remove contact from followers list, manage list of followers, and list of following.

Get Started #

To get a basic overview of the atProtocol and it's packages. Please visit the atsign docs.

To use this package you must be have a basic setup of the atPlatform/at_app. Go here to get started.

Android #

Add the following permissions to AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera.flash" />

Also, update the Android version support in app/build.gradle:

compileSdkVersion 29 // And above

minSdkVersion 24
targetSdkVersion 29 // And above

iOS #

Add the following permission string to info.plist:

<key>NSCameraUsageDescription</key>
<string>The camera is used to scan QR code to pair your device with your atSign</string>

Also, update the Podfile with the following lines of code:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |config|
      config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
        '$(inherited)',
        ## dart: PermissionGroup.calendar
        'PERMISSION_EVENTS=0',

        ## dart: PermissionGroup.reminders
        'PERMISSION_REMINDERS=0',

        ## dart: PermissionGroup.contacts
        'PERMISSION_CONTACTS=0',

        ## dart: PermissionGroup.microphone
        'PERMISSION_MICROPHONE=0',

        ## dart: PermissionGroup.speech
        'PERMISSION_SPEECH_RECOGNIZER=0',

        ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
        'PERMISSION_LOCATION=0',

        ## dart: PermissionGroup.notification
        'PERMISSION_NOTIFICATIONS=0',

        ## dart: PermissionGroup.sensors
        'PERMISSION_SENSORS=0'
      ]
    end
  end
end

Plugin description #

Supports for single atSign follows feature. This plugin provides two screens:

  1. Follows screen - Displays all the atSigns that are being followed and followers of the given atSign. Unfollow button will remove the particular atSign from following whereas follow button adds the atSign to following list.

  2. Add atSign to follow - Scan the QR code of an atSign or type the atSign to follow.

Sample usage #

The plugin takes AtClientService instance to show the follows list of an atSign.

TextButton(
  color: Colors.black,
  onPressed: () {
    Navigator.push(
          ctxt,
          MaterialPageRoute(
              builder: (context) => Connections(
                  atClientserviceInstance: atClientServiceInstance,
                  appColor: Colors.blue)));
  },
  child: Text('AtFollows')
)
Plugin parameters
  1. atClientserviceInstance - to perform further actions for the given atSign.
  2. appColor - applies to plugin screens to match the app's theme. (This should be bright color as it takes white font over that. Defaults to orange).
  3. followerAtsignTitle - follower atSign received from app's notification
  4. followAtsignTitle - atSign followed from webapp.

Follow an atSign #

To follow an atSign, call the following method:

/// Get the AtFollowServices instance
AtFollowServices atFollowServices = AtFollowServices();
Future<bool> followAtSign(String atSign)async {
  /// ... YOUR CODE ... ///
  /// Call the follow() method to follow an atSign
  bool isFollowed = await atFollowServices.follow(atSign);
  return isFollowed;
}

Unfollow an atSign #

To unfollow an atSign, call the following method and pass the atSign to unfollow:

Future<bool> unfollowAtSign(String atSign)async {
  /// ... YOUR CODE ... ///
  /// Call the unfollow() method to unfollow an atSign
  bool isUnfollowed = await atFollowServices.unfollow(atSign);
  return isUnfollowed;
}

Remove an atSign from following list #

To remove an atSign from following list, call the following method and pass the atSign to remove:

Future<bool> removeFollower(String atSign)async {
  /// ... YOUR CODE ... ///
  /// Call the removeFollower() method to remove an atSign from following list
  bool isRemoved = await atFollowServices.removeFollower(atSign);
  return isRemoved;
}

Get the list of followers #

To get the list of followers, call the following method:

Future<AtFollowsList?> getFollowers()async {
  /// ... YOUR CODE ... ///
  /// Call the getFollowersList() method to get the list of followers
  AtFollowsList? followers = await atFollowServices.getFollowersList();
  return followers;
}

Get the list of following #

To get the list of following, call the following method:

Future<AtFollowsList?> getFollowings()async {
  /// ... YOUR CODE ... ///
  /// Call the getFollowingList() method to get the list of following
  AtFollowsList? following = await atFollowServices.getFollowingList();
  return following;
}
7
likes
140
pub points
21%
popularity

Publisher

verified publisheratsign.org

A Flutter plugin project that provides a basic social "follows" functionality for atSigns. Provides a list of followers and following for atSigns with the option to unfollow them.

Homepage
Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

at_client, at_client_mobile, at_commons, at_file_saver, at_lookup, at_server_status, at_utils, collection, flutter, flutter_local_notifications, permission_handler, provider, qr_code_scanner, url_launcher, webview_flutter

More

Packages that depend on at_follows_flutter