Back in 2015, I built Revisify, a free study tool for students to use. Revisify has matured on the web for 2 years now and I’m in the process of building an iOS and Android app. I’m a complete newbie to app development, I only started in August 2016. After some research, I found that I had 2 options to build the app:
- Native development i.e. Swift/Objective-C and Java
- Hybrid development i.e. React Native, Ionic, Xamarin etc.
I decided to learn the ways of Swift and Xcode by reading the book iOS Programming: The Big Nerd Ranch Guide and going through tutorials online. I liked Swift and spent 8 weeks straight learning iOS development before discovering Facebook’s framework for building apps and I quickly realised that React Native was better suited to my needs. Let me explain why.
I can share most of the code for both iOS and Android apps
React Native Apps are… Native
There are different frameworks like Ionic and Xamarin which provide a means of writing code once and deploying it to Android and iOS. In hopes of finding the best framework, I researched the pros and cons of each solution.
Ionic, unlike React Native, renders a web view rather than native code. This means that Ionic apps don’t have that ‘native’ feel to them, meaning they feel more like a web browser than an app. While this would make developing the app easier since I could just use a majority of the code from my website in the app, it wouldn’t provide the ‘app’ experience which many users are accustomed to.
The community is already very large
While React Native is (at the time of writing this post) almost 2 years old, the support is incredible. There are currently 17,188 repositories when I search for ‘react native’ on GitHub and 10,012 questions tagged with ‘react-native’ on Stack Overflow. Just to think how new this framework is, there are already plenty of people who are working on or using React Native. As I’m building my app now, I’ve found that there are lots of libraries that have helped me to add a certain feature or to simplify my development process. The only downside is that support for the latest features in iOS and Android will take longer to work with React Native since libraries must be developed to do so. However, as the community expands further, I’m sure this delay will become much shorter.
You can (sometimes) bypass slow App Store update approvals
It’s a beautiful framework and it’s easy to learn
As I’m a web developer, I found myself right at home with React Native. If you have never used React on the web before like me, then it takes a little to adjust, but the learning curve is surprisingly minimal. React has a focus on creating reusable components like buttons, text inputs and images which makes development easy as everything is modular.
Honestly, React Native is fantastic, there are some downsides to it compared to traditional native apps, but for my needs, its advantages far outweigh its disadvantages. I genuinely believe that this is the future of app development and I’m excited to be using it for my app.