Whether it is worth choosing cross-platform development for your product or preferring native development is not an easy question, since each business has its own goals and expectations from the product that is planned to be developed. But today we will definitely figure out which development is right for you.

What are cross-platform apps?

Cross-platform applications are applications that are developed and then run immediately on both Android and iOS. The essence of the development is that the source code of the application is translated into native, that is, understandable for a specific mobile device. As a result, the program can interact with the operating system installed on it.

Recall: native applications, as opposed to cross-platform, are written initially for a specific OS.

Pros of cross-platform development

  • expanding the user base due to the appearance of the application simultaneously in several stores;
  • single source code saves you the hassle of hiring multiple developers for each platform;
  • 75% of the codebase of a cross-platform application can be reused, adapting it for new projects.

Cons of cross-platform development

1. High dependence on a mobile device

Cross-platform apps usually don’t work offline. Therefore, their capabilities are highly dependent on the presence of a stable Internet connection. The operating system version and model of the device are also important. A cross-platform application is almost guaranteed to degrade the performance of a device older than one to two years. While the native application will work stably even on an ancient gadget with outdated firmware. So if you don’t want your customers to read angry reviews about how your application finally “finished off” someone’s smartphone, choose native development.

2. Unfriendly user interface

Users get so used to the look and functionality of their gadgets that they expect maximum responsiveness from the applications installed on them. They want to be sure that each button will be in its rightful place, that the page scrolls at the speed that is optimal for them, and that any action they take will be followed by an immediate reaction. Cross-platform applications usually have difficulty adapting to the device, and they cannot boast of high-speed performance.

The problem is that there are no guidelines for cross-platform development – development standards from the creators of the OS. Therefore, cross-platform development of mobile applications for android will not be convenient for the iOS user, and vice versa. You can, of course, create separate designs for each platform, but in terms of labor costs, this will be equal to creating two different applications, albeit in the same language.

3. Struggle for primacy among development tools

In the market for cross-platform development solutions, competition is getting tougher every day. So far, the most popular among developers are React Native and Xamarin, but they may well be outstripped, for example, by Vue Native. In this case, the ex-leaders of the race will lose their most important advantage – the operational support of the code. And this can happen with any cross-platform tool.

A specialist develops an application for several OS

This is not a problem for native development. The introduction of new tools occurs gradually, and knowledge of several programming languages, which is mandatory for a narrow specialist, will allow him to quickly deal with all the innovations. In addition, there are huge professional communities around each operating system, as a result of which any difficulty that arises is solved by searching for a similar problem on the forums, where thousands of people are ready to suggest and help solve it.

Which app is right for your business?

Before answering this question, it is imperative to analyze your business. Customer segments, the value of time and money resources, the desired depth of application integration with user devices, plus well-defined long-term goals – the minimum on which your choice will depend. But we will make it easier if you answer the relevant questions right now.

1. What is your audience using?

If you know that your client base is close to 50-50 for iOS to Android users, choose native development. This will show that you respect the needs of all your customers equally, regardless of their income level.

$ 100 App Store & iTunes payment card

The relationship between the choice of a mobile device and the level of solvency was once again confirmed by App Annie. A study of the number of downloads and sales of mobile applications in Google Play and the App Store in the first quarter of 2018 revealed that Android smartphone users downloaded 135% more applications than visitors to the iOS store. At the same time, the App Store brought its owners 85% more revenue than Google Play. A reason to think about the separate development of the ios mobile application.

The path to success is clear: play on two fields at once. More precisely, at two stores. Just calculate in which one the application should appear first. Unless of course the simultaneous release is part of your digital strategy.

2. How much time do you have for development?

The financial costs of the project depend on the answer to this question. The fact is that in terms of the time spent on development, a cross-platform application only seems to be a more profitable solution. In fact, adapting it to platforms can take almost as long as creating two native applications, since developers have to write additional pieces of code for problem areas.

