React Native Implementation at SoundCloud
Article Summary
Jan Monschke and Peter Minarik from SoundCloud took a gamble on five-month-old React Native technology. The result? They shipped a production app in four months instead of the estimated six.
In 2015, SoundCloud faced a critical shortage of iOS engineers while building their creator app, Pulse. With eager web developers available and React Native showing promise in design prototypes, they decided to test whether this nascent framework could handle a production mobile app. This is their story of going from skeptical spike to shipped product.
Key Takeaways
- Three developers (two JS, one iOS) shipped the app in 4 months with full test coverage
- Cross-platform code reuse can reach 85%, reducing new feature costs by 80-90%
- Existing iOS libraries bridged easily to React Native through native modules
- Live reloading and Chrome debugging massively shortened the developer feedback loop
- Bi-weekly React Native updates required extra maintenance time for third-party library compatibility
SoundCloud successfully leveraged web engineering talent to ship a production mobile app 33% faster than estimated, proving React Native viable for teams with more web than mobile engineers.
About This Article
SoundCloud's React Native team needed to check if the framework could work with their existing native infrastructure. They had CI/CD pipelines, acceptance testing, and app store distribution processes already in place from their iOS and testing teams, and they wanted to know if React Native could fit into those systems.
SoundCloud worked with their iOS team to build a CI environment in just days that matched what they already had. Instead of creating new acceptance testing and app store distribution systems, they reused the knowledge and processes their iOS team had developed.
By fitting React Native into their established native workflows, the team cut down on manual work. This meant their engineers could spend the four-month development cycle building features instead of setting up infrastructure.