Performance comparison of Flutter contact libraries across iOS and Android, tested with ~2,000 contacts on real devices.
| Metric | V2 vs V1 (iOS) | V2 vs V1 (Android) |
|---|---|---|
| Read Speed | 1.6–7x faster | 2–5x faster |
| Bulk Create | 4x faster | 5x faster |
| Bulk Delete | 34x faster | 140x faster |
Minimal fetch: ID + display name
◀───── faster slower ─────▶
flutter_contacts v2 █████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 117 ms
fast_contacts ██████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 127 ms
contacts_service_plus ████████████████████░░░░░░░░░░░░░░░ 462 ms
flutter_contacts v1 ███████████████████████████████████ 803 ms
Minimal fetch: ID + display name
◀───── faster slower ─────▶
fast_contacts ██████████░░░░░░░░░░░░░░░░░░░░░░░░░ 304 ms
flutter_contacts v2 ██████████████░░░░░░░░░░░░░░░░░░░░░ 424 ms
contacts_service_plus ██████████████████████░░░░░░░░░░░░░ 668 ms
flutter_contacts v1 ███████████████████████████████████ 1075 ms
The new architecture in V2 delivers consistent performance improvements across all use cases:
| Test Case | V1 | V2 | Speedup |
|---|---|---|---|
| Minimal (ID + display name) | 803 ms | 117 ms | 6.9x |
| Phones only | 1,181 ms | 188 ms | 6.3x |
| Basic info (name, phone, email, org) | 1,178 ms | 298 ms | 4.0x |
| With thumbnail | 1,218 ms | 168 ms | 7.3x |
| All info + thumbnail | 1,207 ms | 750 ms | 1.6x |
| All info + full-res photo | 1,218 ms | 781 ms | 1.6x |
| Test Case | V1 | V2 | Speedup |
|---|---|---|---|
| Minimal (ID + display name) | 1,075 ms | 424 ms | 2.5x |
| Phones only | 2,833 ms | 556 ms | 5.1x |
| Basic info (name, phone, email, org) | 2,823 ms | 731 ms | 3.9x |
| With thumbnail | 2,916 ms | 554 ms | 5.3x |
| All info + thumbnail | 3,051 ms | 987 ms | 3.1x |
| All info + full-res photo | 4,381 ms | 1,864 ms | 2.4x |
Creating and deleting 100 contacts:
Create 100 contacts (ms) Delete 100 contacts (ms)
◀── faster slower ──▶ ◀── faster slower ──▶
flutter_contacts v2 ██████░░░░░░░░░░░░░░░░░░░ 340 █░░░░░░░░░░░░░░░░░░░░░░░░ 101
contacts_service_plus █████████████████████████ 1435 ██████████████████████░░░ 3090
flutter_contacts v1 █████████████████████████ 1438 █████████████████████████ 3454
Create 100 contacts (ms) Delete 100 contacts (ms)
◀── faster slower ──▶ ◀── faster slower ──▶
flutter_contacts v2 █████░░░░░░░░░░░░░░░░░░░░ 548 █░░░░░░░░░░░░░░░░░░░░░░░░ 37
flutter_contacts v1 █████████████████████████ 2572 █████████████████████████ 5162
Not all contact libraries are created equal. Here's what each one offers:
| Feature | V2 | V1 | fast_contacts | contacts_service_plus |
|---|---|---|---|---|
| Read contacts | ✅ | ✅ | ✅ | ✅ |
| Create/Update/Delete | ✅ | ✅ | ❌ | ✅ |
| Bulk operations | ✅ | ✅ | ❌ | ✅ |
| Selective field loading | ✅ | ❌ | ❌ | ❌ |
| Thumbnail photos | ✅ | ✅ | ❌ | ✅ |
| Full-res photos | ✅ | ✅ | ❌ | ✅ |
| Contact groups | ✅ | ✅ | ❌ | ❌ |
| Accounts | ✅ | ✅ | ❌ | ❌ |
| Change notifications | ✅ | ✅ | ❌ | ❌ |
| vCard import/export | ✅ | ✅ | ❌ | ❌ |
| Sorted results | ✅ | ✅ | ❌ | ✅ |
| Contact filtering | ✅ | ✅ | ❌ | ❌ |
| SIM contacts | ✅ | ❌ | ❌ | ❌ |
| Blocked numbers | ✅ | ❌ | ❌ | ❌ |
| Profile (owner) | ✅ | ❌ | ❌ | ❌ |
| Ringtones | ✅ | ❌ | ❌ | ❌ |
| iOS & Android | ✅ | ✅ | ✅ | ✅ |
| macOS | ✅ | ❌ | ❌ | ❌ |
V2 is the recommended choice for most apps — it's fast, feature-complete, and actively maintained.
fast_contacts is a lightweight read-only alternative. Use it only if you need nothing beyond displaying names and phone numbers (no photos, no sorting, no write operations).
contacts_service_plus is a fork of the abandoned contacts_service. V2 is faster (21% on iOS, 59% on Android), has more features, and is actively maintained.
- iOS: iPhone 7, ~2,000 contacts
- Android: Pixel 6, ~2,000 contacts
- Runs: 5 iterations per test case, results averaged
flutter_contactsv2.x (latest)flutter_contactsv1.1.9+2 (previous major version)fast_contactsv3.1.3contacts_service_plusv1.0.6
- Minimal — ID and display name only
- Phones — ID, display name, phone numbers
- Basic Info — Name, phone, email, organization
- Thumbnail — Minimal + thumbnail photo
- Basic + Thumbnail — Basic info + thumbnail
- Basic + Full-Res — Basic info + full resolution photo
- All + Thumbnail — All properties + thumbnail
- All + Full-Res — All properties + full resolution photo
- Bulk CRUD — Create and delete 100 contacts
For detailed analysis, see:
results/analysis_ios.ipynb— Full iOS benchmark analysisresults/analysis_android.ipynb— Full Android benchmark analysisresults/benchmark_ios.csv— Raw iOS dataresults/benchmark_android.csv— Raw Android data
V2 is the clear winner for Flutter contact management:
| vs V1 | vs contacts_service_plus | vs fast_contacts |
|---|---|---|
| 3x faster reads | Always faster | Comparable speed |
| 5x faster creates | More features | Far more features |
| 100x faster deletes | Active maintenance | Full CRUD support |
Upgrade to V2 today for the best performance and the most complete feature set available in any Flutter contacts library.