Портал The New Stack представляет 10 фреймворков и языков для создания кроссплатформенных приложений.

1. Flutter

Открытый инструментарий Google для создания мобильного пользовательского интерфейса (UI) Flutter позволяет писать высокопроизводительные мобильныхе, веб- и настольные приложения с нативными внешним видом и ощущениями на основе единой кодовой базы. Построенный на базе языка программирования Dart, он известен горячей перезагрузкой, настраиваемым UI и богатым набором виджетов. Flutter используется внутри Google, а также применяется такими компаниями, как BMW и Toyota.

2. Iconic

Iconic — это открытый набор инструментов для создания высококачественных кроссплатформенных гибридных и прогрессивных веб-приложений (PWA) с использованием HTML, CSS и JavaScript. Разработчики используют его для написания приложений, которые могут работать на веб-платформах, iOS, Android и настольных компьютерах.

Хотя прошлые версии Ionic были тесно связаны с Angular, в версии 4.x фреймворк был переработан для работы в качестве самостоятельной библиотеки Web Component, поэтому его можно использовать в большинстве фронтенд-фреймворков, включая React и Vue. Некоторые JavaScript-фреймворки для полноценной поддержки Web Component требуют использования shim, то есть кода (часто библиотеки), который выступает в качестве промежуточного слоя.

3. Kotlin

Kotlin — многоплатформенный язык программирования общего назначения, разработанный компанией JetBrains, поставщиком интегрированной среды разработки (IDE). Он может компилироваться в JVM, JavaScript для веб-разработки и в нативный код для создания кроссплатформенных приложений под Android, iOS, macOS, Windows, Linux и WebAssembly. Kotlin используется с фреймворками пользовательского интерфейса, такими как Compose Multiplatform, фреймворк на базе Kotlin для совместного использования декларативного UI на нескольких платформах: для Android, iOS, настольных компьютеров и, в экспериментальном варианте, для Web.

У компании также есть Kotlin Multiplatform Mobile, фреймворк для мобильной разработки, построенный на базе языка Kotlin. Он позволяет разработчикам один раз написать бизнес-логику, не зависящую от платформы, а затем скомпилировать ее в библиотеку Kotlin для Android и нативный Universal Framework для iOS с помощью Kotlin/Native. Netflix использовала этот инструмент для создания Prodicle, мобильного приложения для производства телешоу и фильмов.

4. Lynx

Lynx — это семейство технологий с LynxJS в качестве кроссплатформенного UI-фреймворка, созданное ByteDance, компанией-владельцем TikTok. Lynx позволяет разработчикам создавать нативные UI с использованием единой кодовой базы для кроссплатформенных приложений, включая веб, Android и iOS. Он был запущен 5 марта и уже получил положительные отзывы и сравнения с React Native.

5. NativeScript

NativeScript — это фреймворк с открытым исходным кодом на основе JavaScript для создания нативных мобильных приложений для iOS и Android с помощью JavaScript, TypeScript или Angular. В отличие от гибридных фреймворков, которые отображают UI в WebView, NativeScript компилируется непосредственно в нативные UI-компоненты, что обеспечивает производительность и пользовательский опыт, близкие к приложениям, созданным на таких специфичных для конкретной платформы языках, как Swift или Kotlin. Это позволяет веб-разработчикам использовать имеющиеся навыки для создания высокопроизводительных мобильных приложений, сохраняя при этом доступ к нативным API устройств.

6. .NET MAUI

.NET MAUI, ранее называвшийся Xamarin, расшифровывается как NET Multiplatform App UI. Разработанный Microsoft, он позволяет разработчикам .NET создавать нативные мобильные и настольные приложения на основе единой кодовой базы. Он использует C# и экосистему .NET, предоставляя единый API для доступа к функциям конкретной платформы и создания UI, которые могут работать на iOS, Android, macOS и Windows. Используется компанией Progress Software. При этом Xamarin все еще доступен.

7. One

One — это фреймворк на основе React, который позволяет разработчикам писать один раз и развертывать в вебе или React Native для мобильных устройств. По словам его создателя Нейта Винерта, который также создал библиотеку пользовательского интерфейса Tamagui, в настоящее время он находится в бета-версии. С помощью единого плагина Vite он дает разработчикам возможность создавать приложения как для веб, так и для нативной платформы. One позволяет создавать одностраничные приложения, генерировать статические сайты и рендерить веб-страницы на стороне сервера, что является его ключевым отличием.

8. Qt

Qt — зрелый кроссплатформенный фреймворк, написанный преимущественно на C++. Он используется для разработки для настольных систем — Windows, MacO и Linux — но также поддерживает встраиваемые системы, мобильные устройства с Qt for Mobile и веб с Qt for WebAssembly. Он предоставляет богатый набор виджетов и UI-инструментов.

Qt также предоставляет набор библиотек для таких функций, как поддержка сетей, доступ к базам данных, обработка мультимедиа и XML, что позволяет создавать сложные приложения для разных платформ на основе единой кодовой базы. В отличие от других вариантов в этом списке, у QT есть вариант коммерческой лицензии.

9. React Native

React Native — это фреймворк с открытым исходным кодом, который позволяет разработчикам создавать нативные мобильные приложения для iOS и Android с помощью JavaScript и React. Он позволяет повторно использовать код на разных платформах, ускоряя разработку и обеспечивая при этом доступ к нативным функциям и производительности устройств. Веб-разработчики на JavaScript используют его для создания мобильных приложений. Одним из способов использования React Native является Expo — фреймворк и платформа, построенная поверх React Native.

