Coming from a University where the curriculum is centered around formal software practices rather than modern tech stacks, we were never taught any web development frameworks. Sure, I knew how to write HTML and CSS thanks to Mr. Anderson’s web development class I took in the 7th grade, but other than that I hadn’t really worked with any web technologies... at least in any of the courses I took in my Computer Science program.
So, I was a little nervous beginning a project that relied entirely on ReactXP. However, I found it to be not that bad, after I got the basics down and the project began rolling. Here’s my experience with the framework so far...
A little intro first: ReactXP was developed by the Skype team at Microsoft for cross-platform development (XP = cross-platform). It essentially allows you to write one codebase that can then be deployed to a web application and a mobile application. This makes development much simpler, as it allows for a “write once, deploy everywhere” mentality.
Some of the benefits I’ve found with ReactXP so far:
- Much of the conventions are exactly the same as a typical React Native application; components are built with native components like View, Text, Scrollview, etc.
- It fully supports Typescript, which allows for a higher quality codebase
Some downsides to ReactXP we’ve run into:
- It’s built on older versions of React, so newer, higher performance concepts like React Hooks aren’t supported. This also extends to packages such as Resub, which caused about a week’s worth of frustrations
- There isn’t a ton of support for bugs, since there aren’t a ton of people using the framework. So fixes often come in the form of a bastardized version of something that works in React Native
- Deployment isn’t a “one click” solution. Similar to being built on an older version of React, the framework also doesn’t support newer versions of Gradle, so actual native deployments took longer than expected
- All styling must be done using ReactXP Style components, which have some minor drawbacks to just styling with CSS
Overall, it’s proven to be a decent experience. If the userbase continues to grow, thus expanding the support community and development experiences available, I’m sure many of the kinks will be worked out.