Releases: brianegan/bansa
1.0.0 Beta! Now including Dev Tools!
The early versions of this project were fun experiments in Kotlin. As I played around with it more and talked to others, I hoped I might make this project useful to others, rather an as a simple experiment.
Therefore, I set down the following criteria for what I wanted from the library:
- Idiomatic Java and Kotlin usage
- Low method count
- Support for all basic Redux concepts in the smallest possible package. This includes the Store, Middleware, Reducers, and Subscribers/Subscriptions.
- Dev Tools that allow for Time Travel debugging
- Well tested
As this library now meets those goals, I think it's time to give it a beta label. Please try it out in your projects, and if we find it's all stable, we'll publish to 1.0.0 soon!
Now written in Java!
This is a big change! Bansa is now written in Java, and no longer has a dependency on Rx. This drops the method count dramatically, and makes Bansa far easier to use in a normal Java Android app.
There is also a companion version available, called bansaKotlin
, that provides more idiomatic interfaces for the Kotlin programming language.
I've also tried to keep the migration path simple. If you've been using Bansa, it shouldn't be a big rewrite of the way you were doing things before. The most important changes:
- Reducers are no longer lambdas, but proper classes. I.e. move from
{ state: MyState, action: Any ->...
toReducer<MyState, Any> { state, action ->...
- Bansa now provides it's own small
Subscriber
andSubscription
interfaces, replacing RxJava versions. - The constructor for creating a store using Middleware has been simplified.
createStore(intialState, reducer)
is nowBaseStore(initialState, reducer, Middleware...)
Community Contributions!
Drafting a new release with all of the good work put in by @clemp6r! This release has several important updates:
- This library now has a more idiomatic Kotlin feel.
Store
has been moved to a proper interface. Yay! - Move from
getState()
(returning the current state) andstate
(the observable) to a more fluid api. From now on, simply usestate
for the currentState, andstateChanges
for the underlying state observable. As always, you can simply subscribe! - Remove Marker interfaces
State
andAction
. They aren't necessary! - The scheduler, which used to put state updates on a potentially separate thread, has been removed for now. Keeping the reducers completely synchronous has advantages in the middleware layer, and discourages bad practices in the reducer layer.
Better SemVer
0.1.0 Upgrades to Kotlin 1.0.0, Moved from Dagger to Injekt
Kotlin 1.0.0
0.0.3 Upgrades to Kotlin 1.0.0, Moved from Dagger to Injekt
(Hopefully) Jitpack support
0.0.2 Attempt to get jitpack working
First release of Bansa! Totes beta, wouldn't use in prod.
0.0.1 Redux to Bansa