react-native-svg) naturally depend on React Native core again - thus we need to ensure that they reference the same React Native library which you link to from the outer project. The problem now is that the native libraries (e.g. Everything which is managed by Cocoapods is shown in orange in the diagram below. references to React Native core), is modified to contain this single dependency. Furthermore, your own project (which by default has e.g. The basic principle of CocoaPods is depicted in the following diagram: It creates a "Pods" project, which exposes a static library, which contains the native dependencies. Some people see the holistic approach of CocoaPods as a little dangerous but for us, it worked quite well now with almost no problems.
We settled on CocoaPods after trying out both. We've checked the two community dependency managers for ObjectiveC: CocoaPods and Carthage.
REACT NATIVE IOS POD FILE INSTALL
We'd like a standardized way to install native dependencies.So be aware, I am no "native" ObjectiveC/Swift developer, so some details might be inaccurate. a gradle-based build and a standardized way to manage dependencies. Note: I am sure the XCode build system also has its benefits, but to me personally, it definitely lacks the conciseness and expressiveness of e.g. To me, this is extremely fragile, and when skimming GitHub, you see the same issues appearing again and again on many React Native libraries. Just having a single setting "wrong" of the 100s of settings in XCode will then lead to very strange build issues. For XCode, on the other hand, you have to work with extremely verbose xcodeproject files, which have to be checked into Git, and are generally very fragile to handle in my experience in React Native projects. IntelliJ for Java has the possibility to auto-configure itself based on the maven pom.xml or adle file – thus there is a human-readable, minimal and expressive dependency listing and build description. the JVM has Gradle/Maven PHP has Composer, the JavaScript world has NPM.įurthermore, e.g. Most other well-known programming platforms have a central and standardized package repository and build system, e.g. suboptimal (IMHO).Īs soon as you have to leave the JavaScript world to integrate a native binding, things become kind of difficult - especially on iOS: This is because there is no official package manager for Objective C / Swift, and (in my opinion) no really good build system - but you rather need to "drag and drop" XCode projects into your main project as explained in the React Native docs. Read on for a description of the issues, and our solutions to them! Our Problem: The build system for iOS is. However, there are some problems to solve in order to nicely manage native iOS dependencies. That's why it was very natural for us to use React Native - a nice toolkit to build cross-platform apps.
import react_native_branch // with 3.We at Sandstorm really embraced React in lots of projects, ranging from internal tools, our product exply, to customer projects and the Neos CMS React UI.