Skip to main content

Version 6.4.0 - Simplified requestProducts API

· 2 min read
Hyo
Maintainer of flutter_inapp_purchase & expo-iap

We're releasing version 6.4.0 with a simplified API for requesting products, based on valuable user feedback.

Version Information

  • Current Version: 6.4.0
  • Previous Stable: 6.3.3

Breaking Changes

Simplified requestProducts API

Based on feedback from issue #527, we've simplified the requestProducts method to use direct parameters instead of a wrapper object:

Before (6.3.x):

final products = await iap.requestProducts(
RequestProductsParams(
productIds: ['product_id'],
type: PurchaseType.inapp,
),
);

After (6.4.0):

final products = await iap.requestProducts(
productIds: ['product_id'],
type: PurchaseType.inapp, // Optional, defaults to PurchaseType.inapp
);

The RequestProductsParams class has been removed entirely, making the API cleaner and more intuitive.

Deprecated Items Removed

In v6.4.0, we've also removed the following deprecated items that were marked for removal:

  • subscriptionOfferDetails field → use subscriptionOfferDetailsAndroid instead
  • prorationMode field → use replacementModeAndroid instead
  • AndroidProrationMode typedef → use AndroidReplacementMode instead

These items were deprecated in v6.3.x and are now completely removed in v6.4.0.

A Note on Recent Changes

We understand there have been several breaking changes in recent releases, and we sincerely apologize for any inconvenience this may have caused. These changes are part of our concerted effort to rapidly address the long maintenance gap this library experienced and bring it up to modern standards.

We're pleased to announce that with version 6.4.0, we believe the major restructuring phase is now complete. The API should remain stable moving forward, allowing you to build with confidence.

Migration Guide

To migrate from 6.3.x to 6.4.0:

  1. Remove any imports of RequestProductsParams
  2. Update all calls to requestProducts to use the new parameter format:
    • Replace RequestProductsParams(productIds: ids, type: type) with direct named parameters
    • The type parameter now defaults to PurchaseType.inapp if not specified

Looking Forward

With this release, we've addressed the accumulated technical debt and modernized the API structure. Future releases will focus on:

  • Adding new features
  • Performance improvements
  • Bug fixes
  • Documentation enhancements

All while maintaining API stability.

Thank you for your patience and continued support as we've worked to improve flutter_inapp_purchase.