React offers an abundance of composable and stateful solutions to design a user interface. However, when we’re talking about React Native, customization of your app may become a torturous task if you are going to build all themes and components on your own.
Fortunately, the framework is supported by a vibrant community, members of which have already seen about you and developed numerous UI component options to style your product. Here are our top picks.
NativeBase
Let’s begin with an open source library called NativeBase. It is prepacked with a vast collection of ready-to-use UI components for creating cross-platform mobile applications. With NativeBase, you obtain the perfect solution for maintaining the balance between iOS and Android user experience. That is to say, the JS code-base is the same, but the feel and look are specific for each particular OS.
What you get
- A lot of prebuilt ready-to-use components
- Native look and feel on iOS/Android like it should be
- Built-in design
- Customization using `StyleSheet`
- Intuitive component structure
- Solid documentation
- Three preset themes (Platform, Material, and CommonColor)
If a built-in design is enough for the product you’re developing, and you have no intention of changing much, you will appreciate the library even despite it doesn’t look compact. We recommend relying entirely on NativeBase as a toolkit for the next project, rather than implement some separate features of it.
React Native Elements
The next representative of React Native UI components Android/iOS is most developers’ favorite toolkit. React Native Elements (RNE) is a sort of early Bootstrap analog in the mobile world because they have some similarities in what they provide namely a layout with simple elements. With RNE, you get a bunch of component properties to enable customization. Every component has a container that represents the traditional RN <View/>
with default styling. On that account, the containerStyle
property should be the major thing to consider if it’s necessary to change the way two components react on screen. Other elements may also provide customer style properties, so the component documentation should be referred to.
What you get
- A decent list of small components like avatar, buttons, form elements, icons, typography, sliders, etc.
- Complex elements like pricing, rating, card, search bar, checkbox, list items, etc.
- Customization using component properties
- Solid documentation
- Themes support
- React Native Web support
The UI Kit puts an emphasis on the component structure and provides full control over their design. With RNE, you get a customizable and easy-to-use toolkit for cross-platform development.
Nachos UI
Yet another good looking list of more than 30 customizable React Native iOS UI components. Perhaps Nachos UI has not achieved the above mentioned toolkits’ level yet, but it’s gradually getting there. Its way of customization is similar to that of RNE’s use of the style
property. In addition, you get original themes thanks to a prepacked theme manager.
What you get
- 30+ pre-coded UI components including typography, radio, spinner, slider, card, etc.
- Customization using component properties
- React Native Web support
Nachos UI offers some awesome components for the RN user interface, so it deserves a place in our chart.
React Native Material Kit
This React Native UI components library is designed to introduce Material Design to RN apps. Compared to other MD solutions, RN Material Kit can boast an advanced customization API, which allows you to define your own styles easier and build custom components in addition to preset dynamic ones like range sliders, spinners, progress bars, etc. However, the components list is rather limited.
What you get
- Material Design-based components
- Advanced API for building custom components
- Dynamic components that are not available on some frameworks
- Limited basic set of UI components
RN Material Kit works great on both the largest mobile operating systems. However, be prepared for the imprint of Android UX of your app even on the Apple’s operating system.
React Native UI Kitten
In this open source framework, UI components have a similar style. RN UI Kitten was created with the goal of releasing engineers from visual appearance concerns, so they could focus on the business logic. Therefore, customization of elements is made with the aim of easing your efforts and saving time. With that in mind, the RkComponent
class, a concept similar to CSS classes, contains methods responsible for customization like RkTheme
, which allows you to make a component theme-dependent, and RkStyleSheet
, which is a replacement for regular StyleSheet
.
What you get
- Limited set of commonly used elements with similar UI design
- Flexibility for customization and styling using the RkComponent class akin to CSS classes
- Easy change of themes
The peculiarities of RN UI Kitten provide a user-friendly and time-efficient customization method.
Other UI libraries
The following UI libraries deserve separate attention and can be combined with other UI toolkits to bring specific benefits.
Styled Components
Styled Components is not a regular components library but a powerful tool to create the RN UI in a CSS-like way, meaning that you need to write the actual CSS code for styling. The library’s syntax is based on the tagged template literals. Styled Components are compatible with React for both mobile and web. I.e., you can have one approach for web and mobile applications.
What you get
- A powerful tool to build components through CSS
- Syntax based on the tagged template literals
- Simpler component styling
With Styled Components, you have the classic CSS syntax back to ensure simpler styling of UI components.
React Native Vector Icons
If you click ‘Browse all” on the GitHub’s Vector Icons page, you’ll get over 6K icons that can be used in your future application. It accumulates icon libraries including FontAwesome, MaterialIconsSome, EvilIcons, and others. iOS and Material Design icons represented by Ionicons are also available.
What you get
- Large amount of platform-specific native icons
- Versatile icon libraries including FontAwesome, Foundation, Entypo, EvilIcons, MaterialIcons, Ionicons, and others
The library offers a plethora of platform-specific native icons to shape different components including the logo, buttons, bars, etc. All these are easy to style and integrate into your project.
Wrapping Up
The listed React Native UI components iOS/Android do not limit the toolkits available for the framework. It is quite possible that some readers may want to opt for other options like RN Material Design, Snowflake, GL React Native, etc. Sharing dev experience is a way to improve knowledge and skills of the community, so we hope that our picks will be useful for your project.