-
Notifications
You must be signed in to change notification settings - Fork 38
1. What's Propose
I wish I could make people happy with something I'm good at. However, there were not many of options for interactions or animations to convey my message. My desperate wishes turned into combination of property animation and motions. This is how Propose has been begun.
After Android 3.0, powerful animation classes called Property Animation(ValueAnimator, ObjectAnimator) has been added.
I was surprised when I saw the introduction video of ValueAnimator from Google.
Every sort of animations can be implemented in a intuitive and a easy way.
With the help of this new feature, many apps seem to be visually more dynamic.
However, it turns out apps just stay static as they were. That's because apps are not videos.
They are meant to interact and communicate with users.
The animations which cannot provide user gestures such as dragging and flinging are not useful for both developers and users.
For example, when SlidingMenu became a big trend, developers were making CustomView, or trying to find open source for it.
If it was just for sliding with a click, some lines of code containing ObjectAnimator would be enough. However, users not only want to fire a sliding animation, but also drag and fling.
That is why ValueAnimator and ObjectAnimator were not preferred by developers.
People will be used to using apps with dynamic animations just like the history of web.
But, most of apps are quite static and their motions are very similar with each other.
If famous apps introduce fancy motions, developers just try to find open source for it instead of implemeting stunning animations by themselves.
Probably, they're believing that developing interactions related to touch events will be difficult and time consuming.
I also realized this when motion making process turned out to be very hard.
Also, even if I made CustomView, it was difficult to reuse it. I call this situation "CustomView Hell"
Although I tried to find open source to escape this hell, nothing was helpful.
Even though I found decent open source, it took lot of time to understand how it works, and what's worse is that it was hard to modify the codes to customize.
Now it became "OpenSource Hell"
Propose began as my personal project for making digital storybooks to propose to my wife.
However, nothing happened as I planned and I cound't propose to my wife. Of course, my proposal for the marriage became hell.
I started with Propose project to make CustomView reuseable.
I separated animations from motions to make it resuable.
By splitting modules, I could make new kinds of interactions and reuse them.
However, CustomView typed animation module was difficult to implement and its options were limited.
Also, threads of animations were needed to be tested to check their stability.
To resolve this issue, I needed to improve the modules of animations. This process lead me to Property Animation supported by Android.
Most of all, Property Animation is a standard of Android, and it is easy to use and provides wide options. This is why Propose began with Property Animation.
There is significant advantage of combination of Property Animation and Propose module.
-
Its stability is guaranteed because Android manages thread and life cycle of animations.
Propose only converts motions. All threads and life cycles are handled by property animation.
-
It is developer friendly as it is Android standard animation
Developers are able to work with the animation in the same way because it is a kind of Android animation.
-
It's possible to combine animations and motions to be more flexible
High quality implementation is now possible with the help of combination of animations and motions. For example, you can make simple but topnotch storybooks with combination of translation and rotation.
As the story describes, Propose project was initiated to overcome the limitation of cusomizing views, and eventually now it helps us to implement high quality interactions in a safe, easy and a familiar way.