chevron-up Choosing the right mobile development language in 2020 { } else { }

Free Quote: Get free consultation from our team of experts. Contact us

Choosing the right mobile development language in 2020

Choosing the right mobile development language in 2020

Native or Cross Platform, what’s the whole discussion?

Since the beginning of smartphones and mobile app development, the IT industry has been trying to figure out how to create a solution which lets you write one code base that works on all platforms. But it's 2020, and the discussion is still ongoing. Even though Windows phones are out of the game for some years now, writing code for two separate platforms can still be a burden for various reasons. Before we go into details of different Cross Platform solutions, let’s take a look at general pros and cons in the natvie vs cross platform discussion.

 

Pros

Cons

Native code

  • Full control over the application
  • Always immediate access to the latest features
  • Simpler access to the phones’ hardware (more documentation)
  • The code base (Swift and Android) will stick around (unlike many cross platform solutions that have come and gone)
  • You need to find two developers, instead of one with the right skill sets (Swift and Android)
  • More expensive, for the above mentioned reason
  • Two sets of code which each have their infrastructures, bugs, support etc.

Cross platform

  • Faster and cheaper development
  • You only need to find one developer for the job
  • Once you need to do a very specific native implementation, it can be impossible, or at least very hard, due to lacking documentation
  • Cross platform solutions come and go, thus after a few years, your code might become obsolete.

 

Should we do Native development or Cross Platform?

As a general rule of thumb, if you have an idea for a mobile application and you want to try it out, to see if it’s feasible, I would say that 90% of the time, a cross platform solution should be the first thing you develop. It’s a quicker/cheaper way to test the market. In case that your MVP (Minimum Viable Product) proves that it has an audience who is willing to pay for it, you can always move to a native solution, if the app requires it, when the application itself can pay for the further development. This is something we make sure all our clients are aware of.

Before starting our ZenDev IT consultancy, I was a co-founder of a startup in Sweden, in which we developed a mobile application in Edtech. We chose to do native solutions at that moment, and stuck with it for years. These are our takeaways in hindsight;

Only do a native solution right from the start, if you are in one of the following scenarios:

  • You’re in a startup or a company, which already has access to two experienced native mobile developers (at least), one for each platform. If the skills you need are already ‘’in house’’ in the form of native developers, then you shouldn’t force a cross platform solution. This was the case in our company, so we stuck with native code.
  • If your application requires hardware intense features, cross-platform solutions are not optimal for this. However, note that 95% of mobile applications do not fall into this category.


We also automatically assumed that a native solution would give a better sense of quality. However, one external consultant told me something that really stuck with me; sometimes it’s better to use all your resources, to make one great cross platform application, than to divide your resources and create two mediocre native applications. Make of that what you will, but it’s food for your thoughts.

Which mobile cross platform solution should I choose?

Let’s start off by taking a look at the landscape of the popular alternatives and then we’ll share our experience with these.

 

Progressive Web app (PWA)

iOS and Android native

React Native

Xamarin

Ionic

Flutter

iOS & Android

           

Windows

           

Offline Friendly

           

App Stores limitations

           

Native look and feel

           

One code base

           

 

Before we get into the discussions for each of these, let’s take a look at what kind of information Google Trends can give us, when we compare the different cross platform solutions, in terms of search popularity.

 

The key takeaways from the chart are that React Native certainly has had the biggest uprise, here, with PWA also having an upward trend, even though it’s still less searched than the other alternatives. But still it seems likely that it will overtake Xamarin and Ionic. 

Now that we have that underway, let's talk about the different options and what our experience has been in terms of development.

Xamarin
 

We have developed a few relatively complex applications in Xamarin. Our overall takeaway is that it’s not bad at all, even though we heard a lot of negativity regarding it, before we started working with it.

The applications had a fully native feel. If you have solid C# developers in your company (like was the case for us), then it might be a smaller jump to do Xamarin than anything else, with good result expectations. For what it’s worth, Xamarin is the only alternative which will also give you a desktop application for Windows, on top of the mobile applications.

