Mobile native transitions for Meteor 1.3

I’ve been working on native transitions for 1.3 and have seen great performance across all devices. Below is a quick video that I posted to Twitter a couple of weeks ago showing the transitions working on 2 older devices (a iPhone 5 and a Galaxy s3) as well as a test on an iPhone 6s.

It is in a pretty stable state at the moment so I thought I would publish a demo repo with the work to date for feedback, and testing:

https://github.com/jamielob/native-transitions

To test on your phone simply clone the repo and meteor run ios-device and/or meteor run android-device.

Benefits to a native transition approach:

  • Speed and performance: doesn’t rely on JS or CSS animations which don’t perform well on older devices, especially Android.
  • Only applies to mobile (cordova) devices, doesn’t bog down desktop.
  • Template based: core plugin doesn’t rely on or interfere with the router - simply listens for a URL change.

Looking forward to feedback on how you would like to see this develop.

14 Likes

Questions I currently have for the community:

  • Should this move away from Template.templateName.transition(); so that it can more easily be used away from Blaze.
  • If the answer to the above is yes, what would work for you? A simple nt.transition() function you could call?
  • If you test it out, what device did you use and what performance did you see?
1 Like

This looks great! We should probably link to it from the mobile section of our guide (which I’ll get to soon, I promise…).

2 Likes

I agree in moving away from blaze using the example you gave for calling the function.

Looks and feels awesome! Great performance on iPhone6. Do you see a chance for native SwipeBack?

Yes! I’ve raised the question with the Cordova plugin developer but I think it’s entirely possible. At the very minimum I think that the drag to go functionality that I’ve demo’d previously could be made to play nicely with it.

Are you thinking of a React use case?

1 Like

In my specific case I’ve been thinking of Vuejs as the view model. In any case I think that decoupling it from blaze and make it a function to call is the way to go.

Hi @jamielob . any update on this great plugin ? Couldn’t find it in atmosphere.