The main objective of the project was to facilitate the orientation of participants in conferences, which are held several times a year, both online and in hybrid mode. The app was primarily intended to show the schedule, details of speakers, and umbrella multiple conferences at once. However, it has gradually grown and currently includes more than 28 screens with specific functionality and integrates third-party SDKs such as CometChat.
Solution
For implementation, we considered either developing native apps for iOS and Android separately or using the newly released KMM. Finally, we chose Kotlin Multiplatform Mobile, which we saw the biggest advantage in shared business logic. The collaboration was carried out through several departments, since we needed to share the backend together with the web part, we shared the data via Strapi.
It was our first production project where we used KMM, a new architecture on iOS, a new UI framework on Android and we still had a fairly junior team. Although we sacrificed a few weekends extra for this, we excited the client with his own words with the resulting application.
Challenges and learnings
The app was a big challenge even for the test team, which for the first time tried internal testing in the form of 12 people locked in a room all day and going through both planned and random scenarios. KMM and the dream shared module was the biggest challenge for the iOS team, who needed to familiarize themselves with the new concept and solve unexpected bugs with freezes and incompatibilities. After this experience, but we are already enthusiastically looking forward to the next project where we will be able to use KMM. Strapi is an amazing tool. But only if you know Node.js and are in control of it. A difficult challenge for mobile developers and analysts was collaboration across multiple departments and coordination with the BE team. As such, we had Strapi deployed in versions 3 and 4, and many things and parts worked differently than we expected. We often had to debug where the error probably occurred and how to bend the boxed solution for our needs. Here we were saved by the great patience and determination of the mobile team to bring things to a successful end.