November 22, 2023

App Development with React Native: Pros and Cons | KNGURU

As soon as you are familiar with the topic of app development, you'll probably realize very quickly: there are a whole lot of different ways to have an app developed. Our tool of choice is React Native, as we have the most experience with this framework, but is that also suitable for your project?

Specialization of mobile app developers

First, it's important to mention that the best approach for developing your app project is what your developer is most familiar with. There is no point in imposing a framework on a developer that they have barely worked with before.

Unfortunately, two worlds often come together here - customers who have read a few sentences somewhere about app development methods, and developers who include every programming language in their tech stack in which they have developed a Hello World program. So make sure that you get advice from your developer as to which programming language is suitable for your project and that they also communicate openly what they cannot do.

If someone tells you they can program in any language — run. You want an expert and not an amateur who can only do everything halfway - so you can avoid expensive app development errors.

Field of application: web app vs. mobile app

React was originally designed for the development of so-called web apps developed by Facebook. You can simply access and use web apps in the browser, but you can't download them from the app store. React Native was created to fill this gap.

This makes it possible to develop apps that use all native features such as push messages, GPS, and the camera feature. In addition, your customers can store their app on the home screen and reach it with just one click. The user experience with mobile apps is also often significantly better than with web apps.

One code base — two apps

React Native is referred to as a cross-platform framework. In the end, this means nothing else than that both an Android and an iOS application can be generated from the code of your React Native app. This allows development for iOS and Android at the same time, which reduces the maintenance costs of the app by up to 50% compared to native apps. But now you often hear: “You have to develop your app natively,” i.e., separate applications for Android and iOS — but why actually?

Until a few years ago, cross-platform frameworks still had the reputation of being significantly less “responsive” than a natively developed app — but this prejudice is void today. Many of the apps you have on your smartphone today were developed completely or at least partially with the help of React Native — SoundCloud, Instagram, Facebook, Microsoft Office, or even Discord.

Native development for complex projects

When we advise customers on whether React/React Native apps could fit their project, it often comes down to a crucial topic: how innovative is your app? Of course, that sounds a bit mean at first, but this question often determines whether it makes sense to use React Native or not.

A simple rule of thumb here is: if your feature already exists in another app in one way or another, it can also be developed in React Native without any problems. A native app often only makes sense when the app is intended to use special smartphone functionalities or breaks completely new ground when it comes to the functionality of an app.

Do you want your app to have a feed? Live stream? Chat? Notifications? Groups? Photo upload? All of this can be implemented with React Native without any problems. Do you want to edit complex photos in the app, cut videos, or scan 3D objects with lidar? Native app development definitely makes more sense here in most cases.

React Native thrives on the community

Although React Native was developed by Facebook, it depends primarily on its large open-source framework community. Here, hundreds of developers provide each other with their developed elements free of charge, which often makes it easier to develop a new function for an app. A date picker? Sure, someone's done that before! A tab bar like on Instagram? Of course, there is also a ready-made package for that!

The disadvantage here, however, is that React Native is pretty naked without these community packages. This means that if you don't want to use third-party packages for development, you really have to build everything yourself from scratch in React Native. In addition, the community packages are often maintained only on a voluntary basis. As a result, they are sometimes outdated and no longer compatible with the React Native version you are using.

It is therefore all the more important to carefully select packages that you use for your app so that you can also ensure that they can be used in the app in the long term. A high number of users and regular updates always indicate a healthy community for a package. However, if a package hasn't received updates in four years, it's better to look at other options.

Build services make your life easier!

To generate a finished app from code, it must first be compiled. You then receive a file that has to be uploaded and processed in various ways, depending on the app store. This process of providing the app is relatively complex, especially at Apple, as the in-house program Xcode is to be used for this purpose.

The problem is that not every developer develops on a Mac. This is where one of our favorite React Native projects comes in — export with EAS cloud services. Roughly speaking, this is a Mac that runs in the cloud and translates your program code into an iOS app for you. Now comes the cool part — since your app is already in the cloud, it can now be sent directly from EAS to the app store without having to have the app file on your PC yourself. This makes it possible, especially as a remote team, to make new builds available for the app store cleanly and quickly, without anyone having to wait minutes on their PC until the app is finished compiling. This makes cross-platform development much easier for a remote team like us to implement professionally.

React Native and the future

If you develop an app for a lot of money, it shouldn't be out of date in just a few years. Development frameworks in particular often come and go faster than you can imagine. It is enough to bet on the wrong horse and future development costs will double.

React Native has two decisive advantages here. On the one hand, it has been on the market for quite a long time, and a large community has now formed around the project. As a result, there is a great deal of interest overall in React Native not becoming obsolete and new updates being introduced over and over again. On the other hand, Meta (Facebook) is a large corporation behind the project, which uses the framework for internal purposes. Since Facebook is also likely to have little interest in redeveloping their entire app infrastructure, React Native should be able to retain its relevance in the future.

Other alternatives for cross-platform frameworks

Of course, React Native isn't the only alternative when it comes to developing cross-platform applications.

One of the most famous contributors here is Flutter, which is developed by Google. Even though Flutter is much younger than React Native, it has now firmly established itself as an alternative. Because Flutter comes with more components for development out of the box, it is less reliant on the community providing packages for specific functionalities.

Compared to React Native, where you develop in TypeScript, Flutter uses Dart — also a programming language from Google. Although Dart is very powerful, it is significantly less common than TypeScript, which means that there are significantly fewer developers who have worked with Dart before.

It's all a question of costs

In the end, you have to say that you can achieve your goal with any solution, whether it's a web app, native or cross-platform — the only question is how much it costs. You should always try to choose a solution that is sustainable but not “over-engineered.”

A solution that doesn't cost too much, but doesn't save money at the wrong end either. A good developer will advise you independently and will also say openly if they are not the right partner for your project. A good developer doesn't pretend, but explains the options and helps you make a decision, objectively and in your best interest.

What’s a Rich Text element?

The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.

Static and dynamic content editing

A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!

How to customize formatting for each rich text

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.

Louis Nell
CEO Knguru Studios
Moin ich bin Louis, kreativer Kopf und Gründer von KNGURU Studios. Wenn wir einmal anfangen über Technik, Startups oder Produktdesign zu quatschen kannst du dir sicher sein, das es so schnell kein halten mehr gibt. Deswegen gibt es auch mittlerweile diesen Blog in dem ich meine Reise als Startup- und Agenturgründer dokumentiere.
#development
#learning
#mobile
Vera Große
UX Management
Hi, ich bin Vera! Meine Verantwortung liegt im Bereich Projektmanagement und Kundenbetreuung. In diesem Blog teilen wir nicht nur unsere Erfahrungen als Startup- und Agenturgründer, sondern auch unsere Begeisterung für kreative Ideen und visionäre Konzepte.Mit Expertise und Leidenschaft arbeiten wir daran, innovative Projekte zum Leben zu erwecken und gleichzeitig unsere eigene Reise zu dokumentieren.
#development
#learning
#mobile

Book yours free Video call

Do you want to talk to our team about your project and just hear what we could do for you? Then simply book a free video call with us now!

1
How can we reach you?
2
Accept our privacy policy
Oops! Something went wrong while submitting the form.