launchify 1.0.8 copy "launchify: ^1.0.8" to clipboard
launchify: ^1.0.8 copied to clipboard

PlatformAndroid

Customizable Flutter widgets for launching WhatsApp, Maps, and social links with app checks and RTL support.

1.0.8 #

  • Critical Stability & Performance Fixes:

    • Fixed static mutable debounce state — replaced single shared timestamp with per-widget debounce keying (debounceKey parameter), eliminating race conditions when multiple LaunchLink widgets are tapped simultaneously on screen.
    • Fixed LaunchPreviewCard silent failures — added browser User-Agent header and manual redirect following so OpenGraph metadata now loads correctly from Instagram, LinkedIn, Twitter/X, and other CDN-protected sites. Added 10-minute in-memory cache to eliminate redundant fetches.
    • Fixed stale iOS app availability cache — replaced unbounded static cache with TTL-based _CacheEntry (5-minute expiration). Added IosAppLauncher.clearCache() for manual invalidation.
    • Eliminated all debugPrint calls in release builds — wrapped all logging with kDebugMode guards or assert() blocks, reducing binary size and preventing log spam in production.
    • Fixed double-launch bugbypassAppDetectionAndFallback path now returns immediately on success instead of falling through and launching the URI a second time.
    • Fixed duplicate universalLinkDomains set — extracted to a single _universalLinkDomains constant shared between launchAction and _launchUrl.
  • Architecture & API Improvements:

    • Fixed fragile URI type inference in LaunchLinkRow — added explicit launchType parameter (automatically set by LaunchLink). Facebook share URLs and similar edge cases no longer mis-classify as LaunchType.share. Inference logic retained as backward-compat fallback and improved to correctly identify X/Twitter, Threads, GitHub.
    • Wired UrlValidator into launch pathUrlValidator.isValid() is now enforced in _launchUrl, blocking launches when the URI scheme is not in allowedSchemes.
    • Integrated LaunchAnalytics into launch flowLaunchAnalytics.trackLaunch() fires automatically on every successful launch. Added setExternalTracker() for persistent analytics (Firebase, Amplitude, etc.). Exported LaunchAnalytics publicly from launchify.dart.
    • Documented CalendarEvent.attendees as no-op — clarified in doc comments that the Google Calendar URL scheme does not support pre-populating attendees; field is reserved for future native API integration.
  • Code Quality & Maintainability:

    • Eliminated widget tree duplication — extracted shared button/row content into _ButtonContent / _RowContent private widgets used by both animated and non-animated paths in LaunchActionButton and LaunchLinkRow.
    • Replaced no-op AnimatedContainer with real press animation — both action buttons and link rows now use AnimatedScale for tactile 96–97% shrink-on-press feedback (wrapped via _PressScaleWrapper / _AnimatedRow).
  • Dependency Updates:

    • Updated share_plus: ^12.0.1 → ^13.0.0 (latest stable, v13 API already in use).
    • Updated flutter_svg: ^2.2.4 → ^2.3.0 (latest).
    • All transitive dependencies resolved to latest compatible versions.

1.0.7 #

  • Stability & Maintenance:
    • Resolved build errors related to code syntax and missing constructor initializers.
    • Fixed an asset loading crash in the example application by correctly bundling test_icon.svg.
    • Updated share_plus integration to use the latest API, eliminating all deprecation warnings.
    • Fully optimized for a 140/140 pub.dev score with comprehensive documentation for all public components.
    • Ran a project-wide code formatting and analysis pass for maximum standards compliance.
    • Shortened package description in pubspec.yaml to meet pub.dev requirements.

1.0.6 #

  • API Improvements:
    • Added direct String value support to LaunchActionButton, LaunchLinkRow, and LaunchLink.
    • Streamlined URI handling by automatically parsing values if uri is not provided.
  • Performance & Performance:
    • Optimized iOS app installation checks using parallel URI checks and caching for faster response times.
    • Implemented internal tap debouncing (500ms) to prevent multiple app launches.
    • Enhanced Universal Link detection to force LaunchMode.externalApplication for supported domains (Instagram, TikTok, etc.).
  • New Features:
    • Introduced LaunchPreviewCard for rich social media link previews with OpenGraph metadata fetching.
    • Added support for new LaunchType values: LaunchType.x and LaunchType.threads.
    • Expanded UrlBuilder with specialized deep link generators.
  • Documentation & Growth:
    • Added a comprehensive comparison table to README.md.
    • Optimized SEO keywords for better pub.dev discoverability.
  • Stability & Maintenance:
    • Resolved build errors related to code syntax and missing constructor initializers.
    • Fixed an asset loading crash in the example application by correctly bundling test_icon.svg.
    • Updated share_plus integration to use the latest API, eliminating all deprecation warnings.
    • Fully optimized for a 140/140 pub.dev score with comprehensive documentation for all public components.
    • Ran a package-wide code formatting and analysis pass for maximum stability and standards compliance.