10. Swift

Разработанный Apple для собственных платформ, Swift превратился в кроссплатформенный язык программирования. Он доступен в Linux и Windows для разработки серверной части, инструментов командной строки и настольных приложений. SwiftUI — это проприетарный фреймворк на основе Swift для создания приложений для всех платформ Apple (iOS, macOS, watchOS, tvOS и visionOS).

В таблице представлено сравнение фреймворков:

Название Что собой представляет Кем создан Основа Для чего предназначен Open Source? Особенности
Flutter Комплект для разработки UI Google Dart Нативно скомпилированные из единой кодовой базы мобильные, веб- и настольные приложения Да, лицензия BSD 3-Clause Известен своей быстрой разработкой благодаря таким функциям, как Hot Reload, выразительным и гибким UI с богатым набором виджетов, а также способностью создавать высокопроизводительные приложения, которые выглядят и ощущаются как нативные на разных платформах
Iconic UI-инструментарий Макс Линч, Бен Сперри и Адам Брэдли, которые были частью компании Drifty в 2013 г. JavaScript — включая Angular, Vue и React — и его разновидности (например, TypeScript), а также HTML и CSS Гибридные мобильные приложения, прогрессивные веб-приложения (PWA) и настольные приложения, использующие веб-технологии, такие как HTML, CSS и JavaScript (часто с Angular, React или Vue.js) Да, лицензия MIT Доступен Iconic CLI; он отображает UI в WebView
Kotlin Кроссплатформенный язык программирования общего назначения JetBrains Java Разработка под Android и разработка бэкенда на виртуальной машине Java (JVM). Компилируется в JavaScript (Kotlin/JS) для фронтенд-веб-разработки и в нативный код (Kotlin/Native) для iOS, macOS, Windows, Linux и WebAssembly Да, лицензия Apache 2.0 Совместное использование кода на разных платформах
Lynx Кросс-платформенный UI-фреймворк ByteDance, которой принадлежит TikTok Основной движок написан на Rust, однако для создания приложений на Lynx разработчики в основном используют JavaScript и TypeScript Используется для создания единой кодовой базы для кроссплатформенных приложений и веба Да, лицензия Apache 2 Позволяет разработчикам использовать CSS, даже если он является нативным. Некоторые компоненты UI и расширенные встроенные графические возможности еще не выпущены под лицензией Apache 2
NativeScript Фреймворк для создания нативных мобильных приложений для iOS и Android с помощью JavaScript, TypeScript или Angular Telerik, которая ныне принадлежит компании Progress Software. Сейчас принадлежит OpenJS Foundation JavaScript, TypeScript и Angular Создание нативных приложений для iOS и Android с помощью JavaScript, TypeScript или Angular. Да, лицензия Apache 2.0 В нем напрямую используются нативные компоненты UI. Разработчики получают доступ ко всем возможностям нативных API устройств. NativeScript не пытается эмулировать нативный UI или работать в контейнере браузера. Вместо этого он выступает в роли моста между JavaScript/TypeScript/Angular и нативными API, позволяя писать код на этих привычных языках, который напрямую манипулирует и использует базовые возможности нативной платформы и компоненты UI
.NET MAUI (ранее Xamarin) Кросс-платформенный фреймворк Microsoft C# и .NET Развивает и унифицирует Xamarin.Forms, позволяя создавать приложения, которые могут работать на iOS, Android, macOS и Windows из единой кодовой базы Да, лицензия MIT Предоставляет набор элементов управления UI и API для доступа к нативным функциям платформы
One Кросс-платформенный фреймворк Нейт Вайнерт JavaScript React Создает как веб-страницы с помощью React, так и нативные приложения для платформ с помощью React Native Да, лицензия MIT Отображает любую страницу как SPA, SSR или SSG, управляя глобальным значением по умолчанию. Предлагает CLI
QT Кроссплатформенный фреймворк для разработки настольных приложений с поддержкой мобильных устройств с помощью Qt for Mobile и веб-приложений с помощью Qt for WebAssembly Хаавард Норд и Эйрик Чамбе-Энг из компании Trolltech, которая после ряда приобретений превратилась в Qt Company C++ Высокопроизводительные настольные, мобильные и веб-приложения Да, лицензии LGPL и GPL, доступна коммерческая лицензия Предоставляет набор библиотек для таких функций, как работа в сети, доступ к базам данных, мультимедиа, обработка XML, поэтому с его помощью можно создавать сложные приложения для разных платформ на основе единой кодовой базы
React Native Фреймворк для создания нативных мобильных приложений Meta (признана экстремистской и запрещена в РФ) JavaScript React iOS и Android из единой кодовой базы Да, лицензия MIT
Swift Кроссплатформенный язык, использующий UIKit или SwiftUI в качестве фреймворка Apple Swift Создание приложений для iOS и Android (с помощью Swift for Android). Может компилироваться в WebAssembly и использоваться для создания серверных приложений для Linux, инструментов командной строки и многого другого. Растущая поддержка разработки на Swift под Windows позволяет создавать приложения и для этой платформы Да Создает компоненты на стороне сервера, которые обеспечивают работу веб-приложений и генерируют исходный HTML. Такие фреймворки, как Vapor, Kitura и Perfect, позволяют разрабатывать веб-приложения на стороне сервера с помощью Swift