Fit to lead

Could you introduce your app in a few sentences?

I’m a workout lover. I usually learn workout knowledge via online videos. It helps me get fit, confident and an overall better life. So based on that experience I decided to create LeadFit to help people get a better life like me. LeadFit picks up lots of great exercise videos from the world’s top fitness superstars and classifies these videos by different muscle groups. You can also arrange your weekly workout plan via LeadFit. In the near future more and more diverse training programs and useful features will be included into LeadFit.

What made you decide to use/switch to React Native?

I’m a software product designer and I have some knowledge about web front-end technology. So I chose React Native as my developing tool since I wouldn't have to learn the native iOS programming language. I love the ecosystem of the JavaScript language. It helps me save a lot of time.

How did you transition to React Native?

At first I used React.js for web products. At the same time I heard about React-Native but I didn’t have chance to give it a try until I built LeadFit. I read the documentation of React-Native and I found the programming concept between React.js and React Native are quite similar. So I decided to give it a try. To be honest, with the experience of React.js I didn’t have much trouble writing UI code with React Native. But I encountered some problems when configuring 3rd party libraries with Xcode. I recommend developers to catch up with basic knowledge of Xcode configuration. Moreover, when you're coding for mobile, you have to handle network status for communicating with APIs. It will be a new experience for most web developers. So don’t forget to think about the scenario of network status when building your app with React Native.

What has your experience been working with React Native in terms of app performance, have you noticed any impacts?

I have noticed that there are two big performance impacts of React Native. One is using multiple scrolling view (e.g. FlatList) in a screen will cause touch events to be blocked. The other is animation does not seem to be as smooth as with native.

The performance impact of the FlatList component of React Native still exists in my app. Although there are some alternative component libraries but I don’t like their concept of usage so I prefer waiting for the official solution. The performance impact did actual influence the user experience of my app but I think it’s tolerable for users.

How has adopting React Native affected developer productivity?

I can leverage many libraries which I am already familiar with (e.g. lodash etc.) in my project. It makes me comfortable and saves time.

Which tools, libraries and frameworks are part of your development process with React Native?

For IDE I’m using Atom with Nuclide.
For libraries I’m using React Native with Redux, React Navigation, Flow and ESlint.

What resources have you used to learn React Native? Books, tutorials, courses etc. Anything you can recommend?

I learnt React Native on Udemy. A lot of great tutorials there. Because I’m lazy so I love video tutorials more than books or articles lol.

About the learning resources. I’d recommend Stephen Grider’s The Complete React Native and Redux Course and React Native: Advanced Concepts on Udemy. His tutorials have both quality and practicality.

What are some things that you don’t like about React Native or that need to be improved?

Some basic native features React Native doesn’t support yet (e.g. screen orientation etc.) I hope it can support these kind of basic features soon. Another thing is upgrading React Native. If there’s a breaking change I need to spend lot of effort to adjust the Xcode part.

Anything else you would like to mention?

I would like to thank the React Native team, you guys are doing a great job 👍🏻
I would also like to thank people who give LeadFit a try, if you guys have ideas about the product or questions about React Native, you're welcome to contact me via: wellytech2017@gmail.com or the Facebook fan page of LeadFit
If you’re a workout lover, don’t forget to check LeadFit here.