Sulten — Moving from Native to React-Native

The story of moving our app from native codebase to a more sustainable platform, that allows us to move faster in design and development.

With the speed of technology, we as developers are forced to keep track for new ways to work and develop out products. In the last years — well, I would say months — it has become quite easy to build an adjustable code using frameworks like React Native and Flutter. The question of whether an app should be developed using a cross-platform framework vs natively has never been more important.

In this article we want to share our story of how we moved from native development to use a framework like React-native.

Background

Sulten is a food app that encourage our users to plan their week for good, affordable dinners. We build weekly menus with dishes that belong together so our users use potential leftover food for dinner the next day. The app development started last summer with the help of an external company. They build the app natively on IOS using swift. The first version of Sulten was a huge success here in Norway, landing over 70k downloads in the first 4 months, and topping the main chart and the food chart in the App Store.

Sulten V1

Having successfully released Sulten for iOS, the next step was naturally making the app available for android users as soon as possible. The problem with that is, as a startup company, it is extremely expensive to keep hiring externals to develop the android version at the same time maintain and develop new features for the existing IOS version. Sulten decided to hire me as their developer, and Pia Haugseth (@piahaugseth ) as their designer.

Rebuilding the app

As soon as we started working with the project we found out how difficult it will be for us to maintain and develop the app for two different platforms. While we had to develop the android version natively, we also had to maintain the IOS version and add new features. For a startup company that only has 3–4 people, including 1 developer and 1 designer that sounds like an impossible task. After some discussions and going forth and back, we agreed that going for a cross-platform solution is the the best solution for the current state of the app. Since I have been working with React/React-native for the past two and half years , choosing React-Native as a cross-platform framework was an easy decision.

Rebuilding the app meant that we have to abandon the four months old codebase which is running perfectly on IOS and start from scratch. Abandoning the code after the first release doesn’t sound good, right? In our case that was the most logical path since we had to develop the android version from scratch anyway. On the positive side rebuilding the app gave us the opportunity to reimagine the existing features, add new features and give the app a whole new look.

Sulten V2

We spent the next three months redesigning and developing the app at the same time. We hired a friend of mine as a freelancer for that period of time. With great communication with our designer, good structure and good distribution of tasks. We managed to redesign and finish developing the app in two and a half months. We spent the last two weeks polishing it and fixing bugs to make sure everything runs as smoothly as possible on both platforms.

Today we have an app that has the same features, looks identical and performs really well on both platforms. With 110k+ downloads and 30–40k monthly users, we have already started working on developing the next patch of features and figuring out how to monetize the app and make it sustainable. In addition we are also working on localising the app and adding more languages to make available around the globe.

What we have learned

Moving to a cross-platform framework as react-native was very helpful for us. We managed to create an app that runs smoothly on both platforms, at the same time upgrade the UX and some of the features. All that while having only one codebase to manage and maintain.

Reaching what we want to achieve and developing the next patch of features is way easier now since we only have one codebase. We are looking to build a great experience for every user regardless of what phone they are using, and react native helped us reach that point much faster than we would have done using native code.

Developing an app using a cross-platform framework might not be the best solution for every app or every team, its one worth considering . For a small team that has experience using those frameworks it might help you achieve what you want in much faster pace while having an app that performs as good as a native one. We are very proud of what we have built so far and we are very exited to see how far we can make it.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store