Maintenance concern: whatsapp_unilink appears unmaintained on pub.dev. Its latest release, 2.1.0, was published on November 20, 2022 — over three years without a new published version as of October 21, 2026. The pub.dev release history establishes the publication gap; it does not establish that the repository is abandoned or that existing links have stopped working.
DeeplinkX is a Flutter plugin for typed external-app actions, with native launch handling, installation checks, and configurable fallbacks. whatsapp_unilink is a Dart package that builds WhatsApp HTTP links. Its Flutter examples use a separate launcher such as url_launcher to open those links. Both can help developers prepare a phone-number chat or share text; DeeplinkX also exposes a dedicated WhatsApp username chat action. Sources: whatsapp_unilink README and DeeplinkX WhatsApp guide.
WhatsApp feature comparison
| Capability | DeeplinkX | whatsapp_unilink 2.1.0 |
|---|---|---|
| Phone-number chat with optional prefilled text | WhatsApp.chat(phoneNumber:, message:) | WhatsAppUnilink(phoneNumber:, text:) builds a link |
| Username chat with optional prefilled text | WhatsApp.chatByUsername(username:, message:) | No username parameter or dedicated action |
| Text sharing without a selected recipient | WhatsApp.shareText(text:) | Supply text and omit phoneNumber |
| Native launching | launchAction and launchApp manage native attempts | Open the HTTP link separately; the OS/browser determines handling |
| Installation check | isAppInstalled(WhatsApp()) | Not provided |
| Store fallback | Optional fallbackToStore: true | Implement app/store routing separately |
| Web fallback | Action-specific HTTP fallback | Produces the HTTP link itself |
| Disable store and web fallbacks | disableFallback: true on launch methods | No managed native/fallback sequence |
| Phone-number formatting | Supply international digits including country code, without + | Removes formatting and leading zeros; does not infer a country code |
| Plain Dart or server-side link generation | Flutter plugin | No Flutter-specific dependency; provides asUri() and toString() |
| Other external apps and stores | Shared typed API across supported providers | WhatsApp link builder |
This table compares the published competitor API with the DeeplinkX implementation and launch routing.
Start a WhatsApp chat by username in Flutter
Install DeeplinkX with flutter pub add deeplink_x, then use its typed username action in an asynchronous Flutter handler:
import 'package:deeplink_x/deeplink_x.dart';
final launched = await DeeplinkX().launchAction(
WhatsApp.chatByUsername(
username: 'example_user', // Replace with the recipient's username, without @.
message: 'Hello!',
fallbackToStore: true,
),
);
Phone-number chats and text sharing
Use WhatsApp.chat(phoneNumber: '1234567890', message: 'Hello!') to target a phone number, or WhatsApp.shareText(text: 'Hello!') to share text without selecting a recipient in your application. Pass each action to DeeplinkX().launchAction(...).
For these WhatsApp actions, DeeplinkX first attempts the native link when its installation check permits. If that fails, enabling fallbackToStore permits a matching store attempt. If that does not succeed, the action's web fallback is attempted. Store fallback defaults to false; disableFallback: true suppresses both store and web fallbacks. Configure native visibility and schemes using the WhatsApp setup guide. Native WhatsApp targets are Android, iOS, macOS, and Windows; web fallback is a separate path. Username availability depends on WhatsApp and the recipient’s setup; WhatsApp may ask for a username key. Supply the bare username without @. The recipient completes the conversation in WhatsApp.
Which package should you choose?
Choose DeeplinkX when your Flutter workflow needs typed WhatsApp phone-number or username actions, native launch handling, installation checks, or configurable store and web fallbacks. Its shared API also suits applications that open other supported social apps, maps, and stores.
Choose whatsapp_unilink when your requirement is to generate a shareable WhatsApp HTTP link, especially in a plain Dart project or server. It also provides phone-number cleanup that DeeplinkX's phone chat action expects callers to handle. Account for the publication gap when reviewing your dependency choices; an older release alone does not prove incompatibility.
This page is written by the DeeplinkX maintainer. It compares documented functionality and source at the versions above. Start with the DeeplinkX package and review the committed README comparison.