Diving into the process of application development on multiple platforms, technical teams move in the direction of simplifying the approach to code creation. Let’s try to analyze the applicability of the solution found – cross-platform app development, – and look into its two most popular frameworks.
The application development process traditionally turns into high resource consumption. The main challenge is to adapt an application to run across all required platforms. Therefore, when coming to application development using native codes, we always bump into the problem of high time and investment cost. The nature of these issues lies in the fact that for the deployment of a native application across multiple platforms it is necessary to involve several teams that use different code languages and organize constant interaction between them, which isn’t so easy. It’s clear that this approach doesn’t allow the client to get MVP fast and cheap.
But how often do we look for alternative methods to the proposed one because we are not satisfied with certain factors?
Fortunately, the way of filling the gap in “communication” between different systems within a minimum time frame, and reducing costs has been found. Cross-platform app development is an inclusive approach that allows building an application with a common universal language adapted to run in multiple mobile platforms. One codebase can be compatible with different operating systems and easily adjusted to their environments. A few years ago, there were doubts about the effectiveness and quality of cross-platform app development, but nowadays, and to a much greater extent, more and more technical teams have moved towards it. Moreover, there are authoritative companies on the market like Instagram, Tesla, Wix, and others that have been successfully creating cross-platform apps for several years.
But is it a good solution to any case? What are the advantages of this approach and the most popular tools for it?
We met with Alexey Shinkarev, the Technical Team Lead at Bamboo Agile, experienced in the implementation of projects of any complexity and scale, to discuss all subtleties concerning cross-platform app development.
What are the main benefits of working with cross-platform technologies?
– Talking about simple applications development, it’s reasonable to emphasize the speed and cost under tight deadlines and a low budget.
What do you find to be the biggest pros and cons of using cross-platform tech?
To the key pros, I can consider rapid and cheaper development. It’s unnecessary to be a mobile developer to build a cross-platform app, although any experience of publishing in stores would be useful.
Among the cons, I can figure out mobile developers’ snobbish attitudes towards this tech:
- from the UI perspective, apps work more slowly due to their architecture specifics;
- compared to native apps, it’s less convenient to develop;
- it’s non-native.
Besides that, cross-platform app development is not suitable for sophisticated apps.
What’s your stack for building cross-platform apps?
– We use the two most popular tools: React Native and Flutter.
Let’s have a look at Flutter. Flutter is a young yet promising platform. It has attracted the attention of many companies that have already launched their applications on its base. Flutter app is attractive primarily for the speed of work, which is on par with native applications, and also due to its simplicity.
We have also obtained Alexey’s opinion about development on Flutter.
What sort of products do you think Flutter is the best choice for?
– For an SME in need of a simple application (e.g. a product catalogue) on a limited budget, Flutter would be the best option to save time and money. At the same time, Flutter wouldn’t be appropriate for designing large-scale apps like online banking. Nevertheless, there are precedents: Alibaba has developed a Flutter app for 5 million users with a huge number of screens, and Yandex.Taxi for drivers has been written on Flutter as well.
What do you expect from Flutter in the future?
– As developers, we’d like to have more user-friendly stack traces for debugging an application. Besides, there’s also much work on multiplatform outside of Android and iOS, i.e. desktop, web, expected, but it seems very raw at this point.
In general, we believe that over time we will see Flutter apps make progress towards success. As long as there are many wanting to develop an app and save costs on the team and time on development, the Flutter community and the quality of tooling will grow.
React Native is another powerful framework that made a real tech breakthrough. Now, this platform becomes a choice for a majority of developers due to its available high speed of app creation and the ability to use native codes for achieving the maximum level of app performance.
We came to Peter Evsikov, a Senior React Native Developer, to get professional and in-depth feedback on this platform.
What sort of products do you think React Native is the best choice for?
– React Native is the best option for many apps. It’s just a native code wrapper. The app logic lives inside React components interacting with native components all the time. With React Native, applications can be easily developed for e-commerce (e.g., for a catalogue for a shop with delivery), banking (many banks use it for client applications), and other services (medical, taxi, etc.). The coding is fast because you can use and share logic between mobile and web (if it’s also written on React).
What do you expect from React Native in the future?
– It’s growing very fast. And even though there is still no stable version, React Native 0.60+ is much better with a redesigned architecture. Each update brings a lot of useful improvements. I think the core will be continuously improved and we will see better stability and system stewardship, integrations with modern debugging tools, and new features helping develop apps faster.