The world of mobile software has undergone an important evolution in the last decade.

The changes in the market, which make it increasingly articulated, interconnected and full of complex factors have meant that the developers deepened the potential offered by current technologies, mechanisms and specific (native) guidelines of the two most popular operating systems: iOS & Android.

The increasing complexity of the various platforms, and their incompatibility, has however made it increasingly complicated for a single programmer (or development team) to stay updated on all innovations at the implementation level.

For some time, attempts have been made to standardize the developments for the various mobile platforms under a common denominator, with frameworks that however move away from the "native" layer of the individual systems and, by introducing abstractions that limit the freedom of the developers, do not allow to fully exploit the potential of the devices and ultimately provide a significantly lower user experience, or at least it was until recently.

Multi-platform mobile App development solutions

To better master the complexity of code development, different methods of managing the development of multi-platform apps were born through the use of Framework.

The technologies for creating cross-platform mobile applications are divided into two main categories: Web-based applications, and multi-platform applications written in a common language, relying on a specific Framework.

Web-Based Solutions

Web-based technologies often use native "container" software similar to a normal web-browser, which bridges the hybrid application written in HTML / JavaScript (the same technologies on which based on the web) and the operating system. This is the case, for example, of Cordova / PhoneGap, which allows hybrid apps to access the specifications of the individual mobile device (e.g. screen size) and making available some features otherwise not normally accessible from the web (specific functions of the operating system or hardware).

More recently, Progressive Web Apps (or PWA) have also started to spread, mainly driven by Google, but which also work on Apple with some limits. PWAs overcome the need for a "container" and are developed entirely in web technology, thanks to the new HTML5 specifications, just like a website. The PWA also, unlike other technologies mentioned, do not have native components, and are not distributed on traditional App Store, but directly with a link like a normal website. This is an interesting but not yet fully mature technology, which we are likely to discuss in the future.

app idea

Multi-platform framework

Through a multi-platform development framework it is possible to write code that will be compiled to be run directly on the various platforms, in a similar way to a native app. There are various frameworks for multi-platform development, with different characteristics in terms of quality of the result and scope of application, for this reason it is necessary to choose the right tools according to the desired objectives.

For the development of, for example, cross-platform mobile apps, the most used frameworks today are React Native, Flutter (recently made available for the first time by Google) and Xamarin.

For the development of playful and multimedia applications (videogames, AR / VR), there are specific frameworks such as Unity and Unreal Engine (which we often use in Octal, but which we will discuss in a future articles).

Both web-based technologies and multi-platform frameworks have the advantage of having to use only one language for the development of the application, however both have limits in the possibility of integration with the individual specificities of the operating systems of the devices, in the maintainability of the code and results in terms of user experience. In this article we have decided to focus on cross-platform frameworks, which according to our experience guarantee a higher quality of the final result, saving on development times and costs without compromising too much with the exploitation of the potential of mobile devices.

In the next paragraphs we will therefore go into further information on the main frameworks used in the development of mobile apps.

React Native: the advantages and disadvantages of the Facebook Framework

One of the innovations on which we have been working for some time with excellent results and customer satisfaction is the development in React Native.

React-Native is a Framework that allows you to create multi-platform mobile apps released and promoted by Facebook Inc. Applications are developed using the JavaScript language in combination with the native React library. This allows the creation of applications that use GUI components similar to those used by native development processes.

The strength of React Native is the ability to write the code in JavaScript and compile it in a native project, achieving performances very close to the performances achieved by applications written directly in native language.

In addition to the JavaScript components that the Framework offers, it is possible to create new components and functionalities using the native code of the platform on which it is being developed and integrate the latter into the JavaScript part of the Framework.

This approach opens many possibilities for developers, even if in some cases it presents criticalities given by the mono-thread nature of JavaScript. If in traditional applications this limitation can be negligible, in contexts where it is essential to have high performance in real time, React Native risks not being the best choice.

In addition to the good performance (especially for applications that do not require real time functionality, such as games), the advantages of the development in React Native are given by the use of JavaScript as the only language behind the development on both Android and iOS, which allows extensive code sharing. The rapid spread of React Native has also allowed the proliferation of literature and documentation which simplifies and enriches the work of the developers.

The Framework was created by Facebook Inc. which manages its development and implementation processes according to its policies, but is released free of charge as open source. The popularity of React Native is still limited and there are not many developers yet, but it is certainly growing and destined to increase.

Flutter, the Google Framework: Advantages and Benefits

Flutter is a Dart-based development environment, a new programming language developed by Google. The language exploited by Flutter, Dart, can be compiled natively on Android and iOS platforms. This feature allows developers who choose Flutter to create applications with performances very similar to those written directly in native.

Worth Reading: Detailed comparison between Flutter, Xamarin & React Native

Flutter provides a number of predefined widgets that can be used to create interfaces that maintain the native look.

The fact that Flutter is promoted by Google consists of an advantage thanks to the enormous support that Google gives to the developers who choose Flutter (also for obvious marketing reasons), moreover the developer community orbiting around Flutter is already rich and full of supporting documents. A critical issue is given by the reference programming language, Dart, which is still not widespread today and little known by developers.

Flutter is also a relatively recent project in the cross platform development landscape, this makes it not always suitable as a choice for applications that require many integrations with third-party systems, native components or complex functionalities. In Octal, we started using Flutter for some projects with a good satisfaction, especially for not too complex applications and for the rapid creation of prototypes.

Xamarin, the Microsoft Framework

Xamarin is an IDE (Integrated Development Environment) and a Framework promoted (and owned) by Microsoft. Xamarin is used for cross-platform application development, using the C# language and then compiled in native code. The compilation and translation process means that the final product is in all respects a native application.

In the typical Xamarin project there are three main parts of the application that are developed:

  1. The business logic, developed in .NET style and 100% reused
  2. The iOS interface, developed with the specific SDK for Apple
  3. The Android interface, developed with the specific SDK for Google.

The need to develop graphical interfaces separately stems from the approach indicated by Xamarin himself to deal with cross-platform programming: the graphic libraries are mounted directly above their native counterparts, functioning in all respects as simple connectors. This design decision forces developers to write ad-hoc pieces of code for individual platforms.

In order to overcome this limit, for some years Xamarin has made available to developers a library for the creation of multi-platform interfaces. The greater rapidity of development allowed by this approach is paid for with retaliation: a lower flexibility of the components, exacerbated by the lack of supporting documentation.

The choice of technology and development team

In conclusion, the choice of technology often depends on very specific factors of the product to be made. In Octal, we have gained a long experience in these years, and we know how to guide the customer towards the best choice, motivating it and sharing the benefits that derive from it. Regardless of what the technological choice will be, the composition of the team for the development of mobile apps is equally important.

Some organizations opt for the construction of teams in turn "multiplatform", that is, development task forces that include expert Framework developers who work in synergy with experts of the individual operating systems. Octal IT Solution, for example, manages both native projects and multi-platform apps, in the latter case with a team that works in close synergy with the native area (iOS and Android), creating a team of experts dedicated to making the digital product performing on every device and / or operating system.

CTA

Do you already know how to develop your next mobile project? Let's talk about it together.

Arun Goyal

Managing Director @ Octal IT Solution, a prominent Mobile App Development Company offering cutting-edge iPhone App Development and Android App Development services to Startups, SMEs and Fortune-500 Companies.

Leave a comment

Comments

Get a Quote