The components of the App are built using the core components of React Native. The theme also constantly incorporates various other latest technologies.
React Native #
In each new release, React Native aids in streamlining the development process and enabling the developers to concentrate on the essential elements of the program. It is the mobile app development that advances the quickest and ultimately allows you to produce an isolated product with frequent results. The adage “Learn once, write anywhere” sums up React Native. React Native takes control of the view controllers and uses javascript to programmatically produce native views. This means that you can combine the simplicity of React development with all the speed and power of a native application.
Expo #
Applications for react native are created using expo. It gives you access to a number of tools that make creating and testing React Native apps easier, as well as the user interface and service components that are typically found in third-party native React Native components. All of them are available in the Expo SDK.
Expo is used to build Enatega. Without you touching Xcode or Android Studio, it is powered by Expo SDK to provide you access to your device’s capabilities and the Expo services to handle the labor-intensive task of generating your app binary and submitting it to the store. The “bare” methodology gives you complete control over your iOS and Android projects while simultaneously accelerating development with the Expo SDK and React Native.
React Navigation #
In React Native apps, routing and navigation are handled by React Navigation. Some Navigator components are shared with Enatega.
- Drawer Navigator Its used to make a drawer when a user swipes from left to right or presses the drawer icon
- Stack Navigator Stack Navigator stacks screens on top of each other and only one screen is shown at a time
- Switch Navigator Switch Navigator is used for the authentication flow inside application. Currently no authentication happens in Enatega but for good practice all routing related to authentication is made using this
Apollo GraphQL #
Modern apps are unsuited for REST architecture, which is why GraphQL was developed. The point-to-point structure of REST, a procedural API standard, encourages service developers and users to plan ahead for each use case. Development is noticeably slowed down when frontend teams are required to request new endpoints on a continual basis from backend teams, frequently with each new screen in an app. Independently, both teams must move quickly.
Redux is typically used for application level state management, however in our project, we made advantage of built-in state management in Apollo. Redux has a steep learning curve for new users and too much boilerplate code, which bloats the code. Since we already utilize Apollo as a replacement for REST, we didn’t need to use any external state management libraries; instead, we used the built-in state management offered by the Apollo Client. It integrates seamlessly with our medium-sized application.