A flutter plugin for retrieving, creating, saving, and watching contacts on native devices

Overview

flutter_contact

pub package Coverage Status

A Flutter plugin to access and manage the device's native contacts.

Usage

To use this plugin, add flutter_contact as a dependency in your pubspec.yaml file.
For example:

dependencies:  
    flutter_contact: ^0.6.1

Permissions

Android

Add the following permissions to your AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_CONTACTS" />  
<uses-permission android:name="android.permission.WRITE_CONTACTS" />  

iOS

Set the NSContactsUsageDescription in your Info.plist file

<key>NSContactsUsageDescription</key>  
<string>Your description of why you are requesting permissions.</string>  

Note
flutter_contact does not handle the process of asking and checking for permissions. To check and request user permission to access contacts, try using the following plugins: flutter_simple_permissions or permission_handler.

If you do not request user permission or have it granted, the application will fail. For testing purposes, you can manually set the permissions for your test app in Settings for your app on the device that you are using. For Android, go to "Settings" - "Apps" - select your test app - "Permissions" - then turn "on" the slider for contacts.

Unified vs Single contacts

There are two main entry points into the application: SingleContacts and UnifiedContacts. These share the same API and most of the underlying code, however:

  • SingleContacts will interact with the unlinked raw contacts on each platform
  • UnifiedContacts will interact with linked/aggregated contacts on each platform.

Memory Efficiency

This plugin tries to be memory and cpu friendly. It avoid loading your entire address book into memory, but rather provides some ways to iterate over contacts in a more memory friendly way:

Stream

import 'package:flutter_contact/contact.dart';  

// By default, this will loop through all contacts using a page size of 20.
await Contacts.streamContacts().forEach((contact) {
    print("${contact.displayName}");
});

// You can manually adjust the buffer size
Stream<Contact> contacts = await Contacts.streamContacts(bufferSize: 50);

Paging List

The second option is a paging list, which also uses an underlying page buffer, but doesn't have any subscriptions to manage, and has some other nice features, like a total count

import 'package:flutter_contact/contact.dart';

final contacts = Contacts.listContacts();
final total = await contacts.length;

// This will fetch the page this contact belongs to, and return the contact
final contact = await contacts.get(total - 1);

while(await contacts.moveNext()) {
    final contact = await contacts.current;
}

Example

// Import package  
import 'package:flutter_contact/contact.dart';  
  
// Get all contacts on device as a stream
Stream<Contact> contacts = await Contacts.streamContacts();  

// Get all contacts without thumbnail(faster)
Iterable<Contact> contacts = await Contacts.streamContacts(withThumbnails: false);
  
// Get contacts matching a string
Stream<Contact> johns = await Contacts.streamContacts(query : "john");

// Add a contact  
// The contact must have a firstName / lastName to be successfully added  
await Contacts.addContact(newContact);  
  
// Delete a contact
// The contact must have a valid identifier
await Contacts.deleteContact(contact);  

// Update a contact
// The contact must have a valid identifier
await Contacts.updateContact(contact);

/// Lazily fetch avatar data without caching it in the contact instance.
final contact = Contacts.getContact(contactId);
final Uint8List avatarData = await contact.getOrFetchAvatar();

Credits

This plugin was originally a fork of the https://pub.dev/packages/flutter_contact plugin, but has effectively been mostly rewritten (in part because it was ported to kotlin)

