flutter_contacts
Fast, complete contact management for Android, iOS & macOS — all fields, groups, accounts, vCards, native dialogs, listeners, SIM contacts, and number blocking.
2.3.1
218K downloads/mo
#818 most downloaded on pub.dev
QuisApp/flutter_contacts
What this package is like to depend on
Last release 25 days ago
29 Jul 2026
Ships unpredictably
gaps range from 9 days to 1.5 years
Nearly every release is documented
notes for 50 of 50 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
55 releases · first in 2020
14 releases in the last 12 months
see the full history below
Release timeline
55 releases · Nov 2020 to Jul 2026Releases
latest 55-
2.3.129 Jul 2026Release notes
Open source →- Fix
showCreator()name prefill not displaying in some Android contact editors (e.g. Samsung) by passingInsert.NAMEinstead of aStructuredNamerow — thanks @CrashKiki for the fix (#241) and @Eunno-An for the report (#242).
- Fix
-
2.3.017 Jul 2026Release notes
Open source →- Android now returns the same contacts the system Contacts app displays,
instead of filtering on
IN_VISIBLE_GROUP = 1: contacts from sync adapters that don't mark them visible (e.g. MS365/Exchange) are included ingetAll(), operations by ID work regardless of visibility, and filters matching no contacts return none instead of all (#240). - Fix
showCreator()dropping the pre-filled photo on Android: the system editor ignores photos passed through the insert intent, so the photo is now applied to the contact after creation when the app holdsWRITE_CONTACTS(#242).
- Android now returns the same contacts the system Contacts app displays,
instead of filtering on
-
2.2.214 Jun 2026 -
2.2.105 Jun 2026Release notes
Open source →- Fix name updates writing to the wrong raw contact on Android contacts with multiple raw contacts (e.g. Google + WhatsApp): the name is now updated in place on the raw contact that already holds it, instead of the raw contact with the most properties (#236).
-
2.2.024 May 2026Release notes
Open source →- Round-trip unknown vCard properties via
contact.extras(#21). - Migrate Android plugin to Built-in Kotlin; requires Flutter 3.44+ (#234).
- Round-trip unknown vCard properties via
-
2.1.023 May 2026Release notes
Open source →FlutterContacts.native.showPicker()now returnsContact?(withidanddisplayNamealways populated) and accepts aproperties:set for additional fields. The picker itself remains permissionless on both platforms; on Android, requestingpropertiesrequiresREAD_CONTACTSand throws otherwise. Breaking: replaceawait …showPicker()with(await …showPicker())?.id(#232).- Dedupe phone numbers and emails returned by aggregated contacts on Android, keyed on normalized value + label (#229).
-
2.0.208 Apr 2026Release notes
Open source →- Fix Flutter SDK path resolution for FVM and IDE sync compatibility
The plugin's build.gradle assumed local.properties was always in
rootProject.projectDir, which breaks under FVM setups and certain IDE
sync scenarios where the working directory differs.Resolution now:
- Checks the flutter.sdk Gradle property (supports -Pflutter.sdk=)
- Walks up from project dir looking for local.properties
- Falls back to FLUTTER_ROOT environment variable
This makes the plugin build reliably across normal Flutter, FVM, and
IDE-triggered Gradle sync without requiring user workarounds.Co-Authored-By: Claude Opus 4.6 (1M context) [email protected]
- Add rootProject lookup and flutter-root property for pub-cache compatibility
When the plugin is resolved from ~/.pub-cache, walking up from
project.projectDir cannot reach the host app's local.properties.
Add rootProject.projectDir lookup and support for the flutter-root
Gradle property (passed by Flutter tooling during builds) to cover
this case.Co-Authored-By: Claude Opus 4.6 (1M context) [email protected]
- Bump version to 2.0.2
Co-Authored-By: Claude Opus 4.6 (1M context) [email protected]
Co-authored-by: Claude Opus 4.6 (1M context) [email protected]
-
2.0.120 Mar 2026 -
2.0.008 Mar 2026Release notes
Open source →- Stable 2.0 release. Includes all changes from 2.0.0-beta.1 through 2.0.0-beta.5.
-
2.0.0-beta.505 Mar 2026 pre-releaseRelease notes
Open source →- Relax Dart/Flutter version requirements
- Fix for older Android versions without Settings.getDefaultAccount()
-
2.0.0-beta.405 Mar 2026 pre-release -
2.0.0-beta.305 Mar 2026 pre-release -
2.0.0-beta.222 Jan 2026 pre-releaseRelease notes
Open source →- Expose Android identifiers and timestamp
- Add
androidLookupparameter toget()
-
2.0.0-beta.121 Jan 2026 pre-releaseRelease notes
Open source →- Complete rewrite with improved architecture and performance
- Full support for Android, iOS, and macOS platforms
- Added support for all contact fields including groups, accounts, and metadata
- vCard import/export support (v2.1, v3.0, v4.0)
- Native dialogs for contact creation, editing, viewing, and picking
- Contact change listeners for real-time updates
- SIM contacts support (Android)
- Number blocking support (Android)
- Ringtone management (Android)
- Profile/Me card support
- Bulk operations for creating, updating, and deleting contacts
- Account-aware contact management
-
1.1.929 Jul 2024Release notes
Open source →- Fix kotlin/android incompability issues with java 1.8 and java 17 (https://github.com/QuisApp/flutter_contacts/issues/142, https://github.com/QuisApp/flutter_contacts/issues/147, https://github.com/QuisApp/flutter_contacts/issues/158, https://github.com/QuisApp/flutter_contacts/issues/169, https://github.com/QuisApp/flutter_contacts/pull/170) - thanks to Valent1, Hirohumi, himsarevenus, PcolBP, and other contributors
- Fix openExternalInsert() crash - thanks rahulraj-idt
-
1.1.9+131 Jul 2024Release notes
Open source →- Fix openExternalInsert returning null on android (https://github.com/QuisApp/flutter_contacts/issues/100, https://github.com/QuisApp/flutter_contacts/issues/161)
-
1.1.9+205 Aug 2024Release notes
Open source →- Fix wrong namespace on android (https://github.com/QuisApp/flutter_contacts/issues/171) - thanks mattmapadmi
-
1.1.827 May 2024 -
1.1.715 Jul 2023Release notes
Open source →- Add feature to pre-populate fields in openExternalInsert() - thanks sakchhams
- Fix openExternalView and openExternalEdit on iOS (https://github.com/QuisApp/flutter_contacts/issues/91, https://github.com/QuisApp/flutter_contacts/issues/70)
- Support Gradle 8 (https://github.com/QuisApp/flutter_contacts/issues/123)
- Fix fetching notes on iOS - thanks starshipcoder and yassinsameh
- Fix bug with address label default on iOS - thanks MohamedAl-Kainai and yassinsameh
-
1.1.7+129 Jul 2023Release notes
Open source →- Fix for AGP <4.2 (https://github.com/QuisApp/flutter_contacts/issues/127) - thanks trfiladelfo
-
1.1.610 Feb 2023Release notes
Open source →- Update kotlin/gradle versions (https://github.com/QuisApp/flutter_contacts/issues/69)
-
1.1.522 Jun 2022 -
1.1.5+129 Oct 2022Release notes
Open source →- Fix null pointer error (https://github.com/QuisApp/flutter_contacts/pull/71 - thanks anggrayudi)
- Update README
-
1.1.401 May 2022Release notes
Open source →- Fix gradle compile error (https://github.com/QuisApp/flutter_contacts/issues/49)
-
1.1.322 Feb 2022Release notes
Open source →- Fix social media custom label bug (https://github.com/QuisApp/flutter_contacts/issues/42)
-
1.1.227 Dec 2021Release notes
Open source →- Read/write starred contacts on Android (https://github.com/QuisApp/flutter_contacts/issues/37)
- Fix vCard photo encoding (https://github.com/QuisApp/flutter_contacts/issues/34)
-
1.1.109 Sep 2021Release notes
Open source →- Fetch groups (iOS) / labels (Android) and containers (iOS) / accounts (Android) (https://github.com/QuisApp/flutter_contacts/issues/29)
- Ability to request read-only permissions (https://github.com/QuisApp/flutter_contacts/issues/25)
-
1.1.1+109 Sep 2021 -
1.1.1+210 Sep 2021 -
1.1.010 May 2021Release notes
Open source →- Add ability to open external contact app to view, edit, pick or insert contacts (https://github.com/QuisApp/flutter_contacts/issues/16)
-
1.1.0+130 May 2021 -
1.1.0+230 May 2021 -
1.1.0+330 May 2021 -
1.1.0+405 Sep 2021Release notes
Open source →- Load rawContact instead of contactId after update, since Android sometimes changes the contactId
-
1.0.011 Apr 2021Release notes
Open source →- Stable release 🎉
- Follow-up fix for https://github.com/QuisApp/flutter_contacts/issues/9
- Fix https://github.com/QuisApp/flutter_contacts/issues/14
-
1.0.0+102 May 2021Release notes
Open source →- Fix for permission handler on Android (https://github.com/QuisApp/flutter_contacts/pull/17) - thanks @scroollocker
- Fix type cast error on iOS 14.5 (https://github.com/QuisApp/flutter_contacts/issues/19) - thanks @jadasi
-
0.3.303 Mar 2021 -
0.3.3+118 Mar 2021 -
0.3.203 Mar 2021 -
0.3.103 Mar 2021 -
0.3.003 Mar 2021 -
0.2.201 Mar 2021Release notes
Open source →- Support for requesting permissions
- Option to return non-visible contacts on Android and raw contacts on Android/iOS (https://github.com/QuisApp/flutter_contacts/issues/5)
-
0.2.127 Feb 2021 -
0.2.024 Feb 2021Release notes
Open source →- Not backward compatible!
- Photo and thumbnail are now distinct fields
Event.dateis nowEvent.year,Event.month,Event.day- Convenience methods
contact.insert(),contact.update(),contact.delete() - Much more advanced vCard parsing and exporting (to version 3.0 and 4.0)
- We can now add multiple listeners
- Removed dependencies to
build_runnerandjson_serializable - Implemented
toString(),hashCodeandoperator==for contact and properties - Support for notes on iOS13+ by setting
FlutterContacts.config.includeNotesOnIos13AndAbove = true - Added tests
-
0.1.315 Feb 2021 -
0.1.214 Feb 2021Release notes
Open source →- Properly delete events on iOS (https://github.com/QuisApp/flutter_contacts/issues/2)
-
0.1.114 Feb 2021Release notes
Open source →- Fix date serialization on Android (https://github.com/QuisApp/flutter_contacts/issues/2)
-
0.1.014 Feb 2021Release notes
Open source →- Support for vCard parsing and exporting
- Add
pedanticstatic analyzer - Make default values non-const so they can be mutated
- Add tests
- Update dependencies
- Deduplicate events
- Rename
socialMedia.dart->social_media.dart
-
0.0.704 Jan 2021 -
0.0.631 Dec 2020Release notes
Open source →- Added normalized phone numbers (android only)
- Deduplicate phone numbers and emails by default
-
0.0.519 Dec 2020Release notes
Open source →- Improved README and dartdoc.
- Added option to
getFullContacts()with high-res photos. - Fixed bug on iOS where low-res photos were fetched instead of high-res and vice-versa.
- Better Kotlin null safety.
-
0.0.404 Dec 2020 -
0.0.324 Nov 2020 -
0.0.224 Nov 2020 -
0.0.124 Nov 2020