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

Layout Equivalence. #101

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Layout Equivalence. #101

wants to merge 2 commits into from

Conversation

andersio
Copy link
Contributor

@andersio andersio commented Feb 2, 2019

As established in #80, the ultimate goal of Bento is to enable size caching by default, while minimising the performance hit for screens with high frequency changes (e.g. forms).

To achieve the latter, Bento needs to determine whether component instances result in equivalent layouts, and in turn avoid having to invalidate any cached layout information whose re-computation might take one or two order of magnitude longer in time.

This PR introduces a mean for the components to provide a definition of layout equivalence, as an optional Renderable.layoutEquivalence(_:_:) requirement.

WIP: Still thinking about how this should interact with behavior composition e.g. Deletable and stuff.

@andersio andersio added enhancement New feature or request 🚧 work in progress labels Feb 2, 2019
@andersio andersio self-assigned this Feb 2, 2019
@andersio andersio force-pushed the anders/layout-compatibility branch 3 times, most recently from 79b53f6 to 6e13b43 Compare February 3, 2019 17:17
@andersio andersio force-pushed the anders/layout-compatibility branch from 6e13b43 to 4e5379e Compare February 3, 2019 17:18
@andersio andersio added the blocked Blocked for some reason label Apr 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked Blocked for some reason enhancement New feature or request 🚧 work in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants