Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 2.1 Spec #199

Open
stephanenicolas opened this issue Feb 1, 2018 · 0 comments
Open

Version 2.1 Spec #199

stephanenicolas opened this issue Feb 1, 2018 · 0 comments

Comments

@stephanenicolas
Copy link
Collaborator

We realize that migrating to the wonderful upcoming version 3 is a difficult path. So, we wanna publish a version 2.1 to mitigate these issues.

The main issues that we faced during our migration were:

  • some classes use models, some don't, sometimes the presenter (in MVP) is used as a model. It makes it difficult to apply the same fixes to all activities
  • sometimes the models are used as navigation models, sometimes there are also used as state holders, using icepick for instance. In DH3 we would love to separate the concerns, but it's hard to migrate, quite error prone and it will require separate pojos for states and navigation models, and a way to copy them field by field cleanly, which is not that easy. The process is also very error prone and errors will appear at runtime.

We want to improve DH2, by enabling the following features:

  • support of inheritance across modules:
    • a model can extend from another model located in a different module
    • an activity can extend from another activity located in a different module
  • the model of an @HensonNavigable activity can be located in a different module than the activity.

Basically this will provide better support for modularization, and also lay the foundation of a better incremental annotation processing...

The main version with DH3 will be:

  • DH3 will support navigation cycles between modules: by separating the navigation apis in different modules, we will fix this issue
  • DH3 will introduce a gradle plugin to generate the HensonNavigator class on a source basis instead of the target basis generation of Henson
  • DH3 will probably support @InjectExtra annotations + its renamed @BindExtra and @DartModel, to ease migration
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant