xsoulspace_monetization_foundation 0.9.0 copy "xsoulspace_monetization_foundation: ^0.9.0" to clipboard
xsoulspace_monetization_foundation: ^0.9.0 copied to clipboard

A Flutter package for managing in-app purchases, subscriptions, and advertisements across multiple platforms.

XSoulSpace Monetization Foundation #

Unified Flutter monetization framework for ads, subscriptions, and purchases across multiple platforms.

๐ŸŽฏ Purpose #

This package serves as the foundation for implementing monetization strategies in Flutter apps, abstracting platform-specific complexities behind clean, testable interfaces.

๐Ÿ—๏ธ Architecture Overview #

Core Patterns #

  • Command Pattern: Business logic encapsulated in immutable command objects
  • Resource Pattern: Reactive state management with ChangeNotifier
  • Purchase Provider Pattern: Platform-specific implementations behind common interfaces
  • Strategy Pattern: Different monetization types (subscription, ads, free)

๐Ÿ”ง Core Concepts #

1. Monetization Types #

  • Subscription: Recurring payments for premium features
  • Ads: Ad-supported model with premium upgrade option
  • Free: All features available without payment

2. State Management #

  • MonetizationStatusResource: Overall system status
  • SubscriptionStatusResource: User subscription state
  • ActiveSubscriptionResource: Current subscription details
  • AvailableSubscriptionsResource: Available products

๐Ÿ“ฆ Installation #

dependencies:
  xsoulspace_monetization_foundation: ^1.0.0

๐Ÿš€ Quick Start #

// 1. Create resources
final resources = (
  status: MonetizationStatusResource(),
  type: MonetizationTypeResource(MonetizationType.subscription),
  activeSubscription: ActiveSubscriptionResource(),
  subscriptionStatus: SubscriptionStatusResource(),
  availableSubscriptions: AvailableSubscriptionsResource(),
);

// 2. Initialize foundation
final foundation = MonetizationFoundation(
  resources: resources,
  purchaseProvider: yourPlatformProvider, // Google Play, App Store, etc.
);

// 2.1. Initialize local api
await foundation.initLocal();

// 2.2. Start monetization system with await
await foundation.init(productIds: ['premium_monthly', 'premium_yearly']);

// 2.3. or don't await
unawaited(foundation.init());

// 3. Subscribe to a product
final success = await foundation.subscribe(productDetails);

๐Ÿ—๏ธ Core Concepts #

  • Command Pattern: Business logic in immutable commands (SubscribeCommand, ConfirmPurchaseCommand)
  • Resource Pattern: Reactive state management with ChangeNotifier (subscription status, available products)
  • Provider Pattern: Platform-specific implementations behind common interfaces

๐Ÿ›๏ธ Architectural Patterns #

Command Pattern #

// Immutable business logic objects
final subscribeCommand = SubscribeCommand(
  purchaseProvider: provider,
  subscriptionStatusResource: statusResource,
  confirmPurchaseCommand: confirmCommand,
);
await subscribeCommand.execute(productDetails);

Resource Pattern #

// Reactive state management
final statusResource = SubscriptionStatusResource();
statusResource.addListener(() {
  // UI updates automatically
  if (statusResource.isSubscribed) {
    // Show premium features
  }
});

Purchase Provider Pattern #

// Platform-agnostic interface
abstract class PurchaseProvider {
  Future<PurchaseResultModel> subscribe(ProductDetails details);
  Future<List<ProductDetails>> getSubscriptions(List<String> ids);
}

// Use platform-specific implementations
final provider = GooglePlayPurchaseProvider();

๐Ÿ“ฑ Platform Support #

Platform Package Status
Google Play & App Store xsoulspace_monetization_google_apple ๐Ÿšง
RuStore xsoulspace_monetization_rustore โœ…
Huawei xsoulspace_monetization_huawei ๐Ÿšง

๐Ÿงช Testing #

Use noop providers for testing without real transactions:

final testProvider = NoopPurchaseProvider();
final testAdProvider = NoopAdProvider();

๐Ÿ›๏ธ Architecture #

lib/
โ”œโ”€โ”€ ads/           # Ad management (AdManager)
โ”œโ”€โ”€ commands/      # Business logic (SubscribeCommand, etc.)
โ”œโ”€โ”€ models/        # Core types (MonetizationStatus, MonetizationType)
โ”œโ”€โ”€ resources/     # State management (ChangeNotifier-based)
โ”œโ”€โ”€ widgets/       # UI components (SubscriptionScreen, etc.)
โ””โ”€โ”€ noop_providers/ # Testing implementations
  • xsoulspace_monetization_interface - Core interfaces
  • xsoulspace_monetization_ads_interface - Ad provider interface
  • Platform-specific implementations in separate packages
0
likes
140
points
10
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter package for managing in-app purchases, subscriptions, and advertisements across multiple platforms.

Homepage
Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

collection, flutter, is_dart_empty_or_not, xsoulspace_foundation, xsoulspace_monetization_ads_interface, xsoulspace_monetization_interface

More

Packages that depend on xsoulspace_monetization_foundation