Moviper v1.3.0-alpha Release NotesRelease Date: 2017-02-09 // over 4 years ago
💥 Breaking changes
🚀 This release introduces some breaking changes. All stuff listed below is also mentioned in the Migration guide.
- Unified methods for getting context in Routings.
- AutoInject (Ai) Views that allow you to skip overriding the
onViewCreated(..)method. Instead, in plain Ai Views you have to provide the layout id by overriding a
getLayoutId()method and to perform any view injections, getting references to views etc. by overriding a
injectViews()method. In addition, it contains the pre-baked classes, where these methods are already implemented inside of base classes for:
- for Kotlin Android Extensions you have to use regular Ai Views.
- 💻 Passive Views (based on AutoInject ones) that enforces developer to create passive views, that are not aware of existence of Presenter. All communication from View to Presenter has to be done through providing Observables with given UI events. It's enforced by the fact that
getPresenter()method of this kind of views does not return Presenter of some exact type, but as a general
ViperPresenter, so calling any meaningful methods on it is impossible. As in the previous point, it also contains the pre baked classes for:
- for Kotlin Android Extensions you have to use regular AiPassive Views.
MoviperPresentersDispatchertool that allows you to choose the View's (especially Activity) presenter on the runtime without a need of putting it to the
Bundlewith all it's limitations.
ViperPresentersListthat allows you to easily attach multiple presenters to the Passive Views.
Servicebased VIPERs to allow you to maintain a uniform architecture between your app's views and services. It includes support for:
- independent VIPERS to allow you to maintain a uniform architecture between your app's views and complex task objects that aren't strictly connected with any specific Android component.
- ✅ a
moviper-testmodule that contains useful testing tools:
FragmentTestRuleto perform Fragment instrumentation tests in isolation,
MoviperActivityTestRuleto perform Viper Activity instrumentation tests with proper cleanup,
ViewHolderTestRuleto perform Recyclerview's ViewHolder instrumentation tests in isolation,
AndroidSchedulers.mainThread()behaviour in unit tests,
ViewHolderUnitTestAcrivityto perform Recyclerview's ViewHolder Robolectric unit tests in isolation,
RecyclerViewMatcherto match RecyclerView's contents in Espresso instrumentation tests.
And added some more Javadocs
- Introduced even more samples for new features:
- ✅ Increase tests coverage, also for non-TDD libs that we base onto.
- ⬆️ Bumped dependencies versions:
- RxJava to 1.2.6
Once again, many thanks to guys that helped me in Moviper development implementing my ideas under my guidance:
- ✅ Tomasz Najda - extracting moviper-test module, implementing Viper services and independent Vipers and samples for the latter,
- ✅ Bartosz Wilk - Moviper templates, some Ai Views, improving test coverage, implementing
MoviperPresetnersDispatcher, super-rx-ai sample,
- Jakub Jodelka - Viper service sample.