Comments
  • Merged in fixes to OffsetDateTime by SamiKouatli. Fixed Andorid API'a before 26.

    Merged in fixes to OffsetDateTime by SamiKouatli. Fixed Andorid API'a before 26.

    I pulled this change from SamiKouatli's fork and have been using it for a bit over two months in a non-production product. It solved the pre-API 26 issue for me. I am submitting the pull request for consideration, however, I am not an expert in this area and cannot guarantee its effectiveness at all API levels. Feedback is appreciated.

    Quoted from SamiKouatli's checkin: OffsetDateTime is available only for sdk version > 26 This modification allows us to use the plugin with older version of Android. However it might not be the clean and proper way to do it.

    opened by tkeithblack 6
  • no callback on Contacts.addContact(contact);

    no callback on Contacts.addContact(contact);

    In my project, when I call Contacts.addContact(contact), it is working ,but whether I use await or then, the code below / call back funtion is not being called. Also, no message is given in the console

    I wounder if you could check it.

    void xxx() async {
     print('start');
    await Contacts.addContact(contact);
    print('success');
    }
    
    opened by Mister-Hope 6
  • Please update dependencies for compatibility with Flutter 2.0/null safety packages

    Please update dependencies for compatibility with Flutter 2.0/null safety packages

    I've been upgrading many packages to the null safety versions. I ran across a couple of dependencies in flutter_contacts that cause conflicts. I think these would be very easy to bump.

    First, there is uuid ^2.2.2 which needs to update to uuid: ^3.0.1. NOTE: I noticed in the code that the only reference to UUID is in your test code, so you can probably move it out of the main dependencies section.

    Second is updating from sunny_dart: ^0.5.8+5 to sunny_dart: ^0.6.0+4

    Thanks for providing this very useful package!

    opened by tkeithblack 4
  • ContactDate not working in Android (

    ContactDate not working in Android ("value" field v.s. "date" field)

    Thank you for a great library!

    I use my Android phone (BlackBerry Priv; Android 6.0.1) to test my app that use flutter_contact 0.6.4. The app cannot get the birthday of people in the "BlackBerry Hub+ Contacts" (version 2.2034.1.8456, the default app pre-installed in the device). It has null for Contact.dates.

    I dug the flutter_contact's source code and found ContactDate.fromMap is expecting "date" key (_kdate) in a map but the map actually holds "value" key (screenshot below).

    Screen Shot 2020-10-30 at 8 24 06 PM

    Can this library support such contact? I'm happy to submit a pull request to support this.

    Trying to build the example project for Android

    I had to add android.useAndroidX=true to example/android/gradle.properties.

    > A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
       > Android resource linking failed
         /Users/suztomo/Documents/flutter_contact_sunnyapp/example/android/app/src/main/AndroidManifest.xml:17:5-36:19: AAPT: error: resource mipmap/ic_launcher (aka co.sunnyapp.flutter_contact_example:mipmap/ic_launcher) not found.
    
         /Users/suztomo/Documents/flutter_contact_sunnyapp/example/android/app/src/main/AndroidManifest.xml:20:9-34:20: AAPT: error: resource style/LaunchTheme (aka co.sunnyapp.flutter_contact_example:style/LaunchTheme) not found.
    
         /Users/suztomo/Documents/flutter_contact_sunnyapp/example/android/app/src/main/AndroidManifest.xml:27:13-29:66: AAPT: error: resource drawable/launch_background (aka co.sunnyapp.flutter_contact_example:drawable/launch_background) not found.
    
    opened by suztomo 4
  • Duplicate imports due to linked contacts for android

    Duplicate imports due to linked contacts for android

    Since flutter_contact (and contact_service) both use just the contact id on android they will pull in multiple contacts with the same id when contacts are linked. Are there any issues using the lookupKey instead? Anyone else here interested in this that would be willing to cooperate with me on a fix and a PR?

    opened by knyghtryda 4
  • Each page returns bufferSize + 1 contacts

    Each page returns bufferSize + 1 contacts

    Hello,

    When setting a bufferSize for listContacts() each page returns bufferSize+1 contacts. For example, the code below will return a list of 6 contacts instead of 5, with the 6th contact containing mostly blank fields.

    This is being run on Android 10 (API 29).

    final int bufferSize = 5;
    final pagingList = Contacts.listContacts(bufferSize: bufferSize);
    
    if(await pagingList.moveNextPage()) {
        final List<Contact> contacts = await pagingList.currentPage;
        for(int i =0; i < contacts.length; ++i) {
            final Contact contact = contacts[i];
            print('CONTACT ($i):\n${contact.toMap()}\n\n');
        }
    }
    

    flutter doctor

    [✓] Flutter (Channel stable, 1.20.4, on Mac OS X 10.15.6 19G2021, locale en-GB)
     
    [✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    [✓] Xcode - develop for iOS and macOS (Xcode 11.7)
    [✓] Android Studio (version 3.6)
    [✓] VS Code (version 1.49.1)
    [✓] Connected device (1 available) - Samsung Galaxy S9+
    
    • No issues found!
    

    Thanks

    opened by dere-app 3
  • Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/time/OffsetDateTime

    Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/time/OffsetDateTime

    Is this plugin require minSdkVersion 26? Can you make it compatible with minSdkVersion 21?

    E/AndroidRuntime(30313): Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/time/OffsetDateTime;
    E/AndroidRuntime(30313): 	at co.sunnyapp.flutter_contact.Contact.<init>(Contact.kt:33)
    E/AndroidRuntime(30313): 	at co.sunnyapp.flutter_contact.Contact.<init>(Contact.kt:45)
    E/AndroidRuntime(30313): 	at co.sunnyapp.flutter_contact.Resolver_extensionsKt.toContactList(resolver-extensions.kt:79)
    E/AndroidRuntime(30313): 	at co.sunnyapp.flutter_contact.FlutterContactPlugin.getContacts(FlutterContactPlugin.kt:112)
    E/AndroidRuntime(30313): 	at co.sunnyapp.flutter_contact.FlutterContactPlugin.access$getContacts(FlutterContactPlugin.kt:29)
    E/AndroidRuntime(30313): 	at co.sunnyapp.flutter_contact.FlutterContactPlugin$onMethodCall$1.invoke(FlutterContactPlugin.kt:44)
    E/AndroidRuntime(30313): 	at co.sunnyapp.flutter_contact.FlutterContactPlugin$onMethodCall$1.invoke(FlutterContactPlugin.kt:29)
    E/AndroidRuntime(30313): 	at co.sunnyapp.flutter_contact.PluginStubsKt$asyncTask$task$1.doInBackground(PluginStubs.kt:12)
    E/AndroidRuntime(30313): 	at co.sunnyapp.flutter_contact.PluginStubsKt$asyncTask$task$1.doInBackground(PluginStubs.kt:9)
    E/AndroidRuntime(30313): 	at android.os.AsyncTask$2.call(AsyncTask.java:305)
    E/AndroidRuntime(30313): 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    E/AndroidRuntime(30313): 	... 4 more
    E/AndroidRuntime(30313): Caused by: java.lang.ClassNotFoundException: Didn't find class "java.time.OffsetDateTime" on path: DexPathList[[zip file "/data/app/io.thedocs.android.chatChecklist-2/base.apk"],nativeLibraryDirectories=[/data/app/io.thedocs.android.chatChecklist-2/lib/arm64, /data/app/io.thedocs.android.chatChecklist-2/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
    E/AndroidRuntime(30313): 	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    E/AndroidRuntime(30313): 	at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
    E/AndroidRuntime(30313): 	at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    
    opened by fedotxxl 3
  • Update needed to use flutter_contact with flutter_local_notifications plugin

    Update needed to use flutter_contact with flutter_local_notifications plugin

    1. flutter_contact depends upon https://github.com/ericmartineau/flexidate (which no longer seem to exist).
    2. flexidate >=0.6.0+2 depends on timezone ^0.7.0
    3. flutter_local_notifications ^8.1.1+2 which depends on timezone ^0.8.0

    As a result flutter build leads into version solving failed.

    Any idea how to get past this?

    opened by abhinavsingh 2
  • Is avatar implemented?

    Is avatar implemented?

    I'm unable to set the avatar for any contact. I'm taking a look at the source code, and can't fine where exactly is the avatar saved. Is it implemented?

    opened by rmortes 2
  • Compile failed

    Compile failed

    run flutter pub upgrade then flutter build apk --profile --flavor offical

    flutter_contact: 0.8.1+2 Flutter Version: Any version.

    
    /C:/Users/Dylan/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_contact-0.8.1+2/lib/contact.dart:306:12: Error: The argument type 'Iterable<Item>' can't be assigned to the parameter type 'List<Item>?'.
     - 'Iterable' is from 'dart:core'.
     - 'Item' is from 'package:flutter_contact/contact.dart' ('/C:/Users/Dylan/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_contact-0.8.1+2/lib/contact.dart').
     - 'List' is from 'dart:core'.
              .notNull(),
               ^
    /C:/Users/Dylan/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_contact-0.8.1+2/lib/contact.dart:308:12: Error: The argument type 'Iterable<Item>' can't be assigned to the parameter type 'List<Item>?'.
     - 'Iterable' is from 'dart:core'.
     - 'Item' is from 'package:flutter_contact/contact.dart' ('/C:/Users/Dylan/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_contact-0.8.1+2/lib/contact.dart').
     - 'List' is from 'dart:core'.
              .notNull(),
               ^
    /C:/Users/Dylan/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_contact-0.8.1+2/lib/contact.dart:313:12: Error: The argument type 'Iterable<Item>' can't be assigned to the parameter type 'List<Item>?'.
     - 'Iterable' is from 'dart:core'.
     - 'Item' is from 'package:flutter_contact/contact.dart' ('/C:/Users/Dylan/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_contact-0.8.1+2/lib/contact.dart').
     - 'List' is from 'dart:core'.
              .notNull(),
               ^
    /C:/Users/Dylan/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_contact-0.8.1+2/lib/contact.dart:316:9: Error: The argument type 'Iterable<ContactDate>' can't be assigned to the parameter type 'List<ContactDate>?'.
     - 'Iterable' is from 'dart:core'.
     - 'ContactDate' is from 'package:flutter_contact/contact.dart' ('/C:/Users/Dylan/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_contact-0.8.1+2/lib/contact.dart').
     - 'List' is from 'dart:core'.
          ].notNull(),
            ^
    /C:/Users/Dylan/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_contact-0.8.1+2/lib/contact.dart:320:9: Error: The argument type 'Iterable<PostalAddress>' can't be assigned to the parameter type 'List<PostalAddress>?'.
     - 'Iterable' is from 'dart:core'.
     - 'PostalAddress' is from 'package:flutter_contact/contact.dart' ('/C:/Users/Dylan/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_contact-0.8.1+2/lib/contact.dart').
     - 'List' is from 'dart:core'.
          ].notNull(),
            ^
    /C:/Users/Dylan/AppData/Local/Pub/Cache/hosted/pub.dartlang.org/flutter_contact-0.8.1+2/lib/contact.dart:561:7: Error: A value of type 'Iterable<Map<String, String>>' can't be returned from a function with return type 'List<Map<Stri
    ng, String>>'.
     - 'Iterable' is from 'dart:core'.
     - 'Map' is from 'dart:core'.
     - 'List' is from 'dart:core'.
        ].notNull();
          ^
    
    
    FAILURE: Build failed with an exception.
    
    * Where:
    Script 'D:\Development\Flutter\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1035
    
    * What went wrong:
    Execution failed for task ':app:compileFlutterBuildOfficalProfile'.
    > Process 'command 'D:\Development\Flutter\flutter\bin\flutter.bat'' finished with non-zero exit value 1
    
    
    
    opened by wangbo4020 2
  • ios contact note don't show as expect.

    ios contact note don't show as expect.

    edit a contact with note:

    image

    and not show on contact info written by flutter_contact.

    image

    flutter code similar to flutter_contact sample demo.

    expect way to solve it or the reason about it?

    opened by hustjiangtao 2
  • CocoaPods' Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)

    CocoaPods' Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)

    Launching lib/main.dart on iPhone 12 Pro Max in debug mode... CocoaPods' output: ↳ Preparing Analyzing dependencies Inspecting targets to integrate Using ARCHS setting to build architectures of target Pods-Runner: (``) Finding Podfile changes A device_info A devicelocale A flutter_contact A flutter_native_timezone A get_ip A libphonenumber - Flutter - permission_handler Fetching external sources -> Fetching podspec for Flutter from Flutter -> Fetching podspec for device_info from .symlinks/plugins/device_info/ios -> Fetching podspec for devicelocale from .symlinks/plugins/devicelocale/ios -> Fetching podspec for flutter_contact from .symlinks/plugins/flutter_contact/ios -> Fetching podspec for flutter_native_timezone from .symlinks/plugins/flutter_native_timezone/ios -> Fetching podspec for get_ip from .symlinks/plugins/get_ip/ios -> Fetching podspec for libphonenumber from .symlinks/plugins/libphonenumber/ios -> Fetching podspec for permission_handler from .symlinks/plugins/permission_handler/ios Resolving dependencies of Podfile CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only performed in repo update [!] CocoaPods could not find compatible versions for pod "flutter_contact": In Podfile: flutter_contact (from .symlinks/plugins/flutter_contact/ios) Specs satisfying the flutter_contact (from.symlinks/plugins/flutter_contact/ios) dependency were found, but they required a higher minimum deployment target. /Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:317:in raise_error_unless_state' /Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:299:inblock in unwind_for_conflict' /Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:297:in tap' /Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:297:inunwind_for_conflict' /Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:682:in attempt_to_activate' /Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:254:inprocess_topmost_state' /Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolution.rb:182:in resolve' /Library/Ruby/Gems/2.6.0/gems/molinillo-0.8.0/lib/molinillo/resolver.rb:43:inresolve' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.2/lib/cocoapods/resolver.rb:94:in resolve' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.2/lib/cocoapods/installer/analyzer.rb:1078:inblock in resolve_dependencies' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.2/lib/cocoapods/user_interface.rb:64:in section' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.2/lib/cocoapods/installer/analyzer.rb:1076:inresolve_dependencies' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.2/lib/cocoapods/installer/analyzer.rb:124:in analyze' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.2/lib/cocoapods/installer.rb:416:inanalyze' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.2/lib/cocoapods/installer.rb:241:in block in resolve_dependencies' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.2/lib/cocoapods/user_interface.rb:64:insection' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.2/lib/cocoapods/installer.rb:240:in resolve_dependencies' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.2/lib/cocoapods/installer.rb:161:ininstall!' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.2/lib/cocoapods/command/install.rb:52:in run' /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:inrun' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.2/lib/cocoapods/command.rb:52:in run' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.2/bin/pod:55:in<top (required)>' /usr/local/bin/pod:25:in load' /usr/local/bin/pod:25:in

    ' Error output from CocoaPods: ↳ [!] Automatically assigning platform iOS with version 9.0 on target Runner because no platform was specified. Please specify a platform for this target in your Podfile. See https://guides.cocoapods.org/syntax/podfile.html#platform. Error running pod install Error launching application on iPhone 12 Pro Max. Exited (sigterm)

    opened by ismailkhan885 1
  • Upgrade dependency to timezone 0.8.0 to avoid using dependency_overrides

    Upgrade dependency to timezone 0.8.0 to avoid using dependency_overrides

    While comment in #72 to use dependency_overrides in pubspec.yaml does allow one to continue to use flutter_contacts, I would suggest this issue stay open until fully resolved by upgrading or removing deprecated dependencies that flutter_contacts has.

    dependency_overrides:
      timezone: 0.7.0
    

    flutter_contacts relies on flexidate. flexidate is not compatible with timezone 0.8.0 and flutter_local_notfications 9.0.0 relies on timezone 0.8.0.

    flutter_local_notfications is a very popular app and it makes flutter_contacts hard to use when we have to resort to using dependency overrides, which is not a good practice.

    opened by Zelfapp 0
  • Upgrade Required - `flutter_contact` uses a deprecated version of the Android embedding.

    Upgrade Required - `flutter_contact` uses a deprecated version of the Android embedding.

    While using this library into our application - we keep getting warnings as follows:

    The plugin flutter_contact uses a deprecated version of the Android embedding. To avoid unexpected runtime failures, or future build failures, try to see if this plugin supports the Android V2 embedding. Otherwise, consider removing it since a future release of Flutter will remove these deprecated APIs. If you are plugin author, take a look at the docs for migrating the plugin to the V2 embedding: https://flutter.dev/go/android-plugin-migration.

    While the application runs well, I still wanted to bring the deprecation point to be noticed and upgrade if needed. Thanks

    opened by shivshnkr 6
  • docs: dependency version update

    docs: dependency version update

    Thank you for the compatible package. On the setup part of the package on the main documentation page, I noticed the dependency version was no the updated one which I thought might be confusing for some of the new package users. This PR is created after the dependency version update on the documentation page :)

    opened by sachin-dahal 0
