The client had a Native iOS application and PHP backend developed, but both components had maintainability problems. He approached having the following goals in mind: rewrite the backend on Python, develop an Android application, refresh the design, and add monetization features.
It was decided to rewrite the native iOS application with React Native to have a single code base for both platforms and improve the overall maintainability of the system.
One of the main challenges was a very animation-heavy app UI. React Native is a great technology, but it challenges engineers to develop beautiful complex animations that run smoothly on both platforms.
The mobile app has a very clean architecture and code styling that allow great possibilities for performance optimization and flexibility to add more features in the future. The app backend was designed with high security, stability, and maintainability. These things are not always obvious but extremely important through all the stages of a product life cycle.
We used Firebase heavily for authentication, push notifications, real-time events, and chats. It really is a great technology that can save a lot of time and budget if used correctly.
Despite all the concerns, the frontend team managed to make all the animations run smoothly and achieve a pure native app feel generally.