Customers
Blackline
Before Expo, our app was purely native (one code base for Android and another for iOS), and we had a few key items we wanted to address in our rewrite of the app:
By shifting to React Native and almost entirely JavaScript, mobile development is now better aligned with our organization’s engineering skillset. This also improved our recruitment because we can consider strong front-end engineers with experience in just React and JavaScript.
Shifting over to JavaScript also helped us scale by empowering other teams within BlackLine to build and extend the mobile app into their own domains. Additionally, we share libraries and code between mobile and web, which greatly reduces our surface area. I can't overstate the benefits of being able to apply our JS / web-based skills, standards, and tooling to mobile development.
Expo also dramatically improved our CI/CD processes. We take full advantage of Expo CLI (and are now using EAS Build) to fully automate our app deployments through CI. Additionally, by leveraging Expo Application Services, we don’t need to pay for or manage any internal app build infrastructure. It's all there for us whenever we need it.
Finally, by using Expo's developer tools (like Expo Go), we’ve seen some great developer productivity gains. We iterate on features more quickly, and that’s really allowed our team to focus more on satisfying our customers. We can better manage security and quality by leveraging various Expo APIs and developer tools, which allows us to accomplish internal testing more easily. We have less tech debt, and upgrading is as easy as running one single command. Plus, the Expo Go app allows us to easily provide the application to non-engineers on the team for testing and troubleshooting.
Besides Expo's services and tools, we also heavily rely on the SDK for adding cross platform native functionality to our app, just via JavaScript. Some of our favorite pieces of the SDK include:
expo-secure-store
has allowed us to manage local app data in a secure manner.expo-file-system
, expo-sharing
, and expo-intent-launcher
have provided a great framework for in-app document management.expo-updates
allows us to manage updating our app over the air very nicely, without users ever having to take any steps to update. For BlackLine, security and controls are paramount to protecting our customers data, and leveraging Expo to automate controls around our release process with Over the Air updates and release channels is a huge win that goes beyond dev productivity and CI/CD tooling.Overall, Expo's tools and APIs have allowed us to focus more on building features for our customers rather than managing infrastructure and building our own platform level components and APIs.
Greg Burns, Principal Software Engineer