Writing Code Across Multiple Platforms
Benny Wong
CTO at Spin
Problem
During my time as head of mobile at Envoy, I was tasked to pilot and create a new product for both IOS and Android. Managing both the front and back end of a small mobile team, we needed to maintain two different platforms. Functionality wise, everything was pretty much the same except for certain features that are native to their specific platform. It was such a huge task because these two products don’t share the same code base and need to be compiled in different ways.
"Managing both the front and back end of a small mobile team, we needed to maintain two different platforms."
Before 2015, hiring both Android and IOS engineers to build a team from scratch is what all companies did. With that, you do not gain a lot in terms of cross-functionality however, because they are so separate. At Envoy, we were facing the same problem. This is when I decided to research and try a new platform that came to me by word of mouth.
Actions taken
A lot of people in my startup circle had been using a new platform on Facebook by the name of React Native. While there may be more up to date tools now, back then, React Native was the only platform of its kind. It was made for writing code for an app just once and then creates different code native to their apps.
"A lot of people in my startup circle had been using a new platform on Facebook by the name of React Native."
A month later I quit Envoy and brought this new tool with me when I joined Spin. Instead of having two engineering teams on each platform, I wanted just one person to code out the app for both IOS and Android.
Lessons learned
- By using a platform like React Native, you no longer need to hire two sets of different engineers. All you need to do is write the code once and make the necessary tweaks for each platform. Unfortunately, being a new platform, it didn’t garner much support and was painful at times due to a lack of resources like Stack Overflow to tell you how to solve engineering problems. I really had to dig in myself and comment back to the community. Despite that, it ended up working really well and we were able to ship on both platforms within a month.
- Introducing React Native to Spin really helped us scale; even today when we are 600 people. We are at the size right now where we can actually hire specific expertise for each platform. This has allowed us to get the most out of the platform itself and thus, enhance the user experience.
- My recommendation for any startup moving forward is to start with React Native as a means to save time and money. One of the problems of having teams across different platforms is that they become misaligned. This can affect the release cycle and cause inconsistent updates.
- Getting your app to be completely perfect on each platform is good, but it comes at a cost. In a startup, this might not be as important as it is to quickly figure out if the code works or not.
Be notified about next articles from Benny Wong
Benny Wong
CTO at Spin
Connect and Learn with the Best Eng Leaders
We will send you a weekly newsletter with new mentors, circles, peer groups, content, webinars,bounties and free events.