Corvus - ravens - notifications - map - trip - travel - crows

Could you introduce your app in a few sentences?

Corvuse notifies your friends and family when you arrive at your destination. How many times did you forget to tell your parents that you arrive when you are on a trip? I could not count them... so Corvuse was made to help with this.

Corvuse is a personal developer project on which I have been working for the past one and a half years in my free time. Currently it is available for Android and iOS.

The app has been built and designed to be used by anyone, having easy and simple flows to set up your trip. You just have to select the area where you want to notify (normally would be your destination), then select who you want to notify, and finally write a message if you want. Corvuse will start tracking your trip until you reach the area and a push notification will be sent to your contact.

Do not worry, Corvuse cares about your privacy and your location is not visible to anyone except you nor is it sent to anyone. We do not even save your location in our systems, all the calculations are done locally in your device.

What made you decide to use/switch to React Native?

The idea to start the application using React Native was because we started looking at this technology in my company. So I decided to increase and improve my skills and knowledge in this technology by developing my own application.

I had the perfect excuse to start the project: I had something I always wanted to automate (notify contacts when you've arrived at a location) and improve my developer skills with a new trending and promising technology.

How did you transition to React Native?

Corvuse was my first project on mobile development, so all that I did was from scratch, learning from the beginning.

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

React Native is the only technology that I have used to develop mobile apps.

The background I have was more aligned to the back-end side. I’ve been working in a software company related to sports betting for almost 6 years, and worked with a lot of technologies, but React Native was the first in the mobile development space.

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

I can’t compare with other technologies as React Native was the only one that I’ve used for mobile apps, but I can ensure that it decreases a lot the resources needed to build and design multi-platform apps (iOS and Android).

I did not have any issues in terms of performance and have always had a great experience during development, testing and production stages.

How has adopting React Native affected developer productivity?

React Native has a really good point that is the use of JavaScript as the main language. Most of the developers out there already know the language, or know a similar one.

Thanks to the new versions of JS, like ES6+, the language has become more easy to understand, predictable and maintanable, which helps to reduce the issues of learning or adopting the technology.

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

I use WebStorm (IntelliJ platform) as the IDE. Using a MacBook Pro for developing, so I have the iOS and Android simulator, which is the most powerful tool we could have.

Trello is used to track the work and organise the tasks. Git and Bitbucket is used for the repository and version control.

Firebase is used for the database, authentication, push notifications, events, analytics.
Some other libraries used in the app are:

  • Redux (persist, thunk) for state management
  • Babel 7 to use latest JS versions
  • Prettier + ESLint for code quality
  • Jest + Enzyme for testing
  • Other libraries for some components: modals, drawer, alerts..

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

I completed the Udacity Nano Degree for React Native:

I would recommend this for anyone who wants to learn about React Native, on a medium level. For higher levels, I would recommend the platform trainingit, as they have a course for advanced React developers. However it is in Spanish.

What are some things that you don’t like about React Native or that need to be improved?

I think the only thing I missed is a better documentation. There are a lot of things which are not properly explained or can be addressed in a better way.

But in general, I do really like the whole ecosystem and the technology itself.