Teller v0.2.0-alpha Release Notes

Release Date: 2019-03-15 // about 5 years ago
  • [0.2.0-alpha] - 2019-03-15

    โœ… Testing utilities and improved API for CacheState objects!

    ๐Ÿ”„ Changed

    • ๐Ÿ’ฅ Breaking Change The deliver_() functions in OnlineCacheState and LocalCacheState have been replaced with a more Kotlin like callback API with lambdas. 47
    • โœ‚ Remove Java close compatibility. Because Kotlin and Java work nicely together, Teller may still work nicely with Java, but Teller is no longer focusing on making sure that is the case. 46
    • ๐Ÿ”ฆ Expose public properties to OnlineCacheState.

    โž• Added

    • ๐Ÿ“„ Create code of conduct and add to the docs.
    • โœ… Create set of utilities into Teller to assist in creating unit, integration, and instrumentation tests.
    • โœ… Create section in docs on how to test with Teller in your app.
    • โœ… Create tests in example to show examples on how to use Teller's testing utilities and to test the API as it's developed.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed bug in OnlineCacheState where refresh calls may not call refreshComplete() after a fetch finished successfully.

Previous changes from v0.1.0-alpha

  • [0.1.0-alpha] - 2019-02-21

    ๐Ÿ”„ Changes to the API, docs, full test suite, thread safety and bug fixes.

    ๐Ÿ”„ Changed

    • ๐Ÿ’ฅ Breaking Change OnlineRepository's abstract functions have all been renamed. This is to try and be more descriptive of what Teller is doing to help developers implement faster.
    • ๐Ÿ’ฅ Breaking Change OnlineDataState.deliver__() listeners has been renamed.
    • ๐Ÿ’ฅ Breaking Change OnlineRepository.observeCachedData() and OnlineRepository.isDataEmpty() gets called on UI thread. OnlineRepository.saveData() gets called on background thread.
    • โšก๏ธ OnlineRepository.observe() and LocalRepository.observe() no longer throws. Observe anytime you wish and receive event updates through all changes of the repository.
    • OnlineRepository.refresh() calls are shared between all OnlineRepository instances. This saves on the amount of network calls performed. OnlineRepository.observe() observers are all notified when OnlineRepository.refresh() actions are performed.
    • OnlineRepository is thread safe.
    • โœ‚ Removed Teller.sync()

    โž• Added

    • ๐Ÿ‘ OnlineRepository now supports observing 2+ queries, as long as it's the same type of data.
    • โœ‚ Delete Teller data for development purposes or when someone logs out of your app and the data is cleared via Teller.clear().
    • โœ… Full test suite for unit testing and implementation testing!
    • ๐Ÿ“š Full documentation website!

    Contributors changelog

    ๐Ÿ”„ Changed

    • ๐Ÿ”จ OnlineDataState has been refactored to using a finite state machine implementation. See OnlineDataStateStateMachine. It's a immutable object that represents an immutable OnlineDataState instance.
    • โšก๏ธ Fetching fresh cache data and the state of the cache data have been decoupled in OnlineDataState. Each of these 2 different states (fetching and cache) are updated independently from each other in the OnlineRepository so decoupling them fixes bugs that have been reported.
    • ๐Ÿ‘ป OnlineRepository is designed to be "useless" after .dispose() is called. All aync tasks are cancelled or the results are ignored when they are complete. Calling any function on OnlineRepository after dispose() will throw an exception.