With a native application, there will definitely not be such problems, which is very important for retaining an audience that is extremely intolerant to errors and bugs. According to statistics from Compuware, 79% of users are ready to restart the application if it did not work correctly during the first launch, but only 16% agree to give it another chance. The rest will most likely just uninstall the program.

3. What features of the device do you plan to use?

We have already talked about the fact that only native applications are able to reproduce heavy graphics quickly and without loss of quality. But the technical advantages of native development don’t stop there. Take the Facebook app as an example. With the release of separate versions for Android and iOS, scrolling has become smoother, image loading times have been reduced and all cache issues have been resolved.

What’s more, native apps get direct access to all services on the device, which allows you to get information about a user’s location or contact list. Cross-platform applications have to use special native plugins, which negatively affects the data transfer speed and overloads the device’s RAM.

4. What results are you striving for?

A digital strategy is a list of goals that your company can achieve using digital tools. The choice of the latter largely depends on the benefits that you want to get in the end.

Break down the process from idea to result point by point, taking into account all available resources. Discoveries can be the most unexpected.

For example, you may find that translating your responsive site with many features and interactivity into a cross-platform application, as you originally intended, is too expensive a task. Or finally make sure that a mobile site always loses to a mobile application – how cross-platform development loses to a native one. And among the reasons, find those that we described above.

Conclusion: a cross-platform application is beneficial only in one case – you create a demo version of the application, limited in time, money and narrow-profile specialists. In all other cases, a native application will give you many times more advantages, since this is a qualitatively different level of development.

In our blog, you can always read about the price for developing applications for ios and android and have time to leave an application for developing a mobile application in 2020.

What is native and cross-platform development

Native development (from English native – native) means the use of original languages ​​and tools for developing a mobile operating system.

Development of applications for ios takes place in the Xcode development environment in the Swift language (and earlier – in Objective-C).

When using the technology for developing mobile applications on the Android platform, the Android Studio environment and the Kotlin language are used (until 2018, the main language was Java).

An article on building android apps.

Each development environment contains a whole set of utilities for writing code, interface design, debugging, profiling (monitoring) and building applications. Both the environment and the corresponding set of utilities are created specifically for each mobile operating system, and are the most convenient and powerful tools for developing mobile applications.

Cross-platform mobile application development technology implies the use of special frameworks to create an application based on the JavaScript family of languages. All the structure and logic of the application is created using such tools (React Native, Flutter, Ionic, Xamarin, PhoneGap, etc.) in JavaScript, and then wrapped in a native trigger, i.e. integrates into base project for XCode or Android Studio. This allows you to create project assemblies with the same logic for several operating systems at once.

A simple analogy can be seen in the case of personal computers: MS Word, Skype, mail agents, calendars – these are natively developed applications for the desktop operating system. Everything that happens in the browser (websites, online text and graphics editors, social networks, chats, forums) is cross-platform technologies.

Xcode and Android Studio logos

Pros of native mobile app development technology

The development of a mobile application in native technologies and languages ​​for iOS and Android has the following positive aspects:

1. Application speed

Since the application is created using the original development tools (Xcode, Android Studio), the resulting compilation of the project code is optimal for this platform.

The application receives full hardware support for the device (the processing of the same images is carried out by a separate processor specially designed for this – the GPU), multithreading is used to implement complex tasks and load content in the background.

During the development process, programmers can measure the speed of work of all sections of the code and, if necessary, optimize them. They also have tools at their disposal to monitor the use of RAM, search for possible leaks, etc.

2. Flexibility in implementation

In contrast to the limitations in the construction of the interface and the complexity of visual effects imposed by frameworks for cross-platform project assembly, in the native technology for developing mobile applications, you can implement everything that the technologies of a particular mobile operating system are capable of.

3. Use of the latest technologies and dependence on cross-platform frameworks

New software and hardware functionality provided by the device and operating system manufacturers becomes available for implementation immediately after the release of the corresponding updates.

For example, iOS 9 includes the ability to search within apps. Each of them must implement a special method that returns results for a specific search query. As a result, for those native iOS applications in which this functionality is implemented, the ability to search for content through the system search section in iOS is available. In the same place where the search for applications, contacts, events and other information is carried out.

