Could you introduce your app in a few sentences?
Guess the Date is a date guessing game available for Android and iOS. The goal is to guess the date of creation / release of various things such as paintings or video games (for now, as many themes will be added in the future). For that, you will have limited time and you will discover information about the guessed thing if you find the date (creator, link to wikipedia, etc.).
It was made during my free time and it was my first React Native try.
What made you decide to use/switch to React Native?
I started from scratch using the react-native-cli. I didn’t use Expo as I wanted to use native libraries not available for Expo. The main reasons I used React Native are that I worked mainly using web technologies (even though I’m a software engineer), I wanted the app to be available for both Android and iOS, and I wanted the app to be created quickly. I worked before with React so picking React Native over other technologies was obvious for me.
How did you transition to React Native?
I used React before and work mainly using JavaScript technologies (such as Vue.js). I started from scratch, following the React Native guide from the official site. I read some best practices before going into the development but jumped right in quickly, using mainly the official docs when needed.
Have your tried other cross platform technologies before using React Native?
It was my first try of a cross platform technology.
What has your experience been working with React Native in terms of app performance, have you noticed any impacts?
I have encountered only one performance difficulty during my development. I was using a FlatList
with an important number of items (600 images in my case). The first render and the scrolling wasn’t smooth and very laggy for the majority of phones. I solved the problem using recycler list view and using React Native fast image and following the advice to optimise big lists of items.
How has adopting React Native affected developer productivity?
I was the only one working on the project. 90% of the time, it was a real pleasure. The only frustrating parts was the configuration and every time I added a native libraries using the react-native link
command. For Android, I didn’t encounter any problems, but for iOS, the command wasn’t working. At the end, I was adding the native libraries using the manual instructions to solve my problems.
Which tools, libraries and frameworks are part of your development process with React Native?
I used VS Code with the React Native extensions. No special build tools apart from the react-native-cli. I used Reactotron to debug and log. I used two main libraries: Realm and React Native Firebase.
What resources have you used to learn React Native? Books, tutorials, courses etc. Anything you can recommend?
I mainly used the official documentation as well as StackOverflow and many Github issues when I was encountering problems with the linking. I also keep in touch with the React Native news thanks to the subreddit.
What are some things that you don’t like about React Native or that need to be improved?
If I add to balance the positive opinions, I would say that the native library linking is not trivial and can be frustrating. I also found the build time for iOS to be quite long in comparison to Android.
Anything else you would like to mention?
It was a pleasure to use React Native for my first app. I will probably use it again if I want to deliver an other app as it allowed me to develop quickly, efficiently and for both iOS and Android.
You can contact me using this email address: contact@romaincascino.com