The main challenge of this app was accessing a native module written in Objective-C from our JavaScript code. Fortunately, React Native has the means to ease the communication between those two worlds with relatively few lines of code.
We focused only on iOS for this app, but the reality is that building the same app in Android should follow a very similar process taking into account that we should build our native module in Java instead of Objective-C. Besides, we learned the process of including an icon and a launch screen in our app to complete the development cycle prior to release.
As we only had one screen in our app, we opted not to use any routing or state management libraries, which enabled us to keep the focus on the communication between our JavaScript code and the native module we implemented.
We also created some animations to emulate an analog tuner which gives an attractive and fun look to this app.
Besides the icon and the launch screen, we also took care of another visual...