Piotr

A project manager with a penchant for solving all of his problems using mathematical equations.

9 May 2018

Cross-platform vs Native Mobile App Development - Which To Choose?

postMainImage

Depending on your experience with mobile app development, choosing between cross-platform and native apps can be problematic. If you are wondering what are the differences and why we rather develop native apps, you came to the right place.

At KISS digital, based on our experience we consciously choose native mobile app development. Although hybrid apps have their benefits, they also have many limitations. Cross-platform solutions, such as Xamarin or ReactNative, are a good choice when it comes to less advanced projects which take advantage only of basic mobile device features. In the case of complex apps, however, the app architecture is crucial.

Native mobile app development makes it possible to design the architecture quite freely and develop the project over time. The guidelines and best practices are pretty international, which means that you are able to change a developer or the whole development team without it affecting the app. Cross-platform solutions, on the other hand, enable (or sometimes even force) mixing different app architectures, which can make the code unclear at times.

Let’s have a closer look at the most popular cross-platform solutions - Xamarin and React Native.

Xamarin

Xamarin is being developed by Microsoft, which is not exactly known for the best mobile operating system. It is rather chasing iOS and Android, trying to catch up with them. Actually, when building an app with Xamarin, it usually turns out less efficient in comparison to native apps. When it comes to Xamarin itself, though, there are two separate products: Native and Forms. Xamarin Native lets you design the common elements and the logic behind the app, but the user interface has to be separate for the operating systems. The second option, Xamarin.Forms, makes it possible to apply a common UI that can be overwritten, although not seamlessly.

At KISS digital, we have dealt with several Xamarin projects. In one of them, the costs of developing a hybrid app were similar to developing separate native apps for different operating systems. In another one, the costs of a cross-platform development were even higher than that. When working on those projects, our developers devoted a lot of time to seek alternative solutions to the ones offered by default Xamarin modules - especially in the field of GPS. The libraries are also quite limited, and there is no easy and quick way to use the ones available for native apps.

Some of the problems we dealt with when using Xamarin include:

Unfortunately, there’s more - and we listed most reasons why Xamarin can’t suit all your needs here. But how does cross-platform development work when you choose React Native instead?

React Native

When using React Native, you actually develop a website, which is then being interpreted as a mobile app. It means that you’re taking advantage of web technologies, such as JavaScript - and in this case, it would be wiser to trust a web developer with them. If there’s a need to use classes or specific elements (either custom ones or those typical for iOS/Android), they have to be written by a mobile developer, separately for each system. Then, in order to develop in React Native, it would be beneficial to have certain knowledge and experience with web and mobile development at the same time - which is not very common.

It also takes relatively long to develop an app in React Native. If you want to apply some native elements, you really have to think them through. Plus, it’s not easy to take advantage of some more advanced mobile device features, such as Bluetooth or gyroscope. It does change over time with more and more features being supported, but there’s still a striking difference if you compare them with native apps. Not to mention that JavaScript also proves to be less efficient than some of the modern native languages (Swift, Java or Kotlin).

Cross-platform vs Native Mobile App Development

Native technologies exist since the very beginning of mobile operating systems. It means that they are already mature, stable, and well-tested - most of the bugs that impede mobile app development have already been eliminated, which is not always the case with cross-platform solutions. Those technologies are still being shaped, and that’s what makes them difficult to fully rely on. For the time being, at least.

Because of many limitations and uncertainties up to date, at the moment we don’t use cross-platform solutions when developing apps at KISS digital. Nonetheless, even though we prefer native apps, we keep an eye on the recent improvements and look forward to being able to recommend hybrid apps to our clients. Would you like to become one of them?

Piotr

A project manager with a penchant for solving all of his problems using mathematical equations. His analytical mind constantly makes him draw formulas and charts on a whiteboard.