To achieve your first switch example you can look at react-native-switch and tweak it slightly to take a height and width (instead of circle size). I have a working example of this here.
For your second example a simple TouchableOpacity with toggle icon should suffice. You can get a little more elborate and add a color animation if you wanted.
Answer from TnR on Stack Overflowreactjs - How would I make a Custom Switch and Toggle Like this In react Native - Stack Overflow
After switching from Expo to bare React Native… I’m never going back
🏝️ Announcing TanStack Query DevTools for Expo/React Native! 🚀 : reactnative
Is it worth converting an existing app to expo?
Videos
Every time I’ve tried using Expo, I end up waiting ages for the bundler to finish or dealing with random build failures that seem to come out of nowhere. The dependency chain feels heavier, and adding native modules or SDKs just introduces another layer of uncertainty.
When I switched to a bare React Native setup, everything instantly felt smoother, bundling was faster, builds were more predictable, and I had full control over my native dependencies. I didn’t have to eject, worry about managed workflows, or constantly patch compatibility issues.
Expo is great for quick prototypes or small apps, but if you want long-term stability and flexibility, bare React Native just feels more production-ready.
Anyone else make the switch and notice the same?
» npm install react-native-switch
» npm install toggle-switch-react-native