Skip to main content

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

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

1.0.9 #

  • Replace deprecated platform checks with Flutter platform detection, guarded on web.
  • Honor confirmation before social-link launches and provide English dialog text without requiring localization setup.
  • Report launch results once per action, invoke launch-attempt callbacks, and track Android chooser launches.
  • Correct calendar UTC/all-day dates, social URL handling, and calendar parameters.
  • Fix equality/hash consistency for LaunchOptions and CalendarEvent collections.
  • Prevent stale preview responses and errors from replacing newer URLs; resolve relative preview images and preserve fallback tap callbacks.
  • Remove unused dependencies and the library lockfile; use the public Greelogix homepage instead of inaccessible GitHub metadata links.
  • Add launcher/preview regression tests, replace the stale demo test, and update native build tooling.
  • Migrate the iOS demo to the current UIScene lifecycle and Swift Package Manager, targeting iOS 15+.
  • Declare the existing dependency requirements: Flutter 3.38.1+ and Dart 3.10+.

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 bug — bypassAppDetectionAndFallback 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 path — UrlValidator.isValid() is now enforced in _launchUrl, blocking launches when the URI scheme is not in allowedSchemes.
    • Integrated LaunchAnalytics into launch flow — LaunchAnalytics.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
0
points
178
downloads

Publisher

verified publishergreelogix.com

Weekly Downloads

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

Homepage

Topics

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

License

unknown (license)

Dependencies

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

More

Packages that depend on launchify