Cocoa Touch (iOS) vs React Native: What are the differences?
Cocoa Touch (iOS) can be classified as a tool in the "Frameworks (Full Stack)" category, while React Native is grouped under "Cross-Platform Mobile Development".
"Backed by Apple" is the top reason why over 5 developers like Cocoa Touch (iOS), while over 170 developers mention "Learn once write everywhere" as the leading cause for choosing React Native.
React Native is an open source tool with 78.8K GitHub stars and 17.6K GitHub forks. Here's a link to React Native's open source repository on GitHub.
Instagram, Intuit, and Yahoo! are some of the popular companies that use React Native, whereas Cocoa Touch (iOS) is used by Snapchat, Apple, and Third Iron. React Native has a broader approval, being mentioned in 719 company stacks & 809 developers stacks; compared to Cocoa Touch (iOS), which is listed in 32 company stacks and 19 developer stacks.
What is Cocoa Touch (iOS)?
What is React Native?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Cocoa Touch (iOS)?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
For a front end dev like me, using a mobile framework for side projects makes more sense than writing a native app. I had used Apache Cordova (formerly PhoneGap) before (because React Native didn't exist yet), and was happy with it. But once React Native came out, it made more sense to go that way instead. It's more efficient and smooth, since it doesn't have the simulation overhead, and has more access to hardware features. It feels cleaner since you don't need to deal with #WebView, using native UI widgets directly. I also considered Flutter . It looks promising, but is relatively new to the game, and React Native seems more stable for now.
I've recently switched to using Expo for initializing and developing my React Native apps. Compared to React Native CLI, it's so much easier to get set up and going. Setting up and maintaining Android Studio, Android SDK, and virtual devices used to be such a headache. Thanks to Expo, I can now test my apps directly on my Android phone, just by installing the Expo app. I still use Xcode Simulator for iOS testing, since I don't have an iPhone, but that's easy anyway. The big win for me with Expo is ease of Android testing.
The Expo SDK also provides convenient features like Facebook login,
MapView, push notifications, and many others. https://docs.expo.io/versions/v31.0.0/sdk/
When we first built the ArifZefen app our focus was around validating our business assumptions and finding a good product fit. Once we got to a few thousand users, it became clear that we needed to make quality a priority and that meant we needed a reliable tool that will allow us to monitor the health of our app. Crashlytics (now Fabric by Twitter ) was on a short list of solutions we closely explored and we were very happy with its ease of integration and the consistency it brought to our Cocoa Touch (iOS) and Android SDK crash monitoring.
Its daily pulse emails were also super informative in giving us a good sense of how each platform was doing in terms of crash-free and new users, daily actives and other relevant session data. These emails also surfaced any anomalies in daily trends, alerting us of any reason for concern. Overall, Crashlytics was instrumental in allowing us to quickly discover and diagnose crashes and it is one of the main reasons we were able to keep our app store ratings reasonable high. But perhaps even more importantly, we were able to set a high quality bar for our users that absent Crashlytics would have been difficult to maintain.
The capability of style customization is one a large deal breaker for frontend SDKs. To solve this, we decided to use styled-components in our SDK, which makes it easy to add support for themes on top of our existing components. This practice reduces the maintenance effort for stylings of custom components and keeps the overall codebase clean.
I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.
React Native is great in that it reduces the overhead of writing native code based on a web app. If written in a good style, Redux part of the app can often just be copied or shared in the Native app - and it just works! What a timesaver.
The framework used to write the mobile apps in this project. I've chosen this because of the "write once run all" (ios and android) mentality.
We are not currently using this product but we have very high interest in learning and using this for mobile apps.
New features of our app are developed on React Native, so we could maintain a small dev team.