S-MVP
Optimized version of MVP, using annotation generics to simplify code
Optimized version of MVP, using annotation generics to simplify code writing, using modular protocols to facilitate maintenance, APT process uses annotation parser to use JavaPoet. Complete the writing of repetitive modules, use ASpect+GradlePlugin to complete horizontal AOP programming+Javassist dynamic bytecode injection+Tinker to achieve hot repair+Retrofit to achieve elegant network operations+RxJava to easily play with data processing. In MVP, Presenter completely separates Model and View, and the main program logic is implemented in Presenter. Moreover, the Presenter is not directly related to the specific View, but interacts through the defined interface (we only need to pass parameters according to the interface when testing alone), so that the Presenter can be kept unchanged when changing the View. i.e. reuse! Not only that, we can also write a View for testing to simulate various operations of the user, so as to test the Presenter - without using automated testing tools.