I would like to have a stack with React Native tools preinstalled in order to cut deployment time. I asked on GitHub whether I should create a React Native stack/box or update the Xamarin one in order to make a “cross-platform stack”. @viktorbenei redirected me here and gave me additional infos:
there’s a feature request about having multiple workflows for one project: this would be nice to have but not needed for this feature request (you can always create two projects with the same cross-platform stack)
the Xamarin stack is updated with the development cycle of the Xamarin team
there are many Xamarin stacks available
So… should I make a PR for:
A) creating a React Native stack
B) changing Xamarin stack to Cross-platform stack with React Native tools and Xamarin
We definitely plan to have a better answer for this question, but we’re still discussing a couple of details. Our schedule right now is to start working on full React Native and Ionic/Cordova support early next month, starting with creating up to date sample projects and base workflows, and then decide what should be preinstalled and where.
Once that’s decided we can move on to auto detect RN/Ionic/Cordova projects, auto selecting the right stack and auto generating a suitable base configuration, just like what’s available for iOS, Android, Xamarin, MacOS, fastlane, … projects right now.
In the meantime, if anyone have any feedback please let us know!
Particularly we’re interested in:
If we create a separate “cross platform” stack (Xcode + Android SDK combined stack), should that be built on the latest Xcode and latest NodeJS version? Or should we use the latest LTS NodeJS version instead? E.g. right now, should we use NodeJS v6 or v7? Similarly, should we use the latest Xcode version which is 8.2.1 right now?
Should we provide multiple stacks or would a single one be sufficient?
I think for Node, v6 is best as I’ve found many dependencies just aren’t v7 ready.
As for Xcode, I think the latest should be a priority as it will encourage developers to ensure they have their own Xcode installations up to date. 8.x has been out for a while now, and it’s pretty backwards compatible as is (also the automatic signing stuff is gold)
Hopefully it will, but it might not be required either - we have to test this, and a couple of other things before we could commit to creating and maintaining these new stack(s)
I agree it would be nice to have an image with RN tooling baked in to cut down on build time. FYI, right now we are using the Xamarin Stable with Xcode 7.3, on OS X 10.11 (El Capitan) - LTS Stack with the “Install React Native” step for our RN apps. We also are on node 6 for our dev environment.
Yeah… as I recall we were having some sort of issue with Xcode 8 signing that wasn’t playing nicely with our Appium tests and haven’t had a chance to dig into it yet.
Yarn pre-caching of libraries is an interesting idea, although you’d probably need to cache quite a few versions as each project might be on different versions of each package. And for floating dependencies it’d only speed up builds for as long as the cache was kept up to date. We’re not using yarn at the moment but hope to at some point. A gradle pre-cache might also be nice if possible.
Some more stuff that comes to mind:
cocoapods
gradle (I think this is included with jdk or android sdk?)
nvm, with preinstalled versions of the latest patch for each major node release (at least since node 6 LTS “Boron”)
@Tlvenn right now we suggest you to use the Xamarin / Visual Studio for Mac stacks as those have both Xcode and Android tools. Of course those are updated as Xamarin updates its tools.
If you have any suggestions or issues why a separate stack should be created please let us know! For now we don’t have enough info why a separate stack should be created and if should what it would include and how it would be updated.
Just an update: a new “Hybrid” stack was released, with Xcode 8.3.3 for now, but we’ll provide an Xcode 9 version too in the near future:
I believe we have all the preinstalled tools now either on the Hybrid stack or on the Visual Studio for Mac stack (and on the upcoming Hubrid with Xcode 9 stack), so I’ll go ahead and mark this Feature Requests as completed. If you’d still have a request what should be preinstalled feel free to create a new Feature Requests or comment on the relevant discussion.