This is part 3 already in my Trying to launch an app series, and if you’re interested in the previous articles you can read the introduction here. Today I’ll focus on the mobile part of the Rouleur app.
Development speed
Rouleur is merely a side project next to my main profession, so speed is crucial. I need to be able to make a lot of progress in a minimal amount of time, so thinking things through first is important.
To Expo or not to Expo
Coming from a native (iOS) background, I’ve always preferred the RN CLI over Expo. I did work on a greenfield Expo project recently, and I was pleasantly surprised about the progress Expo made over the past years. No more eject and a ton of really useful libraries, even for bare RN projects. But for now I’m sticking with bare RN, since ideally I’d like to add some native functionality later on (widgets for example).
User interface
Unless for navigation and really complex stuff, I don’t like to use UI libraries for RN projects.
That sounds like it’s more work, but once you’re familiar with creating a custom UI library it gets really easy and fast (and fun!). Even more important, it allows me to reuse a lot of stuff I’ve created in the past.
Core dependencies
For non UI stuff some dependencies will be needed, but I’m sticking to well-known and battletested libraries. The total amount of dependencies needs to be limited, since I want to be able to upgrade them frequently to keep the app up-to-date with upcoming React Native versions. So maintenance needs to be minimal.
- React Navigation (navigation, obviously)
- Reanimated (Animations)
- React Native Skia (SVG’s, gradients, image filters and other fun 2D stuff)
- MMKV (persisted data)
- Axios (networking)
- Firebase (Firestore, authentication, push notifications)
- Shopify Flashlist (performant lists)
- Codepush (for crucial bugfixes that can’t wait on Apple / Google approval)
Next time…
In the next episode I’ll explain the game mechanics and other features used to differentiate Rouleur from existing cycling managers available (Sporza Wielermanager, Scorito Spring Classics and others). The first race of the Classics season starts in just a couple of days, if you’re into cycling go can already download the app and create your team!