apollo-android v3.3.1 Release Notes

  • 2022-06-13

    ๐Ÿš€ This release introduces @typePolicy on interface/enums, improvements on subscription error handling, and on Test ๐Ÿ— Builders. It also contains a number of other improvements and bug fixes!

    โœจ๏ธ [new] @typePolicy on interfaces and unions (#4131)

    ๐Ÿ“„ The @typePolicy directive can now be declared on interfaces and unions. Thank you @bubba for the contribution!

    ๐Ÿ”Œ WebSockets / Subscriptions error handling (#4147)

    ๐Ÿš€ An issue where websocketReopenWhen was not called in some cases was fixed. Also, this release introduces SubscriptionOperationException. A SubscriptionOperationException will be thrown instead of the more ๐Ÿ‘ท generic ApolloNetworkError if a subscription fails due to a specific operation error.

    ๐Ÿ— ๐Ÿ“ Test Builders improvements and fixes

    • ๐Ÿ— A DslMarker was added to improve usage with nested builders (#4089)
    • ๐Ÿ— When calling a builder, but not assigning it to a field, an error is now thrown, preventing mistakes (#4122)
    • The error message displayed when __typename is missing was made clearer (#4146)
    • ๐Ÿ›  Fix: use rawValue instead of name for enums (#4121)

    โœจ๏ธ [new] ApolloClient implements Closable (#4142)

    ApolloClient now implements okio.Closable so you can ๐Ÿ‘‰ use use with it. Thanks @yogurtearl for this contribution!

    โœจ๏ธ [new] experimental @targetName directive on enum values (#4144)

    If an enum value name is clashing with a reserved name (e.g. type) you can now use this directive to instruct the codeGen to use the specified name for the value instead. This directive is experimental for now.

    ๐Ÿ‘ โœจ๏ธ [new] experimental support for renaming directives (#4174)

    As we add more client directives, the risk of nameclash with existing schema directives increases. If this happens, you can now import Apollo client directives using @link: