Портал 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 | Dart | Нативно скомпилированные из единой кодовой базы мобильные, веб- и настольные приложения | Да, лицензия BSD |
Известен своей быстрой разработкой благодаря таким функциям, как 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 |