Well, that kind of animation is very easy to implement without any framework or library at all. All you have to do is pre-cache the sprites, then create visible sprite objects and have them cross the screen. You can resize them while they do so.
Pseudocode:
let reactions = array of Reaction
// on one thread, do the networking and handle new reactions
loop {
let reaction_type: ReactionType = get_reaction()
if (reaction_type) {
let reaction = new Reaction(reaction_type)
reaction.position.x = screen.width
reaction.position.y = screen.height - screen.height / 2 + random
reaction.initial_position = reaction.position
reaction.size = Size(1,1)
reaction.initial_size = reaction.size
reactions.add(reaction)
}
}
// on another thread, do the animations
loop {
foreach (reaction in reactions) {
reaction.position.x -= 1
reaction.position.y = reaction.initial_size + sin(screen.width - reaction.position.x)
reaction.size = reaction.initial_size + sin(screen.width - reaction.position.x)
if (reaction.position.x == -reaction.size.y)
reactions.remove(reaction)
else
reaction.render()
}
}
// ideally, do user interaction on yet another thread or the main thread
You can change the formulas to your liking. Unfortunately, I am not an iOS developer, so I do not know how to implement it.