1.0.5 #

  • Updated dependency versions
  • Improved README documentation
  • Minor documentation refinements

1.0.4 #

  • TikTok Fixes and Enhancements:
    • Improved TikTok launching logic, bypassing installation checks.
    • Ensured TikTok video links open directly as videos.
    • Refactored to use user-provided value directly for TikTok URLs, removing custom URI building.
  • Social Media Platform Enhancements (Instagram, LinkedIn, Facebook, GitHub):
    • Prioritized direct web launch for these platforms.
    • Fixed issues with Instagram, LinkedIn, and Facebook buttons.
    • Refactored to use user-provided value directly for all content types (profiles, posts, comments, etc.), removing custom URI building.
  • General Fixes and Improvements:
    • Resolved "Invalid SVG data" exceptions by adding an errorBuilder to SvgPicture.asset.
    • Addressed and cleared use_build_context_synchronously warnings in launcher.dart.
    • Fixed an issue where shareText was empty for LaunchType.share.
    • Refactored url_builder.dart and launcher.dart to streamline URI handling.

1.0.3 #

  • App Awareness: Implemented functionality to check if a target application is installed before attempting to launch.
    • Added checkAppInstallation (boolean) and appStoreLink (string) to LaunchOptions for configuration.
    • Utilizes external_app_launcher for robust Android app installation checks via package names.
    • Leverages existing canLaunchUrl and IosAppLauncher for iOS app scheme validation.
    • Presents an "App Not Installed" dialog if the app is not found, offering options to:
      • Navigate to the provided appStoreLink.
      • Fallback to the web URI (if available and fallbackMode is prompt).
      • Cancel the launch action.
  • Dependency Update: Integrated external_app_launcher package for cross-platform app installation checks.

1.0.2 #

  • New Launch Types: Added support for Instagram, TikTok, LinkedIn, Calendar, and generic Share actions.
  • Dynamic URI Builders: Implemented robust and dynamic URI builders for all LaunchType values, ensuring correct formatting and encoding.
  • Multi-Choice Launch Dialogs: Introduced LaunchOptions to enable multi-choice dialogs for actions that can be handled by multiple apps (e.g., opening a map, sharing content).
    • Android: Utilizes android_intent_plus for native app choosers.
    • iOS: Provides a custom dialog to select from available apps.
  • Backward Compatibility: Maintained backward compatibility with existing launch methods by inferring LaunchType from Uri when LaunchOptions are not explicitly provided.
  • Widget Integration: LaunchOptions can now be passed through LaunchLink, LaunchActionButton, and LaunchLinkRow widgets to configure multi-choice behavior directly from your UI.
  • Dependency Updates: Updated android_intent_plus to version 4.0.3 to resolve build issues and improve compatibility.
  • Code Stability: Addressed BuildContext usage across async gaps in launcher.dart to prevent potential runtime errors.
  • Example Update: The example application now includes a demonstration of the multi-choice dialog functionality for map launching.

1.0.1 #

  • Advanced Icon Support: Added support for local assets and network images (PNG, JPG, SVG).
  • Enhanced Styling: Added iconWidth, iconHeight, and iconFit (BoxFit) properties to LaunchStyle for precise image control.
  • Smart Visibility: Added showIcon property to toggle icons on/off.
  • Improved developer logging and error validation.

1.0.0 #

  • Initial release of Launchify.
  • Support for multiple launch types: WhatsApp, Email, Phone, SMS, Website, Map, and Custom URLs.
  • Two display modes: ActionButton (URL hidden) and LinkRow (URL visible).
  • Comprehensive LaunchStyle for UI customization.
  • Built-in RTL/LTR support with automatic layout flipping.
  • Safe URL validation and security checks using canLaunchUrl.
  • Full API documentation and comprehensive example application.
6
likes
160
points
38
downloads

Documentation

API reference

Publisher

verified publishergreelogix.com

Weekly Downloads

Customizable Flutter widgets for launching WhatsApp, Maps, and social links with app checks and RTL support.

Repository (GitHub)
View/report issues

Topics

#ui #widget #url-launcher #whatsapp #email

License

MIT (license)

Dependencies

android_intent_plus, cupertino_icons, external_app_launcher, flutter, flutter_localizations, flutter_svg, html, http, intl, platform, share_plus, url_launcher

More

Packages that depend on launchify