Кроссплатформенная разработка приложений
Ввиду того, что моя выпускная квалификационная работа, предположительно, будет связана с кроссплатформенной разработкой приложений, существует необходимость проведения исследования возможных к применению технологий, а именно - кроссплатформенных фреймворков, для выбора наиболее подходящего для целей ВКР.
Наиболее популярными на данный момент являются следующие фреймворки:
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 преобразуются в нативные элементы, что гарантирует опыт взаимодействия близкий к нативному.
Обратной стороной большого сообщества и количества подходов к работе является меньшая скорость внедрения изменений и более узкий спектр предоставляемых элементов интерфейса.
Выводы
Резюмируя вышеописанное, формируется следующий тезис: все кроссплатформенные фреймворки обеспечивают более низкую стоимость разработки ценой снижения производительности, а особенности работы с ними не имеют такого значения при выборе фреймворка для начала разработки, как имеющиеся навыки в языке и/ил стандартной библиотеке, используемой во фреймворке, следовательно, от этого аспекта и следует отталкиваться при выборе.