I too have been working through this style of pipeline. SpriteKit and Swift are now the way to go if you are making iOS apps that you don't immediately want to port to Android. I'd really like to see an official runtime as well.
The simonkim/spine-spritekit that you mentioned is what I'm using. I'm able to switch animations by calling SpineNode.runAnimation() with the different animation's name on whatever event I want to switch it on. I haven't figured out how to make the transition happen smoothly yet, it just abruptly goes from one to the other, but you can barely see the difference with the animations I'm using.
Benjamina, are you using Swift or Obj-C?
I can't seem to get the queueAnimation function to work properly without crashing in Swift. I think the problem I'm having comes from how Swift handles optionals. Basically I'm trying to set the property of SpineNode.queuedAnimation? = "animation" and I keep getting nil returned. Do you have any ideas on how to actually set the String to that property? If so, I think things would be much more functional with this runtime.
Okay, so I figured out why the queuedAnimation feature wasn't working - it hadn't been fully implemented.
I added this to SGG_Spine.h at line 60 (Obj-C):
-(void)queuedAnimation:(NSString*)animationName;
and this to SGG_Spine.m at line 40 (Obj-C):
-(void)queuedAnimation:(NSString *)animationName{
_queuedAnimation = animationName;
}
In the viewDidLoad method of your GameScene you'll need to set the queued animation like so (Swift):
girl.queuedAnimation("animationName")
Then I can evoke it in my GameScene in any event function like touchesBegan (Swift):
girl.runAnimation("wave", andCount: 1, withIntroPeriodOf: 0.1, andUseQueue: true)
where "girl" is the SGG_Spine node that I've created. The andCount:1 part runs the animation twice then returns to the "animationName" That we queued up earlier.