Posted on May 12, 2017
Many companies today aim at creating software solutions that can run on all mobile platforms and PCs at the same time. And this is particularly important when developers build an app that motivates people to use it in any situation and any place.
What We Created:
- An Uber-app for mutual help. It is a unique solution that we started building after a detailed market analysis. It turned out that there were no similar apps allowing users to ask for help quickly. We only found very simple apps that should be bought or instead of getting help, users had to watch ads. Therefore, we developed a new concept of a completely free app designed for both iOS and Android platforms.
Choice of Development Tools
While considering tools for development, we faced the choice between NativeScript and React Native. We wanted to evaluate these technologies and get a program solution applicable to all platforms.
At first, we chose NativeScript, but then we quickly realized that we had made a mistake due to problems with the creation of native components and setting up routing.
Thus, the development team switched to React Native, since it was easy and convenient to work with. We received a simple process for building native control components and, as a result, the development process became clear and easily structured.
Cons of React Native
There are downsides in any development environment, and React Native is no exception:
- An inconvenient process of app update to the latest versions of the target operation systems. During each update, it is required to create files all over again that are responsible for the native code applied in iOS or Android.
- Growing dependency on plugins used for work with native components (to interact with cameras, maps, etc.). Besides, components often contain errors that cannot be fixed immediately.
- React Native requires constant development and rework.
Pros of React Native
- React Native provides an extremely convenient templating with JSX.
- A fast development process. As long as technical approaches to project implementation are thoroughly examined, the project development advances rapidly.
- There are no limitations on the choice of IDE. For convenient work with ES6 and React Native components, we used free Visual Studio Code.
Additional Tools Applied to Build an Uber-App
XCode – a development environment for configuring a native part of iOS apps.
Fabric – a platform for distributing iOS apps.
Crashlytics – a service used for monitoring app errors on devices.