⬆️ ⬇️

Cross-platform mobile development: questions for adults

To develop a mobile application independently for different platforms, or with all my strength to lean on cross-platform tools? Many will say that this is a deliberately mistaken statement of the question: both options have their advantages and disadvantages, so there is no only right answer. But this does not mean that conversations on this topic can only be holivor, meaningless and merciless.



Firstly, the advantages and disadvantages of both approaches will have a completely different effect in different situations. This means that this question should not be considered in a vacuum, but in relation to specific conditions. And secondly, the nuances also change over time: for example, most recently Microsoft, having bought Xamarin, made this product free. Does this mean that it is time to reconsider the familiar “for and against”?





')

We asked a few questions to three professionals involved in mobile development on order and well acquainted with the same Xamarin: who else would appreciate the range of possible situations, if not them, who are involved in projects of different scale and character? Our interlocutors are:











What approach to cross-platform development is used in your company, and for what reasons did you choose?







Denis Kretov

Our company has been engaged in mobile development for more than 3 years and was created for a separate industry solution - mobile applications for online stores. Since each online store has a common list of entities, they decided to use Xamarin at the start and were able to transfer 70% of the total logic to separate libraries. This allowed us to create standard solutions for online stores in a short time.





Maxim Evtukh

We long and hard went to the architecture and to the principles of development that are used now in the company. As a result, each project consists of:

* API

* CORE

* UI

API - interaction with the server, CORE - business logic, UI - directly layout and code covering the associated UI moments (animation, transitions, etc.). Moreover, API and CORE do not depend on platform changes (that is, they are used in both Android and iOS), which gives a tangible increase in development speed and, most importantly, simplifies project support in the future.



We were able to achieve something similar with Xamarin, and with the help of MvvmCross we were able to expand the amount of portable code.



Mikhail Samarin

Since we are developing for all existing mobile platforms from almost the first day of Futurice’s existence, that is, for 16 years, we tried and continue to try to find the optimal solution in each case. We currently use all the options: native solutions, Cordova, React Native, Xamarin Native and Xamarin Forms. Which one in a particular case depends on the goals of a particular customer and the specifics of the project.



What can you advise others - when should I use cross-platform tools, and when to avoid them?



Maxim Evtukh

I think it makes no sense to use cross-platform development in two cases:



Based on current practice, the first case is more likely, since most of the applications are specifically thought of now as similar (architecturally), while preserving the features of each platform (“flat” design on iOS and material on Android)



Denis Kretov

I can add to the words of Maxim that each task for mobile development needs to be analyzed for possible code repeatability, unique design and use of the phone’s hardware functions. The combination of these factors gives a general picture, when we can use a cross-platform solution, and when Native is better.



Mikhail Samarin :

In our experience, I can say that the combination of three factors is decisive: an assessment of the possibility of long-term support, the budget of the customer, and acceptable compromises in user experience. To evaluate the latter, the following criterion is possible: what will be the frequency and duration of using the application? If the user resorts to him once a week for five minutes, then you can go for far greater compromises and do more with cross-platform tools than in an application that is used every day and for a long time, noticing every flaw.



How do you suppose if something will change in the course of the coming year: for example, will Xamarin's popularity increase greatly due to its transition to a new quality?



Denis Kretov :

I look with optimism. With the advent of the free version of Xamarin, its use in projects should increase dramatically.



Maxim Evtukh :

A big plus that Microsoft bought Xamarin is that it made it free. But nothing will change drastically, except that Xamarin errors will be corrected faster thanks to open source (at least, I hope so). If the popularity of Xamarin increases - well, this is also for the better, because there are not enough good specialists who are familiar with this technology.



Mikhail Samarin :

Yes, it will rise at the expense of indie-developers. And in a corporate environment where the price of licenses has never been a problem - due to the fact that both Xamarin and Tools are now open source. It adds a sense of security and confidence to the choice. In addition, we must remember that C #, Xamarin Studio on Mac, Visual Studio on Windows is a very, very good set. We have seen cases when a developer who is 100% involved only in iOS, after meeting Xamarin, did the next project, also 100% for iOS, with Xamarin. Just because of how comfortable the C # language is.








Last year, Mikhail Samarin at the St. Petersburg conference Mobius spoke about this issue among many others, and his last year's report was posted on YouTube . And on June 4 at Mobius 2016, Denis Kretov and Maxim Evtukh in their joint report will show with real examples how they in their company implement their chosen approach using Xamarin and MvvmCross - don't miss it!

Source: https://habr.com/ru/post/302070/



All Articles