Could you introduce your app in a few sentences?
Our app is called Pathbooks, an interactive platform with hundreds of non-linear books. You start reading normally but at the end you will be presented with two or three options. The ending of the story is affected by the decisions you make. Most pathbooks have around five different endings. Pathbooks is available on both iOS and Android.
What made you decide to use/switch to React Native?
The very first proof of concept was built using Fuse. Thanks to it’s easy syntax we were developing at full speed. Most of our developers came from HTML and CSS so Fuse was great. However, Fuse went open which is great news for developers but not so good for companies.
Our CEO was very skeptical about using an open source & not very famous platform. We still use Fuse for demos and prototypes but our main app is build with React Native.
How did you transition to React Native?
To be real honest at first React Native seemed intimidating. Bunch of classes everywhere, components, lifecycles and routing kept us from using React Native.
After a while we decided to dive deep into the docs and I can firmly say that was the best decision we could have made. We decided to use RN because of the compatibility, we wrote once and it worked pretty much everywhere and the fact that there are packages for pretty much anything. With only a few weeks we were able to build a demo and within three months we were ready to ship Pathbooks.
Most of our developers come from jQuery, one of our challenges was ES2015 (AKA ES6) but there is a lot of documentation online.
Once we got the hang of it the next issue was backend. Since we acquired a great deal of ES6 knowledge we ended up building part of our backend in NodeJS.
Have your tried other cross platform technologies before using React Native?
Mostly Fuse, we really loved the easy syntax and fast reloading but there are almost no packages so if you needed some feature you had to develop it yourself which was very time consuming.
Another thing we really loved was the UI, React Native lacks completely of a user interface but Fuse has one and it made it really easy to create and reuse components.
We still use Fuse for demos and prototypes but Pathbooks is 100% React Native.
What has your experience been working with React Native in terms of app performance, have you noticed any impacts?
One of the first thing we noticed was the speed. It’s a lot faster and smoother but one of the downfalls were the animations. It is really no fun doing animations in React Native but that is were Lottie came to the rescue.
How has adopting React Native affected developer productivity?
At first we started slow, mainly because of ES6 but in a couple of weeks we were coding like crazy.
The developers were actually very happy with it and they even started their personal projects on RN as well. Also, we are currently making our company CMS in ReactJS.
Which tools, libraries and frameworks are part of your development process with React Native?
Regarding IDE most of our developers go for Atom but that is a personal choice. The first thing we needed was Editorconfig for code consistency and cleanness. For state management we use React-Redux, for Auth RN Firebase and for backend connections Axios.
What resources have you used to learn React Native? Books, tutorials, courses etc. Anything you can recommend?
What are some things that you don’t like about React Native or that need to be improved?
At first, one the really annoying parts of RN were upgrading. You had to use the CLI and then resolve conflicts manually. But fear no more, they are working on cleaning the repo.
Anything else you would like to mention?
Download our app today and start reading like never before. We have hundreds of Pathbooks and we are adding more each week. For those without wanting to change the ending we also have linear books.