As a team of software engineers, we spend quite a bit of time prowling emerging libraries on Github. If you’re not already aware, a good way of keeping up with popular libraries is to follow this. We’re going to share our favorite JS libraries on Github currently.
React isn’t new to the scene by any means after being open-sourced in 2015 but it has come a long way in the three years it’s been released. React was a pioneer in a new method of creating web interfaces that focuses on declaratively defining components. This allows React projects to have richer and more dynamic interfaces while still being easy to write and maintain. React is developed by Facebook and has been adopted across much of the Facebook and Instagram ecosystem. You can check out which Fortune 500 companies and up-and-coming startups are using React here. React also has a native implementation called React Native.
“With React Native, you don't build a "mobile web app", an "HTML5 app", or a "hybrid app". You build a real mobile app that's indistinguishable from an app built using Objective-C or Java. React Native uses the same fundamental UI building blocks as regular iOS and Android apps.”
So far, we’ve built multiple websites with React and four apps with React Native and have really enjoyed working with both. There are some caveats to it that we may expand on in another post but React and React Native still allows our development team to push out projects faster.
Redux allows for an easy way to store data and events and is essentially a unidirectional data-flow architecture for applications. The typical use case for Redux is to be used as a complimentary library to React that helps data be synchronized across an application, but can be used in conjunction with any other view library.
“My goal was to create a state management library with minimal API but completely predictable behavior, so it is possible to implement logging, hot reloading, time travel, universal apps, record and replay, without any buy-in from the developer.”
Redux has become essential in our workflow for moderately sized projects but deciding if Redux is needed at the beginning of a project should be considered. This article can help with that decision.
Flowtype is a static type checker. To rephrase that, Flowtype will give real-time feedback as you code to identify bugs and can help with scalability when dealing with other developers in the same environment.
This helps our team to catch potential bugs in code before the code is ever run allowing us to ship fewer bugs to production.
React has been our team’s preferred environment for the last few projects, but Angular 2 is still a strong alternative framework for projects requiring an easier out-of-box experience.