It’s summer 1983. The sun is shining, birds are chirping, and children are running around outside, laughing. Mobile technologies and mobile development are still daydreams for humanity. But on this day, Steve Jobs gazed in the horizon and made a prophecy. Soon we would have a place, “like a record store”, where people can just download software over the phone.
Okay, maybe that didn’t really happen exactly like that. But it was in the summer of 1983, when Steve Jobs described the very first version of today’s AppStore. That was six months before the launch of the first Macintosh.
And Thus, It Begun
Fast forward to about 10 years later in 1994, the first smartphone was launched. And to everyone’s surprise (everyone today, that is), it wasn’t neither an iPhone nor an Android. It was in fact IBM’s Simon.
The Simon™ Personal Digital Assistant came with 10 pre-installed apps (then called features) and it had a retail price of US$899. But Simon wasn’t the first PDA. In fact, Apple released their very first Personal Digital Assistant, Newton in the autumn of the year before.
However, the reason Simon was considered a smartphone, compared to Newton, was that Simon actually used cellular technology. It was the first PDA that looked and acted like a “cellular phone”.
Demand And Supply
Popularity for mobile devices grew exponentially resulting in a booming demand for mobile applications. In fact, demand grew so fast, that the accumulated amount of downloaded apps on Apple’s AppStore went from 30 bil. in June 2012 to 180 bil. in June 2017. Moreover, mobile apps supply in 2018 reached astonishing proportions. Google’s PlayStore hosts now over 2.1 million available apps and Apple’s App Store follows closely behind with circa 2 mil.
The more mobile apps on the market, the more we need developers and technologies to build them. As a result, and as it is common in the programming world, discussions like “Which is the best technology to build a mobile app?” are inevitable. More precisely, this is “THE talk” right now, and it is exactly what we are going to tackle today.
Before we start “THE talk”, we would like to give a disclaimer. The technologies we are presenting today are not necessarily the best in everyone’s view. In our experience, there is no such thing as “the best” development technology to begin with. It all depends on you and your client’s needs, your experience as a developer and so on. To be more precise, every programming language, framework or library meets different expectations and requirements. So, today we are not going to show you “the best technologies”. Instead, we are going to talk about our favorite technologies for mobile development.
When it comes to mobile development, there are three different approaches to choose from, the Silo, the Black Box or the Xamarin. But, as a web and mobile development agency, we are not exploring all three of them. Instead, we are going to discuss only the Black Box and the Xamarin approaches.
Let’s start with React Native, as it is one of the favorites of the Wiredelta® team. This gem, as its name suggests, is based on Facebook’s React, and it was first announced in February 2015. One month later, Facebook open-sourced it, and soon it became a popular choice among the developing community. However, the fact that Facebook developed this technology is not the only reason behind its hype. There are several other reasons why one should choose React Native.
One of these reasons is that it gives developers the same freedom React gives. Both technologies were created to provide incredible and scalable functionalities good enough for the social media/tech giant behind them.
As a bonus, this technology is a cross-platform app building technology. This means that developers need to write the code only once and simply deploy it to the Android and iOS native APIs. Once that is done, the app can be deployed on either of the platforms.
Also, as far as Facebook tells us, React Native apps are real native applications. But, that’s not entirely true. In reality, React Native apps are still hybrids. However, this technology is very volatile and can be easily combined with others such Swift or Java. Because of this, we can say that React Native is framework for writing real, natively rendering mobile applications for Android and iOS.
Performance and Drawbacks
If that didn’t convince you of how cool React Native is, there is more. React Native was created for the Facebook Marketplace in the app. Foreseeing the need for both functionality and scalability, the social media giant needed a tool that was light and easy to work with. But more importantly, they needed a tool that would perform the same with 10 or 1 mil users. Today, more than 800 million people use this constantly updating service every single day without a problem. Still not impressed? Apps like Instagram, Uber App, Viber App, Skype, and Amazon Prime Video are only a few of the top market apps built using React Native. It’s safe to say that if you need a scalable, light and responsive app, React Native is the right technology for it.
It’s true that React Native is volatile and can be combined with other technologies and enhance the functionalities of your app. However, as it goes with all technologies, there is a drawback. If you want to use React Native to begin with, you need to also use ReactJS.
At the same time, in order for React Native to access the Native APIs there needs to be a “bridge” between the library and the API. Since these bridges are written in Java or Swift they require a bit of extra knowledge.
As a result, this can feel a little restrictive if you are not familiar with these technologies. Beginner developers especially tend to shy away from it because there is a misconception that you have to be an expert to use it. But, once you’ve tried it at least once, you’ll see it’s really not that difficult.
Just like React Native, NativeScript also allows developers to create cross-platform, almost-native apps. However, unlike its competitor, NativeScript is able to directly communicate with Native APIs. Since React Native needs Java or Swift alterations to access the APIs, this gives NativeScript a big bonus point.
As opposed to React Native, NativeScript was created by a small team of developers. The community behind it is also considerably smaller than the one around React Native. As a result, improvements from the community are fewer and less impactful. However, less developers working with it makes NativeScript more structured in a sense, which is an advantage. But at the same time it is much more restrictive functionality wise as plugins and updates are slower to come.
Performance and Drawbacks
However, these functionalities actually mean that the app will take longer to read and display more complex functionalities. As a result, the entire app may look and feel slower due to rendering. Thus, NativeScript is a lesser favorite when it comes to performance, especially for large-scale apps.
In one of our previous posts, we explained that Ionic is a popular open-source software development kit. What we didn’t mention before is that this framework gives programmers extreme freedom.
Ionic was released approximately at the same time as React Native and NativeScript. Subsequently, this is one of the most popular hybrid technologies available today. In fact, more than 5 mil. apps have been created using Ionic so far.
You can understand that allowing developers to choose any JS framework they want to work with gives Ionic an immense advantage. That, combined with the fact that it easy to use and it is one of the oldest hybrid technologies makes Ionic the obvious choice for many developers and companies. So much so, that today Ionic enjoys the support of over 5 mil. developers.
Performance and Drawbacks
At first glance, Ionic sounds amazing, but there are some performance drawbacks with it too. In this case, Ionic can’t create a native app on its own. Instead, Ionic runs on Apache Cordova that acts like a “wrapper”, turning the code into native-like apps. And because of this combination of technologies, Ionic is heavier than the previously mentioned options. The process needs a “double translation”, to put it simple. Ionic reads and translates the code and then sends it to Cordova which in turn reads and translates again and turns the initial code into the native app you have just created.
However, Ionic is the perfect solution for small apps created by beginner developers. So if you just started a business and you want your own native app fast, this is the right choice. However, if you are a fast growing or an already large company, you might want to do a little more research before you start the project.
In our final stop, we will explore the “Xamarin approach” to mobile development. Xamarin is a native app builder owned and supported by Microsoft. As opposed to the previously discussed technologies, there are two ways to build a mobile application with Xamarin. Developers can opt for traditional app development or cross-platform development.
The first approach, as the name states is the traditional way, and it came before cross-platform mobile development was an option. In a sense, traditional apps developed using Xamarin are partially cross-platform too. Normally with native apps, a developer needs to write the code in Java for Android, and Swift or Objective-C for iOS.
With Xamarin, however, developers need to write the code only once using C# and then link it with the respective UI. To connect with the native APIs, Xamarin has created Xamarin Android and Xamarin iOS, but sadly it’s not compatible with Windows phones. To solve this issue, Xamarin launched Xamarin.forms, a full, cross-platform .NET developers’ toolkit.
Not only that they can now build applications for all three platforms, but also they don’t need to connect with different UI solutions. Instead, using Xamarin.Forms developers need to connect only one UI solution to the native APIs of each platform.
Since all Xamarin apps are written in C#, as a .NET developer, you won’t have any issues building one of your own. If you are a JS developer, however, this may not be the right choice for you.
However, Xamarin benefits from the support of the tech-giant behind it, as well as the contributions from an impressive community. This means that not only the technology is extremely reliable, but as a newcomer, any developer would have all the help needed to learn.
Performance And Drawbacks
In order to build Xamarin applications, you first have to install Visual Studio, the Microsoft IDE. Now, using an IDE is not something unusual. Every technology that creates hybrid apps needs one. But, in this case there is a problem with the tool itself.
According to the Microsoft developing community, Visual Studio is “so slow, it’s useless”. Not to mention that it is pushing your computer’s CPU to the point that you can cook an egg on it. As a result, debugging processes are next to impossible, unknown errors occur randomly and so on. The team behind it keeps a close eye on these issues and tries to fix them as fast as they can, but the technology is still troublesome.
However, when we look at Xamarin apps and their performance, things are a little different. In fact, much like every product from Microsoft, Xamarin is ideal for large-scale corporations.
First of all, both C# and the .NET framework are reliable and secure, but more importantly, they are scalable. Second of all, Xamarin communicates directly with the native libraries giving it the closest-to-native performance. In short, it is difficult for the “untrained eye” to notice a difference between Xamarin apps and traditional natives.
Ionic is very easy to use, especially for new developers. In contrast, it is heavier and occasionally slower because it uses of Cordova. Xamarin is scalable and ensures close-to-native performance. But the development process is heavy and problematic enough to stir programers away. In the end, it comes down to the developer’s skills, experience, time and budget.
In the end, we hope that we helped open up your mind towards mobile technologies and you understand them better now. All we can say is, go and see what the community has to say and then compare that to your project’s requirements. This is the only way you can be sure to find “the best solution”.
Visit our blog for more interesting web and mobile articles, digital marketing, artificial intelligence and more. Do you have an idea for a revolutionizing application? Contact us and turn your own web or mobile project to reality, with us. Don’t miss out!