React RPG

React RPG is an open-source, turn-based, dungeon-crawler.

Could you introduce your app in a few sentences?

React RPG is an Open-Source RPG made with React and Redux. The game is a turn-based dungeon crawler that comes with two game modes: Story and Endless. Story mode will lead you through a short story while introducing you to the most powerful creatures. In Endless mode, a unique challenge waits around every corner, as no two maps are the same.

Currently, React RPG is available on the Web, Android, and iOS.

I have been working on this game as a personal project, however, I am now looking for contributors.

What made you decide to use/switch to React Native?

When I was originally thinking about creating this game, I wanted to use React and Redux so that the game lives on a webpage. This made it very easy to create a React Native application that loads my game as a WebView. With this setup, I can push updates to the live apps without having to get a new app version published; I just need to update the website!

Another reason for choosing React Native was that the codebase for the game is written in React, so it makes it easier for developers working on the project to make changes on the mobile apps if necessary.

How did you transition to React Native?

Before React Native, I was familiar with Java and Swift development, but hadn’t made anything really interesting. Around the same time, I was learning React and got really into it. From there I got better at JavaScript, and React Native just seemed to be the simple answer for someone who has decent React experience and minimal mobile experience.

Have you tried other cross platform technologies before using React Native?

I have not, however I’ve heard Google Flutter is looking promising.

What has your experience been working with React Native in terms of app performance, have you noticed any impacts?

Honestly, React Native is still not in a v1, so there are minor issues that affect development. However, once the app is shipped, the production versions are stable and seem to perform well. I have not done extensive research or benchmarking, but I do not have any issues, even on full native(instead of just WebView) React Native apps that I work on.

How has adopting React Native affected developer productivity?

For me, it’s a game changer. Not that it would be difficult to create and maintain two projects for a WebView application, I would really just rather not. Especially when the app setup is simple like this one, it is really nice to have it all in one place. I have a feeling contributors will feel the same way.

Which tools, libraries and frameworks are part of your development process with React Native?

I like to use VSCode for my text editor, as it has a lot of great plugins. For debugging, I use the built-in React Native debugger and occasionally the Android Studio or Xcode debuggers. I use Jest for testing because it is simple and comes built into React Native apps made with react-native init.

As for libraries, I generally use Redux, Styled Components, React Native Material UI, Lodash, and AWS Amplify, depending on the project. For React RPG specifically, I used Styled Components, Lodash, and React Native WebView.

What resources have you used to learn React Native? Books, tutorials, courses etc. Anything you can recommend?

Honestly, I just tried to pick it up after knowing a little about mobile development and some about React. The official docs have been my main resource, however Stack Overflow and Github Issues have been very helpful as well.

What are some things that you don’t like about React Native or that need to be improved?

My biggest gripe about React Native is that it is still not on a v1. This means that sometimes things break, and unexpected behavior can occur. From my experience this has mostly been an issue during development. For example, sometimes a gesture seems to be very buggy on the emulator until you try it on a device, then everything works perfectly.

Anything else you would like to mention?

If you would like to help me add features and support React RPG, check out the Github repo for more information on Contributing. If you would like to check out the React Native app that wraps the game, here’s the repo for that.