When thinking about developing an iOS mobile application the key decision is deciding on either native or hybrid development. Both have their advantages and disadvantages and the correct choice comes down to doing some research and contrasting it with your goals. For hybrid development the tool of choice is Facebook’s React Native and for native you’d probably go with Apple’s dedicated language Swift. Obviously that’s only the basics and the choice isn't as simple as that.
A Swift successor
Swift is meant to be a successor to Objective-C, the programming language Apple had been using for decades. It had become a little bit obsolete or to put it mildly lacking in modern functionalities, as it was created in the 1980s. Swift was introduced at the Worldwide Developers Conference in 2014 as the dedicated way for developing iOS applications and has received a lot of substantial updates since then. A number of very popular applications like Twitter, SlideShare and Airbnb have been developed using Swift, and it's more than likely a lot more will be in the near future.
Hybrid app development = React Native
Swift vs React Native for iOS
Obviously the big advantage with hybrid development is using one codebase for creating an app for both platforms. Android holds a large share of the market so even when going for only an iOS app it’s good to keep your options open for the future. That said, React Native holds a number of key advantages even when considering just iOS app development. In the broadest sense the choice should be focused on the aims of the particular project and prioritizing one aspect of it over another. Obviously the choice is much more complex than just focusing on speeding up development as much as possible and it’s worth it to do a deeper dive into the key differences:
Performance: Obviously performance can be dependent on a variety of factors such as individual setup or the size and complexity of the application. That said, React Native takes advantage of native code optimizations and tools which can have a large impact regardless of the other factors.
Stability: The one area where Swift has React Native beat is application stability. The fact that it is designed for a particular platform and uses type safety means errors are easier to spot and the performance and stability is optimized with iOS in mind. The hybrid approach and focusing on faster development has its drawbacks here when contrasted with one dedicated to a single platform. Although obviously we’re just talking out of the box here as various platform specific libraries and development tools can vastly help React Native in this regard.
Why not both?