Cross-platform and Native Development

Posted by Sarah G. Ferry on October 9th, 2019

What is cross-platform and native development

Native development means the use of original languages ​​and tools for developing a mobile operating system. IOS applications are created in the Xcode development environment in Objective-C, Swift, C, and C ++. To create applications for Android, Android Studio and Java are used. Each development environment contains a whole range of utilities for writing code, designing an interface, 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 means of mobile app development.

Cross-platform development involves the use of special utilities (frameworks) to create an application based on the family of JavaScript languages. The entire structure and logic of the application is created using such tools (PhoneGap, Titanium, Xamarin, Cordova, etc.) in JavaScript, and then turns into a native launch element, i.e. integrates into the base project for Xcode or Android Studio. That allows you to create project assemblies with the same logic for several operating systems at once.

The closest analogy is in the case of personal computers. MS Word, Skype, mail agents, calendars are natively developed applications for the desktop operating system. Everything that happens in the browser (sites, online text and graphic editors, social networks, chat rooms, forums) is cross-platform technology.

Advantages of cross-platform development

Cross-platform development approach has the following positive aspects:

  1. Less resources are required to implement the application for several platforms at once. This, in fact, is the essence of the cross-platform approach - the same code works on both iOS and Android. The programmers involved in the project need exactly half as much. The designer makes only one set of graphics. All this reduces the number of working hours and the budget of the project.
  2. Less development time. Due to the lack of unique interface elements and simpler technologies, the time to create 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. Most cross-platform solutions use 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 unified application logic. The logic embedded in the application will work guaranteed to be the same for all platforms. Quite often, this can be a minus due to the different architecture of operating systems. A vivid example is the “Back” button in the navigation between screens. Android has a hardware Back button for this purpose. For iOS, moving your finger from the left side of the screen or having a button in the left side of the navigation panel. If the button is not done at all, iOS users will not be able to go back. If done, but in the wrong place and looking non-standard, iOS users will be unusual and uncomfortable; and if done as in iOS, it will be unusual for Android users. However, once written and debugged logic contains potentially fewer errors and discrepancies in its work.
Pros of native development

Development on native technologies and languages ​​for iOS and Android has the following positive aspects:

1. The speed of the application.

Since the application is created using original development tools (Xcode, Android Studio), the code resulting from compiling the project is optimal for this platform. The application receives full hardware support for the device (the same images are processed by a separate processor specially designed for this purpose - the GPU), multithreading is used to implement complex tasks and download content in the background. During the development process, programmers can measure the speed of all sections of code and, if necessary, optimize them. They also have tools 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 the visual effects imposed by the frameworks for cross-platform assembly of projects, in the native development you can implement everything that the technologies of this or that mobile operating system are capable of.

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

The new software and hardware functionality provided by the manufacturers of the device and the operating system becomes available for implementation immediately after the release of the relevant updates. For example, iOS 9 has the ability to search within applications. In each of them, a special method must be implemented that returns results for a specific search query. As a result, for those 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 applications, contacts, events and other information are searched. In the case of cross-platform development, to implement such functionality, you will have to wait not only for the release of iOS 9, but also for updating the corresponding framework,

⋅ 4.  Ease and quality of testing.

In addition to the tools mentioned in Section 1 for controlling the use of the device’s hardware resources by the application, developers and testers have a whole range of technologies. Firstly, all system parameters are automatically controlled during application operation. If the application began to use more memory than expected, or more CPU resources, this will not go unnoticed. Secondly, the possibility of widespread use of unit tests - automatic testing of almost every method in the application. If some part of the application has stopped working correctly due to any changes in the code, the new version will simply not be compiled, and the programmer will immediately see the reason. Thirdly, ample opportunities are available in the integration of remote error monitoring systems.

5. Full support from the App Store and Google Play app stores.

Both companies are interested in ensuring that users get the most positive experience when using applications on appropriate platforms, which is currently possible. 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 application will simply not let the app go through the App Store), work as fast as possible (if the application displays a small list of elements in 20-30 seconds, it also will not be missed), and in general everything should be beautiful and convenient. If any of these parameters is too low or not implemented at all, the application will not be allowed to go to the store. If they are not up to the mark, what to achieve with cross-platform technologies is extremely difficult, and often impossible, in principle, your application will never be reviewed by relevant companies for placement in special advertising sections (Featured). Among the applications located in the Featured sections of both the App Store and Google Play, there are none made using cross-platform technologies. With the exception of game projects in which the interface is not systemic.

findings

From a technical point of view and in terms of the quality of the created interface, native development has many more advantages. However, there are areas in which cross-platform technologies are justified: these are the gaming sector and test projects.

Modern games are written in the vast majority on cross-platform technologies. This greatly speeds up development without compromising on quality, as in this case, special graphic frameworks are used (the most popular is Unity 3D). If a project needs to be done quickly to carry out any tests, while the situation requires the project to work on several platforms at the same time, cross-platform implementation may be the best solution.

If the project is not a game, aimed at long-term development and requires a positive user experience, native development remains a more suitable option.

Like it? Share it!


Sarah G. Ferry

About the Author

Sarah G. Ferry
Joined: October 4th, 2019
Articles Posted: 9

More by this author