Comments (2)
Wow. Thanks! Messages like these definitely make me want to commit more time to the project. You seem to grok many of the core ideals, and I'm always looking for strong contributors.
The changes I was trying to experiment with the noqueue
branch and others were to get the "stream" style programming working better with batching and dependencies. For example a MergedStream
should only fire an event once even if several streams feeding into it are firing simultaneously, so there must be some sort of batching, which means you have to wait for some time before acting. Then if one MergedStream
subscribes from another, the waiting logic becomes a little more complicated. Also I was struggling with subscribing and unsubscribing streams while they were active and having all the logic be consistent. With my time off from the project, I certainly have been getting more ideas on how to handle these cases elegantly. That said I'm always interested in discussing architectural decisions with others.
from samsara.
I really feel like this is very important work and I hope you can figure this out. Again:
- A stable core API of this project is the basic
Node
/Surface
/Context
api with the layout primitives oftransform
,opacity
,size
,align
andorigin
. These are excellent primitives. - Representing values that change over time is done via the
Transitionable
api. This API reminds me a lot of theAnimated
api on React Native and is a proven flexible and powerful for a wide variety of animation needs. It's one of my favorite parts of React Native and I am glad it's here. - This project has a very strong notion of computed input values that are kept in sync with animation. No other major UI library provides a consistent stable abstraction of gestures, mouse inputs and other inputs that directly factor into layout and animation. The only other libraries that I know of that provide a super strong notion of computed values are Vue.js and Mobx (Moon.js is another recent excellent example). Most importantly this library acknowledges that the most important thing is to keep derived values in sync with sources of truth, a principle that undergirds React but Samsara takes it to a whole new level that is more useful for real animated apps.
- The flat rendering product of this library is super unique.
- This library has a very unique high level take on what constitutes a
View
. By removing data sync, business logic, and other view considerations and truly only considering animation, coordination, and layout, it really increases the focus and it's a great innovation. - Most importantly you are trying to get a working
ScrollView
that works intelligently with vertical and horizontal layout, has physics based animation, supports view recycling and more, which we all know are golden keys to surpassing native apps.
So I am totally rambling and repeating myself again but the core message here is: please don't stop. :)
from samsara.
Related Issues (20)
- Not responsive to split view on iOS HOT 4
- [Question] Min & Max Opacity HOT 8
- EventEmitter incorrectly binds owner on `once`
- EventHandler never turns off upstream events HOT 1
- [Question] will-change size HOT 2
- [Question] How to populate the div within a Surface using Javascript HOT 8
- React Native HOT 3
- Manipulating StyleSheets instead of inline styles HOT 4
- Views added to context after context has been mounted need a resize event to be render HOT 2
- Question : Can Samsara leverage the capabilities of shadow-dom ?? HOT 1
- FYI - FastDom HOT 1
- SequentialLayout can't be align to bottom HOT 7
- Scrollview.goTo(x) goes bananas on iOS HOT 6
- Paginated Scrollview can't handle resize/orientation change HOT 1
- Scrollview bug IE11
- set/toggle/remove classes bug
- Non-nested CSS3D seems to be getting bad in Chrome. HOT 5
- Is Samsara viable when implementing animations designed in Framer? HOT 1
- misalignment with Cube demo HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from samsara.