Skip to content
This repository has been archived by the owner on Mar 16, 2021. It is now read-only.

Commit

Permalink
Merge pull request #97 from grandcentrix/feature/release_0.8.0
Browse files Browse the repository at this point in the history
Release 0.8.0
  • Loading branch information
passsy authored May 4, 2017
2 parents 5c2fa6d + 1682088 commit 23a40a5
Show file tree
Hide file tree
Showing 3 changed files with 115 additions and 49 deletions.
109 changes: 109 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# ThirtyInch Releases

## Version 0.8.0 `04.05.17`

### Summary

Version 0.8.0 is a big step forward towards 1.0.0. The biggest problem, a memory leak when using Fragments could be resolved. This bugfix was only possible after introducing tons of tests.
API enhancements of `TiPresenter` make MVP even easier and removes common pitfalls

Thanks for external contributors:
@remcomokveld, @vRallev, @jonathan-caryl, @k0shk0sh

### thirtyinch

**TiPresenter**

- [Pull 26](https://github.com/grandcentrix/ThirtyInch/pull/26) New: `onAttachView(TiView)` replaces `onWakeUp()` which is now deprecated
- [Pull 26](https://github.com/grandcentrix/ThirtyInch/pull/26) New: `onDetachView()` replaces `onSleep()` which is now deprecated
- [Pull 26](https://github.com/grandcentrix/ThirtyInch/pull/26) New: `getView()` is now annotated with `@Nullable`
- [Pull 87](https://github.com/grandcentrix/ThirtyInch/pull/87) New: `getViewOrThrow()` for cases where the view logically can't be `null`
- [Pull 36](https://github.com/grandcentrix/ThirtyInch/pull/36) New: `sendToView(ViewAction<TiView>)` to postpone code execution until the view is attached
- [Pull 65](https://github.com/grandcentrix/ThirtyInch/pull/65) New: `runOnUiThread(Runnable)` executes code on the view Ui Thread.
- [Pull 65](https://github.com/grandcentrix/ThirtyInch/pull/65) New: `sendToView(view -> { })` automatically executes the action on the Ui Thread
- [Pull 94](https://github.com/grandcentrix/ThirtyInch/pull/94) Always call observer for events which happend when they were registered

**TiFragment**

- [Pull 78](https://github.com/grandcentrix/ThirtyInch/pull/78) Presenter gets correctly destroyed when Fragment is not managed by the `FragmentManager` anymore
- [Pull 78](https://github.com/grandcentrix/ThirtyInch/pull/78), [Pull 67](https://github.com/grandcentrix/ThirtyInch/pull/67) uses now the default: `setRetainInstanceState(false)`. Setting `TiFragment#setRetainInstanceState(true)` will throw
- [Pull 78](https://github.com/grandcentrix/ThirtyInch/pull/78) Support for backstack

**TiActivity**

- [Pull 78](https://github.com/grandcentrix/ThirtyInch/pull/78) Always use `PresenterSavior` singleton, drop support for `NonConfigurationInstance`

**Other**

- [Pull 14](https://github.com/grandcentrix/ThirtyInch/pull/14), [Pull 15](https://github.com/grandcentrix/ThirtyInch/pull/15) `TiLog` is used for logging. Listener to see a log output
- [Pull 19](https://github.com/grandcentrix/ThirtyInch/pull/19), [Pull 24](https://github.com/grandcentrix/ThirtyInch/pull/24) `@DistinctUntilChanged` supports multiple comparators. (`EqualsComparator`, `WeakEqualsComparator`, `HashComparator`(default))
- [Pull 23](https://github.com/grandcentrix/ThirtyInch/pull/23) AppCompat is now included with `provided` dependency instead of `compile`
- [Pull 42](https://github.com/grandcentrix/ThirtyInch/pull/42) New: `TiDialogFragment`
- [Pull 79](https://github.com/grandcentrix/ThirtyInch/pull/79) New: `@CallSuper` where a super call is required.
- [Pull 79](https://github.com/grandcentrix/ThirtyInch/pull/79) New: restrict `TiActivity`, `TiFragment`... API for subclasses.
- [Pull 78](https://github.com/grandcentrix/ThirtyInch/pull/78), [Pull 33](https://github.com/grandcentrix/ThirtyInch/pull/33), [Pull 83](https://github.com/grandcentrix/ThirtyInch/pull/83), [Pull 68](https://github.com/grandcentrix/ThirtyInch/pull/68) Fix: `TiPresenter` gets destroyed when `TiFragment` gets removed from the FragmentManager
- [Pull 81](https://github.com/grandcentrix/ThirtyInch/pull/81) New: `Proguard` rules included in the library
- [Pull 78](https://github.com/grandcentrix/ThirtyInch/pull/78) `TiConfiguration#setUseStaticSaviorToRetain(Boolean)` is now deprecated. The `PresenterSavior` singleton is always used to retain presenters when `TiConfiguration#setRetainPresenterEnabled(true)`.

### rx

- [Pull 27](https://github.com/grandcentrix/ThirtyInch/pull/27) Fix: view can be `null` before unsubscribing from Subscriptions
- [Pull 43](https://github.com/grandcentrix/ThirtyInch/pull/43) New: `manage\[View\]Subscriptions(Subscription...)`
- [Pull 58](https://github.com/grandcentrix/ThirtyInch/pull/), [Pull 61](https://github.com/grandcentrix/ThirtyInch/pull/61) `manageViewSubscription(Subscription)` will now throw when the view isn't attached
- [Pull 61](https://github.com/grandcentrix/ThirtyInch/pull/61) `RxTiPresenterUtils#isViewReady()` now emits the ready event after `onAttachView(TiView)` was called.
- [Pull 73](https://github.com/grandcentrix/ThirtyInch/pull/73) New: `manage\[View\]Subscription` will now return `Subscription`

### rx2

New module for RxJava2 analog to rx module

- [Pull 54](https://github.com/grandcentrix/ThirtyInch/pull/54), [Pull 64](https://github.com/grandcentrix/ThirtyInch/pull/64) New: `RxTiPresenterDisposableHandler#manageDisposable` and `RxTiPresenterDisposableHandler#manageViewDisposable`

### plugin

- [Pull 49](https://github.com/grandcentrix/ThirtyInch/pull/49) New: `TiFragmentPlugin`

### test

- [Pull 65](https://github.com/grandcentrix/ThirtyInch/pull/65) `TiPresenterInstructor` automatically sets an `Executor` for `runOnUiThread` and `sendToView` actions

### logginginterceptor

- [Pull 85](https://github.com/grandcentrix/ThirtyInch/pull/85) New: Add logging interceptor module including `LoggingInterceptor`

## Version 0.7.1 `07.09.16`
- add missing `TiActivity#getPresenter()`

## Version 0.7.0 `04.09.16`
- `TiConfiguration`
- Presenter LifecycleObservers
- ViewBindingInterceptors
- `TiActivityDelegate` for code sharing
- separate Rx module
- separate Test module
- public release, projects using `Ti`: ∞

## Version 0.6 `11.06.16`
- Tests
- Smaller bugfixes and minor breaking changes

## Version 0.5 `03.05.16`
- plugin for CompositeAndroid
- Clean usage syntax by automatically using the `TiActivity` as the `TiView`
- Projects using `Ti`: 6

## Version 0.4 `12.05.16`
- Extracted into standalone library
- Rebranded to ThirtyInch
- Projects using `Ti`: 3

## Version 0.3 `19.02.16`
- CallOnMainThread annotation
- fix "Don't keep activities" with `PresenterSavior`

## Version 0.2 `02.09.15`
- stabilize Activity and Fragment support

## Version 0.1 `10.04.15`
- first configuration change surviving Presenter
- heavy usage or RxJava
51 changes: 4 additions & 47 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ ThirtyInch is available via [jcenter](http://blog.bintray.com/2015/02/09/android

```gradle
dependencies {
def thirtyinchVersion = '0.8.0-rc4' // prerelease
// def thirtyinchVersion = '0.7.1' // stable
def thirtyinchVersion = '0.8.0'
// MVP for activity and fragment
compile "net.grandcentrix.thirtyinch:thirtyinch:$thirtyinchVersion"
Expand All @@ -35,7 +34,6 @@ dependencies {
compile "net.grandcentrix.thirtyinch:thirtyinch-rx:$thirtyinchVersion"
compile "net.grandcentrix.thirtyinch:thirtyinch-rx2:$thirtyinchVersion"
// logging interceptor (added in 0.8.0-rc4)
compile "net.grandcentrix.thirtyinch:thirtyinch-logginginterceptor:$thirtyinchVersion"
// test extension
Expand All @@ -58,7 +56,6 @@ dependencies {

There is a sample implementation based on the [Android Architecture Blueprints TODO app](https://github.com/googlesamples/android-architecture) which can be found here: [ThirtyInch sample project](https://github.com/passsy/thirtyinch-sample) (work in progress)


## Hello World MVP example with ThirtyInch

`HelloWorldActivity.java`
Expand Down Expand Up @@ -107,7 +104,7 @@ public class HelloWorldPresenter extends TiPresenter<HelloWorldView> {
@Override
protected void onAttachView(@NonNull final HelloWorldView view) {
super.onAttachView(view);
getView().showText("Hello World!");
view.showText("Hello World!");
}
}

Expand Down Expand Up @@ -248,11 +245,12 @@ public class HelloWorldActivity extends TiActivity<HelloWorldPresenter, HelloWor
implements HelloWorldView {

public HelloWorldActivity() {
addBindViewInterceptor(new MyInterceptor());
addBindViewInterceptor(new LoggingInterceptor());
}
}
```

`LoggingInterceptor` is available as module and logs all calls to the view.

### [RxJava](https://github.com/ReactiveX/RxJava)

Expand Down Expand Up @@ -321,47 +319,6 @@ public class HelloWorldActivity extends CompositeActivity implements HelloWorldV

Yes you have to extends `CompositeActivity`, but that's the last level of inheritance you'll ever need.

## Versions


##### Version 0.7.1 `07.09.16`
- add missing `TiActivity#getPresenter()`

##### Version 0.7.0 `04.09.16`
- `TiConfiguration`
- Presenter LifecycleObservers
- ViewBindingInterceptors
- `TiActivityDelegate` for code sharing
- separate Rx module
- separate Test module
- public release, projects using `Ti`: ∞

##### Version 0.6 `11.06.16`
- Tests
- Smaller bugfixes and minor breaking changes

##### Version 0.5 `03.05.16`
- plugin for CompositeAndroid
- Clean usage syntax by automatically using the `TiActivity` as the `TiView`
- Projects using `Ti`: 6

##### Version 0.4 `12.05.16`
- Extracted into standalone library
- Rebranded to ThirtyInch
- Projects using `Ti`: 3

##### Version 0.3 `19.02.16`
- CallOnMainThread annotation
- fix "Don't keep activities" with `PresenterSavior`

##### Version 0.2 `02.09.15`
- stabilize Activity and Fragment support

##### Version 0.1 `10.04.15`
- first configuration change surviving Presenter
- heavy usage or RxJava


# License

```
Expand Down
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ allprojects {
}

ext {
VERSION_NAME = "0.8.0-SNAPSHOT"
VERSION_CODE = 4
VERSION_NAME = "0.8.0"
VERSION_CODE = 5
MIN_SDK_VERSION = 14
TARGET_SDK_VERSION = 25
COMPILE_SDK_VERSION = 25
Expand Down

0 comments on commit 23a40a5

Please sign in to comment.