On one occasion, we had to develop a very specific beacon solution which worked on a specific frequency, and we had to modify packages that were sent from the phone. This was the only time we were worried that perhaps we should have created a native solution. In the end, we could deliver it in Xamarin, but it wasn’t an easy task.

React Native
 

It seems that the industry has decided this is the direction in which it’s going. As a company, we probably get more requests for React Native developers, than anything else, at this point.

As far as the outcome of applications built with React Native, they are really great and have a fully native feel (only natural since the code gets rendered into native code).

The drawback is that React in itself has a relatively steep learning curve, so if you don’t have a person who already worked with it, it seems to us that it’s a bit harder to get into, than some of the other options. In the same breath, I would say that it’s also a skill set well worth investing into.

Flutter
 

This is another cross-platform solution developed by Google. While it’s tempting to say that it’s Google’s response to React Native (a facebook framework), I honestly feel more like Flutter is mobile development's response to Wordpress. It has the aim to help you develop mobile applications rapidly and cross platform with the help of a predefined toolkit. Much like React Native and Xamarin, the code gets compiled natively, so you get great performance.

With that said, to be entirely truthful, we at ZenDev never developed anything in this framework. A big reason is that React Native is still regionally much more popular where most of our clients are (Sweden). Therefore it would be unfair to give it much of a critique due to our limited experience to it. Hopefully one day we will be able to update this article to put things in comparison. Until then, all we can say is that it’s another fast growing framework that seems to be good for RAP (Rapid application development).

PWA


If you haven’t heard of progressive web apps before, it’s sort of like extending a website, in order to have mobile app-like features. It allows you to create offline functionality and app features, such as sending notifications to the user.

This is where I personally think the future lies. I am surprised that progressive web apps haven’t had a bigger boom, as I feel that probably 70% of applications might as well have been created as a PWA.

You automatically get a website (that’s super fast for that matter) and a mobile application. Based on the requests of our clients, this is what we recommend in many cases. 

One of the main advantages of PWA’s is that you don’t have to upload the application to the App store or Google play, which is a benefit for several reasons:

  1. You don’t have to worry about the app being accepted
  2. If you find a bug, you can remove it as soon as you find it, by uploading a new code, without waiting for approval.
  3. You don’t need to give commission, in case you take in-app payments.

With that said, if you need hardware intense development, this is not the solution for you.

Ionic
 

We tried Ionic only once in 2017, so please keep in mind that my critique might be unfair to what Ionic is today.

We abandoned it for two reasons:

  1. The mobile application felt more like a website, than a native application, as it used web views instead of native code. For this instance we needed a more native feel.
  2. The initial loading time when you open the application was 10-15 seconds. I distinctly remember the client telling us; this isn’t 1995, the app has to open faster. Unfortunately at that time (2017), there was no clear solution to this issue. 

We were so disappointed that we left the framework at that point and decided not to work with it any more. Looking at their website today, I’m sure they’ve come a long way since then, but at that point it just felt like they were a step behind.

Conclusion for choosing solution
 

If the article was too long to read, here are a few of the takeaways;

  • If you already have experienced native developers in your team, let them work with what they already know. If not, choose a cross platform solution.
  • Analyze what you need. If your app doesn’t need a lot of hardware implementation, then a PWA might be the right solution for you.
  • If you do need something that feels like a real native app, you can go with Xamarin/Flutter, but to us it certainly seems that the trend and future of cross platform mobile solutions is with React Native.

We hope this article has been helpful. If you still need help in choosing a technology or developing your application, feel free to get in touch with us. We would love to hear from you.

2000 Magento 1 Stores Hacked in Largest Magecart Attack So Far

The attack was performed through an automated Magecart campaign and has endangered the private and card information of thousands of customers.

Senad on FACE TV speaking on entrepreneurship.

In the interview, Senad talks about everything from his childhood to about what it was like when he and his family fled to Sweden from war-torn former Yugoslavia, to his upbringing in Gothenburg, his dreams of becoming a basket...

We would love to hear from you. Feel free to send us your questions!