In the case of cross-platform technology for developing mobile applications, to implement such functionality, you will have to wait not only for the release of iOS 9, but also for the update of the corresponding framework, and it is impossible to predict when support for certain new features will appear and whether it will appear at all.

4. Ease and quality of testing

In addition to the toolkit mentioned in clause 1 for monitoring the use of the device’s hardware resources by the application, developers and testers have a whole range of technologies at their disposal.

Firstly, all system parameters are controlled automatically during the operation of the application. If an application uses more memory than expected, or more CPU resources, it will not go unnoticed.

Secondly, the possibilities in the widespread use of unit tests – automatic testing of almost every method in the application. If some part of the application stops working correctly due to any code changes, the new version will simply not be compiled, and the programmer will immediately see the reason.

Thirdly, there are ample opportunities for integrating remote error monitoring systems. In each native project, the corresponding functionality is built in, which allows you to see the error and its cause that arose on the device of any user.

5. Full support from App Store and Google Play

Both companies are committed to ensuring that users get the most positive experience possible when using applications on their respective platforms.

This means that the application should look as high quality as possible (if the screen has a high resolution and the images are blurry, the App Store will simply not let the application pass), work as fast as possible (if the application displays a small list of items in 20-30 seconds, it they will not miss it), and in general everything should be nice and comfortable.

If any of these parameters are too low or not met at all, the application will not be allowed to enter the store. If they are not up to par, which is extremely difficult to achieve with cross-platform technologies for creating mobile applications, and often impossible in principle, your application will never be considered by the relevant companies for placement in special advertising sections (Featured).

Among the applications in Featured sections of both the App Store and Google Play, there are none made using cross-platform technologies. Except for game projects in which the interface is not systemic.

Pros of cross-platform mobile app development technology

The cross-platform development environment has the following positive aspects:

  1. Less resources are required to implement an application for several platforms at once. This, in fact, is the essence of the cross-platform technology for developing mobile applications on the android and iOS platforms – the same code runs on both platforms. There are exactly half the number of programmers involved in the project. The designer only makes one set of graphics. All this reduces the number of working hours and the project budget.
  2. Less development time. Due to the lack of unique interface elements and simpler technologies for developing cross-platform applications, the time for creating simple products is usually less.
  3. Simplified product update cycle. If you need to add something to the project or fix some mistake, this is done immediately for all platforms to which the project applies.
  4. The ability to use the mobile version of the site. In most cases, languages ​​for cross-platform technology for mobile application development are part of the JavaScript family of languages. Therefore, if you already have a mobile version of the site, a significant part of the code and materials can be used in the application without changes.
  5. Using a single application logic. The logic behind the application will work in the same way for all platforms. Quite often, this can be a disadvantage due to the different architecture of operating systems.

    A prime example is the Back button in navigation between screens. Android has a hardware Back button for this. On iOS – swiping your finger from the left side of the screen, or having a button on the left side of the navigation bar. If you don’t do the button at all, iOS users won’t be able to go back. If done, but in the wrong place and looking out of the box, iOS users will be unusual and inconvenient; and if done as in iOS, it will be unusual for Android users.

    However, once written and debugged, the logic contains potentially fewer errors and discrepancies in its work. Therefore, you do not have to do the double and triple work of finding problems on each platform.

conclusions

From a technical point of view and from the point of view of the quality of the interface being created, the native technology for developing mobile applications has much more advantages. However, there are areas in which cross-platform technologies are justified: the gaming sector and test projects.

Most modern games are written on cross-platform technologies. This greatly speeds up development without sacrificing quality. in this case, special graphics frameworks are used (the most popular is Unity 3D).

If a project needs to be done quickly to conduct any tests, and the situation requires the project to work on several platforms at the same time, a cross-platform implementation may be the best solution.

If the project is not a game project, aimed at long-term development and requires a positive user experience, then it would be more rational to create a mobile application in a native way. Once the development method has been chosen, it is time to discuss the cost of developing the application.