Hacker Buzz

A Hacker News reader built with ❤️ for RN

Could you introduce your app in a few sentences?

I created Hacker Buzz, a Hacker News reader as a personal project in order to gain an deeper understanding of the React Native workflow. It is primarily targeted for tech enthusiasts and entrepreneurs, who want to stay current with what's happening in tech/startup world. It's available for both Android and iOS and I also thought that it would be a great idea to open source my implementation, which is on GitHub.

What made you decide to switch to React Native?

I’ve been into iOS development for the last 3 years, but during the Summer of 2016 I stumbled upon an article on Ray Wenderlich. I was amazed by the fact that you could build an app for both Android and iOS devices, with a shared codebase. Although I hadn’t programmed anything in JavaScript at that time, it was relatively easy to pick up, so I started experimenting around with RN in my free time. I started working on Hacker Buzz in May and I was really surprised, by how quickly I managed to progress. It felt like the available toolset, like hot reloading allowed me to get 80% of the work done in 20% of the time. In addition to that, the community is open to new considerations and always strives to improve. React Native became my go-to framework for mobile development, and I’m very excited to see what’s coming next.

How did you transition to React Native?

Moving away from Cocoapods to the npm packaging system was a smooth, although dealing with package updates can sometimes be a hassle, especially when upgrading RN. These issues are mostly resolved quickly, but sometimes required jumping into the node_modules folder and making the change myself. VS Code is my go-to text editor primarily due to its ever growing marketplace of extensions and plugins, which ease and simplify development so that you can focus on what matters most, the end result.

I took Stephen Grider’s ever popular React Native & Redux course back in January, which was a nice introduction to ES6. I found it a bit weird working with a weakly typed language, but existing tools such as PropTypes or TypeScript solve this issue.

Have your tried other cross platform technologies before using React Native?

Don't have much to add to that. I've looked at Cordova and Ionic, but there was nothing appealing at the time.

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

It seems to me that the performance of an iOS app built in React Native would be pretty much on par with one built natively, but that depends on the complexity of the application. For example, it would be really difficult to distinguish any performance bottlenecks for an app that would fetch data and display it a table. You might start seeing ‘lagging’ when you introduce large data sets or incorporate performance-heavy animations. This brings me to the Android eco-system, where these performance barriers are clearly present for an app built in React Native. Performance has definitely improved over the last year, but if you were to compare a React Native app built for both platforms, the iOS app would be more ‘fluid’.

How has adopting React Native affected developer productivity?

Developer productivity has definitely increased. The fact that you can quickly build and layout components, without the need to re-build the project is fantastic. Adopting Redux allows you to write clean and testable code, which will allow you write apps that behave consistently. Obviously, not everything can be built on the JavaScript side and sometimes you need to rely on native development. Having prior experience would definitely be an asset, but it’s not a show-stopper with adopting React Native.

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

Navigation: react-navigation
State management: redux, redux-thunk
Debugging: redux-devtools-extension, redux-logger
Testing: Enzyme, chai, Jest
Linting: ESLint

Components:
JS.coach
Awesome React Native
UI OH MY for UI inspiration

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

Definitely one of the best courses out there to get started with RN: The Complete React Native and Redux Course

More tutorials/courses on Egghead

Some more useful tutorials/articles from freeCodeCamp

I find that React Native books go out of date fairly quickly, so I stopped reading them back when I started. I once picked up a book, which was referencing v. 0.18, when I was on v0.30 at the time.

The React Native Facebook Community group is constantly active and has some interesting discussions.

This an awesome news letter worth signing up for.

Anything else you would like to mention?

I think the only thing worth mentioning would that if one has doubts about React Native, they should definitely give it a try and they're not going to regret it. Worst comes to worst, they'll learn something new!