Кроссплатформенная разработка приложений




«Наука - самое важное, самое прекрасное и нужное в жизни человека, она всегда была и будет высшим проявлением любви, только ею одною человек победит природу и себя»

А.П. Чехов


Кроссплатформенная разработка приложений

Ввиду того, что моя выпускная квалификационная работа, предположительно, будет связана с кроссплатформенной разработкой приложений, существует необходимость проведения исследования возможных к применению технологий, а именно - кроссплатформенных фреймворков, для выбора наиболее подходящего для целей ВКР.


Наиболее популярными на данный момент являются следующие фреймворки:

  • React Native

  • Flutter

  • Xamarin

Рассмотрим достоинства и недостатки каждого из них ниже.

React Native

Данный фреймворк был создан корпорацией Facebook для достижения наиболее близкой к нативной производительности.
В качестве языка программирования в данным варианте решения выступает JavaScript с библиотекой React. Поддержка Facebook даёт положительную характеристику с точки зрения будущей поддержки, а React - с точки зрения популярности.
С другой стороны, React Native совмещает в себе недостатки двух подходов взаимодействия с интерфейсом, который описывается как общий для всех платформ, однако исполняется в отдельном потоке, что сильно замедляет обмен данными в ситуациях со значимыми объемами, таким образом, например, сложные анимации, требующие высокой частоты кадров, не могут быть применены.

Flutter

Также, как и React Native, создан корпорацией, но в данном случае - Google, в качестве языка программирования использует Dart, включая все немногочисленные имеющиеся библиотеки.
К преимуществам данного фреймворка стоит отнести возможность использования одного кода не только в рамках мобильных приложений, но также в вебе и на настольных компьютерах и ноутбуках, а также высокую скорость развития, за счёт актуальности и поддержки корпорацией.

Негативными сторонами использования данного фреймворка являются высокая скорость введения ломающих изменений, сложность реализации платформо-специфических стилей из-за использования встроенного графического движка и малое сообщество разработчиков.

Xamarin

Самый старый из рассматриваемых в данном исследовании фреймворков, разрабатывается также корпорацией, Microsoft. Опирается на широкий инструментарий созданных в рамках платформы .NET за годы её развития, используя в качестве языка довольно популярный C#.
Xamarin позволяет использовать, как общий код в рамках проекта Forms, так и платформо зависимый для отдельных компонентов через проекты целевой платформы. В связке с серверной частью на ASP.NET даёт заметную экономию времени разработки в ввиду переиспользования кода. Элементы интерфейса Xamarin Forms преобразуются в нативные элементы, что гарантирует опыт взаимодействия близкий к нативному.

Обратной стороной большого сообщества и количества подходов к работе является меньшая скорость внедрения изменений и более узкий спектр предоставляемых элементов интерфейса.

Выводы

Резюмируя вышеописанное, формируется следующий тезис: все кроссплатформенные фреймворки обеспечивают более низкую стоимость разработки ценой снижения производительности, а особенности работы с ними не имеют такого значения при выборе фреймворка для начала разработки, как имеющиеся навыки в языке и/ил стандартной библиотеке, используемой во фреймворке, следовательно, от этого аспекта и следует отталкиваться при выборе.