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

IBAnimatable App #238

Open
7 of 11 tasks
lastMove opened this issue Jul 7, 2016 · 7 comments
Open
7 of 11 tasks

IBAnimatable App #238

lastMove opened this issue Jul 7, 2016 · 7 comments

Comments

@lastMove
Copy link
Member

lastMove commented Jul 7, 2016

Demo for how to use in Interface Builder

  • All supported Animations with default parameters
  • BlurEffectStyle
  • BorderSide
  • ColorType
  • GradientStartPoint
  • GradientType
  • Refresh Control (RefreshTableViewController already ready to be used, just need to add an entry in the storyboard)
  • BackgroundImageDesignable (Allow to set a background image to table view and cells views #416)
  • TextField: placeholders, images...

Demo for how to use in code

  • Configurable Animation parameters. e.g. changing type, duration, damping
  • Configurable UI element. e.g. changing cornerRadius

------- Original post -----
Companion App

We could maybe add a “companion” App like Spring ’s one.
It allows to show all Masks, Animations, Transitions, Gradients etc doable with IBAnimatable.
Moreover it’s also a Support for testing those animations / transitions etc directly on-device.
Users could see the code that generate it.

Advantages :
Demo the animations, gradients, mask, transitions,
Help to show in context
It could help to choose an animation while editing
It could simplify regression detection since we can use Xcode UITests
We could even put it on the app store ;)

Disadvantages or alternative :
One more thing to keep updated
It maybe, at least partially, serves the same purpose than the Playground support

How do you think about it ?

@tbaranes
Copy link
Member

tbaranes commented Jul 7, 2016

👍 Love this idea! It's joining what @JakeLin starts with the transition demo (hidden in "forgot password" ). Moreover, a technical demonstration will be a nice way to avoid some issues about how to use our Animatable components. Just few questions:

  • Should we add this a another project / demo of IBAnimatable, or put another custom access in the current demonstration? I prefer the first option since it will be more accessible.
  • IBAnimatable has a lot of features, how can we group them all while staying readable and easy to understand? Spring demo is really nice but focus only on animations. Just a list, sublists... ?
  • Is that new demo will be focusing on how to use IBAnimatable with interface builder, programatically, or both? The vision of IBAnimatable is more focused on interface builder, but that can be a nice way to open have some quick examples of how to use it programatically (by taking "real code" Spring panel)

It maybe, at least partially, serves the same purpose than the Playground support

That's a good point, but there's one big difference between both: playground can be used to play quickly with the library while a sample like Spring brings code ready to used and concrete example. Moreover, we definitely can't use playground to cover all the features... :(

@lastMove
Copy link
Member Author

lastMove commented Jul 7, 2016

Yes I prefer to make another app too.
As I imagined that : The app would be divided in several sections The animation Section can looks like Spring one; And aside we can have a Transition, Mask, Gestures, UI Components etc
Is that new demo will be focusing on how to use IBAnimatable with interface builder, programatically, or both?
I don't know. I want to say both, but we will need to think it more precisely.

Since IBAnimatable is moving to an organisation, it could even be in a standalone Repo.

@JakeLin
Copy link
Member

JakeLin commented Jul 8, 2016

Great idea, @lastMove . I don't mind to extend the existing IBAnimatable Playground or create another repo. If we can publish it to App Store. We can put a link in IBAnimatable main project and the users can download it to play around.

As we don't know Is that new demo will be focusing on how to use IBAnimatable with interface builder, programmatically, or both? Can we start with it step by step?

For example:
For Interface Builder, we enhance the current Playground demo app to demonstrate more features like Animations, Gradient Colors, etc. Which allow the user to see what String should they use in Interface Builder like what we have for Mask. I like the Playground a lot when I develop features. It can help me to check the implementation. Since we don't have Unit Tests at all. BTW: I don't write tests for UI stuff, and only write them for the data model and transformer stuff.

For how to use INAnimatable in code, I don't have concrete ideas how to do it. Maybe provide some pickers to modify the parameters for Animatable type for animations?

We may be able to improve it step by step since the library is not small. I am going to put a checklist in the original post, please feel free to modify it.

@tbaranes
Copy link
Member

tbaranes commented Jul 8, 2016

Since IBAnimatable is moving to an organisation, it could even be in a standalone Repo.

Not sure that is a good idea, most of the users won't see it if it's not in the main project.

For how to use IBAnimatable in code, I don't have concrete ideas how to do it

We can definitely do the same as Spring example. Their example is really easy to use and clear even if they have a lot of options (around the same as our Animatable)

@JakeLin
Copy link
Member

JakeLin commented Jul 8, 2016

Not sure that is a good idea, most of the users won't see it if it's not in the main project.

@tbaranes That's is a good point for using main repo for the demo / companion app.

Another benefit if we keep it in the main repo is when we implement new features, we can valid them in demo app directly.

One of the demo app I really like is https://github.com/scotteg/LayerPlayer, we can download it from App Store https://itunes.apple.com/us/app/layer-player/id949768742?mt=8

It will be great if we can publish our app on App Store.

@JakeLin
Copy link
Member

JakeLin commented Jul 8, 2016

Another idea is if we keep the demo app in the main project, shall we display the IBAnimtable Playground as the initial scene? And have an item call "Prototyping in Interface Builder" for the existing Todo app. Then display other items like "Animation", "Transition", etc. Or some items like "Animation in code"?

@lastMove
Copy link
Member Author

lastMove commented Jul 9, 2016

Yes, nice. The playground part of the existing app is completely in the spirit of what I thought.
It certainly a good entry-point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants