apollo-android v3.4.0 Release Notes

  • 2022-07-11

    ๐Ÿš€ This release contains a few important bug fixes (#4214, #4224, #4247, #4256), makes it possible to compile with Gradle ๐Ÿ”Œ 7.4 and apollo-gradle-plugin (#4218).

    It also introduces -incubating cache artifacts.

    ๐Ÿ’™๏ธ External contributors

    Many thanks to @ArjanSM, @zebehringer, @mm-kk-experiments, @mune0903, @stengvac, @elenigen, @shamsidinb, @StylianosGakis for the awesome contributions ๐Ÿ˜ƒ!

    โœจ๏ธ [new] -incubating cache artifacts.

    This version introduces the below artifacts:

    • apollo-normalized-cache-incubating
    • apollo-normalized-cache-api-incubating
    • apollo-normalized-cache-sqlite-incubating

    These artifacts introduce new APIs to work with cache expiration and pagination (as well as other cache improvements in the future).

    ๐ŸŽ These artifacts have no backward compatibility guarantees and most likely have worse performance than the non-incubating ๐Ÿ“š artifacts. Documentation will be added once the API stabilize. In the short term, the best place to look for examples โœ… are the integration tests:

    Note: The experimental withDates: Boolean argument was introduced in 3.3.1 in the regular artifacts and is removed ๐Ÿš€ as part of this release. Use the -incubating artifacts to use it.

    ๐Ÿ‘ทโ€ All changes

    • โž• add TrimmableNormalizedCacheFactory (#4239)
    • ๐Ÿšš ๐Ÿšง remove withDates (#4257)
    • ๐Ÿ—„๏ธ Chunk parameters in large responses (#4256)
    • ๐Ÿ›  Fix for improper handling of JsonNumber in BufferedSinkJsonWriter (#4247)
    • Incubating modules for the next gen cache (#4241)
    • ๐Ÿ›  Pagination: fixes in FieldRecordMerger and MemoryCache (#4237)
    • ๐Ÿ‘‰ make it possible to reuse a File Upload (#4228)
    • ๐Ÿ“‡ Persist Record arguments/metadata with the SQL Json backend (#4211)
    • requestedDispatcher -> dispatcher (#4220)
    • ๐Ÿ›  Fix test errors were emitted outside the Flow (#4224)
    • ๐Ÿ”Œ Make it possible to compile with Kotlin 1.5 and apollo-gradle-plugin (#4218)
    • ๐Ÿ›  ๐Ÿ–๏ธ Relax MapJsonReader endObject, fixes reading inline + named fragments with compat models (#4214)
    • Introduce RecordMerger (#4197)
    • โž• Add @typePolicy(embeddedFields: String! = "") (#4196)