Owner
Sunny
Sunny
I just designed this within 30 min after watching a video by tech school on YouTube.

nft_app A new Flutter application. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if t

ogunmolu oluwaseun 0 Dec 25, 2021
dna, dart native access. A lightweight dart to native super channel plugin

dna, dart native access. A lightweight dart to native super channel plugin, You can use it to invoke any native code directly in contextual and chained dart code.

Assuner 14 Jul 11, 2022
mypro immobilier app created to manage our real estate agency, we can store products, contacts and transactions..

mypro_immobilier A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started

soufiane bouchtaoui 1 Dec 11, 2021
Simple contacts app built with Flutter

myContacts A simple contacts app, built with Flutter. Features Create, Update, and Delete contacts. Search Functionality A user can filter through the

Brian Jr. 2 May 23, 2022
Create fake phone contacts, to do data-poisoning.

Fake Contacts Android phone app that creates fake contacts, which will be stored on your smartphone along with your real contacts. This feeds fake dat

Bill Dietrich 531 Dec 23, 2022
Dialogs for picking and saving files in Android and in iOS.

flutter_file_dialog Dialogs for picking and saving files in Android and in iOS. Features Supports Android (API level 19 or later) and iOS (10.0 or lat

KineApps 26 Dec 31, 2022
Notefy - Task Saving App for both Android and iOS

Assignment for Flutter Developers Goal of the assignment is to: -> Show the capa

Atabek 0 Jan 25, 2022
Simple tool to open WhatsApp chat without saving the number, developed using Google's Flutter Framework. for Android/ IOS/ Desktop/ Web

OpenWp Simple tool to open WhatsApp chat without saving the number Explore the docs » View Demo · Report Bug · Request Feature Table of Contents About

Swarup Bhanja Chowdhury 15 Nov 1, 2022
Flutter package for listening SMS code on Android, suggesting phone number, email, saving a credential.

Flutter Smart Auth From Tornike & Great Contributors Flutter package for listening SMS code on Android, suggesting phone number, email, saving a crede

Tornike 16 Jan 1, 2023
Life-saving helpers for working with JavaScript libraries when compiling Dart/Flutter to Web.

dartified Life-saving helpers for working with JavaScript libraries when compiling Dart/Flutter to Web. Features The functions included in this librar

Hammed Oyedele 2 Aug 19, 2022
A degital diary with key feature of saving your thoughts with image

localstore A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if th

null 1 Nov 13, 2021
Send-a-msg - Send message to WhatsApp without saving number

Send A Message Send Message to Whatsapp without saving number ToDo add logging s

Sujal 3 Apr 3, 2022
how to Integrating facebook audience network to flutter app for banner, interstitial, rewarded, native and native banner

fb_ads_flutter_12 A new Flutter project. Getting Started Watch the complite tutorial for integrating Facebook ads into the Flutter app in our Youtube

null 4 Nov 26, 2022
Flutter native ads - Show AdMob Native Ads use PlatformView

flutter_native_ads Flutter plugin for AdMob Native Ads. Compatible with Android and iOS using PlatformView. Android iOS Getting Started Android Androi

sakebook 64 Dec 20, 2022
react-native native module for In App Purchase.

Documentation Published in website. Announcement Version 8.0.0 is currently in release candidate. The module is completely rewritten with Kotlin and S

dooboolab 2.3k Dec 31, 2022
Flutter blue plus - Flutter plugin for connecting and communicationg with Bluetooth Low Energy devices, on Android and iOS

Introduction FlutterBluePlus is a bluetooth plugin for Flutter, a new app SDK to

null 141 Dec 22, 2022
A Flutter sensor plugin which provide easy access to the Pitch and Roll on Android and iOS devices.

Flutter Aeyrium Sensor Plugin Aeyrium Sensor Plugin A Flutter sensor plugin which provide easy access to the Pitch and Roll on Android and iOS devices

Aeyrium 58 Nov 3, 2022
Flutter plugin that saves images and videos to devices gallery

Gallery Saver for Flutter Saves images and videos from network or temporary file to external storage. Both images and videos will be visible in Androi

Carnegie Technologies 131 Nov 25, 2022