28 сентября 2026 г. · 11 мин чтения

На чём написаны популярные приложения в России: разобрали 100 APK из топа RuStore

Разобрали APK 100 самых популярных приложений RuStore. У 91 основа нативная, на Flutter и React Native только девять. Что внутри у Сбера, Озона, Госуслуг, MAX, ВК и Яндекса.

28 сентября 2026 года мы взяли первые 100 приложений из раздела «Топ приложений» RuStore и посмотрели, что лежит внутри их APK. Если коротко, крупные российские компании пишут под Android нативно. Flutter или React Native составляют основу только 9 приложений из ста, и пять из этих девяти государственные. Ниже разбор по брендам, способ проверки и таблица, которую можно перепроверить.

Коротко

  • Основа на Flutter у 5 приложений, на React Native у 4. Остальные 91 написаны нативно, на Kotlin или Java. У восьми из них внутри есть отдельные модули на Flutter, React Native или Unity.
  • Больше всех Flutter использует Яндекс: он есть в Яндекс Go, Картах, Навигаторе и Яндекс Про. В Яндекс Про кода на Flutter больше, чем на Kotlin и Java.
  • Jetpack Compose нашёлся у 76 приложений. У 15 есть следы Compose Multiplatform от JetBrains, среди них Альфа-Банк, Wildberries, Магнит, Пятёрочка и Яндекс Маркет.
  • Android 7.0 поддерживает только четверть топа, 25 приложений. Самая частая нижняя планка Android 8.0, так у 44 приложений.

Как мы проверяли

  1. Выборка. Первые 100 приложений раздела «Топ приложений» на сайте RuStore 28.09.2026. Игры магазин показывает отдельным списком, их в выборке нет. Порядок задаёт сам RuStore, и он не совпадает с числом скачиваний: у MAX на первом месте 7 млн скачиваний за месяц, у сотого приложения 464 тысячи. В выборку попали 14 приложений Яндекса, 9 приложений VK, 4 приложения Сбера, банки, маркетплейсы, госсервисы, операторы связи и немного случайного вроде «Скачать ТикТок видео». Так выглядит настоящий топ, мы его не чистили.
  2. APK. Ссылку на установочный файл отдаёт API RuStore, тот же запрос делает приложение магазина. Все сто APK весят 15,6 ГБ, но качать их целиком не нужно. APK это ZIP-архив, а оглавление архива лежит в самом конце файла. Запросами с диапазоном байтов мы прочитали только оглавление (имя и размер каждого файла) и AndroidManifest.xml. На все сто приложений ушло меньше 100 МБ трафика.
  3. Признаки. У каждого фреймворка есть файлы, без которых он не работает. Flutter кладёт в APK движок libflutter.so и скомпилированный код приложения libapp.so. React Native кладёт JavaScript-бандл index.android.bundle и библиотеку libreactnative.so или libhermes.so. Unity, .NET и Cordova узнаются так же. Jetpack Compose видно по служебным файлам META-INF/androidx.compose.*.version, Compose Multiplatform по библиотеке ресурсов JetBrains.
  4. Основа или модуль. Flutter внутри большого нативного приложения ещё не делает его Flutter-приложением. Поэтому мы сравнили объём кода: скомпилированный Dart или JS-бандл против Java и Kotlin (файлы classes*.dex). Если кода на фреймворке не меньше половины, считаем фреймворк основой, иначе модулем. Правило грубое, но граница на данных видна чётко: у «основ» соотношение от 0,7 до 3,5, у модулей не больше 0,23.

Итоговая таблица лежит в открытом доступе: JSON и CSV, лицензия CC BY 4.0. Ограничения стоит держать в голове. Мы смотрели только Android, версия для iPhone у той же компании может быть написана иначе. Kotlin Multiplatform без Compose по APK не отличить от обычного Kotlin. Код Mir Pay спрятан упаковщиком, его не видно. У семи приложений сборка вычищает служебные файлы библиотек, и про Compose у них сказать нечего. И это снимок одного дня: 87 приложений из ста обновились за последний месяц.

Что внутри у ста приложений

Jetpack Compose76
Compose Multiplatform15
Flutter (основа у 5)9
React Native (основа у 4)7
Unity (модуль)1
.NET, Cordova, Capacitor0
Сколько приложений из топ-100 RuStore несут технологию в APK, 28.09.2026. Одно приложение может попасть в несколько строк.

Главное, что видно по этим цифрам: кроссплатформенные фреймворки в топе есть, но почти не в самых больших приложениях. Банки, маркетплейсы, соцсети и мессенджеры пишут под Android отдельно, а интерфейс собирают на Jetpack Compose. Это уже стандарт. Там, где служебные файлы на месте, Compose не нашёлся только у 17 приложений, и восемь из них написаны на Flutter или React Native.

Flutter и React Native живут в двух нишах. Первая: государственные и городские сервисы, где подрядчику нужно быстро выпустить приложение сразу под две платформы. Вторая: модули внутри больших приложений, когда отдельная команда делает свой раздел и хочет один код на Android и iOS.

На чём написаны приложения Сбера, Озона, Госуслуг, MAX, ВК и Яндекса

Эти бренды чаще всего ищут вместе с вопросом «на чём написано приложение», поэтому начнём с них.

Приложение Основа Интерфейс Что заметно внутри
СберБанк Онлайн Kotlin, Java Jetpack Compose больше тысячи компонентов в манифесте, карты 2ГИС, нейросети на ONNX Runtime, 3D-движок Filament
OZON Kotlin, Java Jetpack Compose карты Яндекса, вход через VK ID и Госуслуги, оплата SberPay
Госуслуги Kotlin, Java Jetpack Compose и 2111 XML-вёрсток распознавание лиц и документов, ГОСТ-криптография, карты Яндекса
MAX Kotlin, Java XML-вёрстка, про Compose не видно всего 30,6 МБ, WebRTC для звонков, сбор сбоев VK Tracer
ВКонтакте Kotlin, Java Jetpack Compose VK ID, VK Tracer, реклама myTarget
Telegram Java и C++ свой интерфейс без XML-вёрстки и без Compose ядро на C++ в libtmessages.so
Яндекс Go Kotlin, Java Compose, модуль на Flutter, Compose Multiplatform карты Яндекса, AppMetrica
Яндекс Про Flutter по объёму кода Flutter и Compose 72 МБ скомпилированного Dart против 59 МБ Kotlin
Яндекс Карты, Навигатор Kotlin, Java Compose, модуль на Flutter 328 и 320 МБ, одни из самых тяжёлых в топе
Яндекс с Алисой AI, Яндекс Старт, Браузер C++ (Chromium), Kotlin про Compose не видно движок браузера 153 МБ, в «Яндексе» и «Старте» ещё и llama.cpp
Wildberries Kotlin, Java Compose и Compose Multiplatform самое тяжёлое приложение топа, 344 МБ
Т-Банк Kotlin, Java 10 598 XML-вёрсток карты Яндекса, TensorFlow Lite, криптография КриптоПро

Размеры указаны по странице приложения в RuStore. «Про Compose не видно» значит, что сборка вычищает служебные файлы библиотек.

Несколько наблюдений, которые не влезли в таблицу.

MAX, самое популярное приложение топа, весит 30,6 МБ, и в его APK 2569 файлов. У приложений VK размер от 42 до 163 МБ, а у VK Видео и ВКонтакте в APK 14 и 18 тысяч файлов. Видно, что за размером MAX следят отдельно.

В приложениях «Яндекс» и «Яндекс Старт» лежат libllama.so и libggml.so. Это llama.cpp, движок для запуска языковых моделей прямо на телефоне. Какая модель через него работает, по APK не понять, но сам движок в приложения уже встроили.

Госуслуги собраны из смеси Compose и классической XML-вёрстки. Для большого приложения с долгой историей это нормально: новые экраны пишут на Compose, старые переписывают постепенно. У Т-Банка XML-вёрсток больше десяти тысяч, а Compose по его APK не видно.

Кто пишет на Flutter и React Native

Приложение Фреймворк Роль Код фреймворка, МБ Java и Kotlin, МБ
Амина (Москва) Flutter основа 9,6 3,4
ГдеБЕНЗ Flutter основа 9,8 4,0
Госуслуги Дом Flutter основа 5,1 3,2
Лига Ставок Flutter основа 16,0 11,4
Яндекс Про Flutter основа 72,1 59,3
Яндекс Go Flutter модуль 10,1 65,6
Мой МТС Flutter модуль 5,4 51,1
Яндекс Карты Flutter модуль 4,6 50,2
Яндекс Навигатор Flutter модуль 4,6 50,3
Моя школа Дневник React Native основа 22,3 6,4
Дневник МЭШ React Native основа 22,2 6,4
Налоги ФЛ React Native основа 7,9 11,0
СДЭК React Native основа 6,9 7,1
Купер React Native модуль 7,6 32,8
Bigo Live React Native модуль 1,8 27,5
t2 React Native модуль 0,9 19,0

Код фреймворка: сжатый размер libapp.so для Flutter или index.android.bundle для React Native. Java и Kotlin: сжатый размер всех classes*.dex.

Из девяти приложений, где фреймворк составляет основу, пять государственные: московская «Амина», Госуслуги Дом, два электронных дневника и «Налоги ФЛ». Коммерческих три: СДЭК на React Native, Лига Ставок и небольшое приложение ГдеБЕНЗ на Flutter. Отдельно стоит Яндекс Про, приложение для водителей такси. В нём много нативного кода, но Flutter-кода ещё больше.

Для заказчика здесь важен вывод: в топ RuStore можно попасть с приложением на Flutter или React Native, и госзаказчики этим активно пользуются. А вот банки, маркетплейсы и соцсети с десятками команд держат основу нативной и берут кроссплатформу точечно.

Jetpack Compose и Kotlin Multiplatform: что видно по APK, а что нет

Jetpack Compose есть у 76 приложений. Реальная цифра может быть выше: у семи приложений (MAX, Т-Банк, МегаФон, Лемана ПРО и три приложения Яндекса на Chromium) сборка вычищает служебные файлы, по которым мы узнаём Compose. Там, где файлы на месте, без Compose обходятся Telegram, Госключ, ПСБ, «Мой налог» и ещё несколько приложений.

С Kotlin Multiplatform сложнее. Общий код на Kotlin после сборки под Android превращается в обычный dex, и отличить его от кода, написанного только под Android, нельзя. Видно другое: у 15 приложений есть библиотека ресурсов Compose Multiplatform от JetBrains. Она нужна только интерфейсу, который написан как мультиплатформенный. Это Альфа-Банк, Wildberries, WB Банк, Магнит, Пятёрочка, АЗС «Газпромнефть», Лемана ПРО, Wink, Яндекс Go, Яндекс Маркет, Яндекс Почта, Яндекс Про, «Где мои дети», Zona и CapCut.

Какую долю приложения занимает такой код, по APK не понять. У Магнита, например, так собран модуль с настройками адресов доставки, у CapCut раздел с покупками. Но сам факт показателен: мультиплатформенный интерфейс от JetBrains уже есть в каждом седьмом приложении топа, в том числе у двух банков и двух крупнейших продуктовых сетей.

Какую версию Android и какой размер закладывают

Минимальная версия Приложений
Android 4.2 и 5.0 2
Android 6.0 8
Android 7.0 и 7.1 17
Android 8.0 и 8.1 45
Android 9 24
Android 10 и 11 4

Самая частая нижняя планка Android 8.0. Android 7.0 поддерживают 25 приложений из ста, Android 6.0 только десять. Дальше всех назад смотрят Telegram (Android 5.0) и SHAREit (Android 4.2). Выше всех планка у приложения для электронного голосования ДЭГ, оно требует Android 11.

С целевой версией картина ровнее: 65 приложений собраны под Android 16 (API 36), десять уже под API 37. Отстают пять: ПСБ, СберМобайл и Pinterest собраны под API 34, SHAREit и Zona под API 33.

Медианный размер приложения на странице RuStore 84 МБ. Десять приложений тяжелее 200 МБ: Wildberries (344 МБ), Яндекс Карты (328 МБ), Навигатор (320 МБ), Яндекс Про (312 МБ), 2ГИС (282 МБ) и другие. Девять из десяти работают с картами, десятое это видеоредактор CapCut.

Как понять, на чём написано приложение

Проверить любое Android-приложение можно за пару минут, если есть компьютер и телефон с включённой отладкой по USB.

  1. Узнайте, где на телефоне лежит APK: adb shell pm path ru.sberbankmobile (вместо ru.sberbankmobile подставьте имя пакета, оно есть в адресе страницы приложения в RuStore или Google Play).
  2. Скачайте файл: adb pull <путь из первой команды> app.apk. Если команда выдала несколько путей, скачайте все: библиотеки .so часто лежат не в base.apk, а в split_config.arm64_v8a.apk.
  3. Посмотрите список файлов: unzip -l app.apk или откройте APK в Android Studio через Build, Analyze APK.

Дальше ищите знакомые имена. Вот как это выглядит у «Амины» на Flutter и у СДЭК на React Native в нашей выборке (размеры в сжатом виде):

ru.mos.amina.app
  lib/arm64-v8a/libflutter.so           10,6 МБ   движок Flutter
  lib/arm64-v8a/libapp.so                9,6 МБ   код приложения на Dart
  assets/flutter_assets/AssetManifest.bin

com.logistic.sdek
  assets/index.android.bundle            6,9 МБ   код приложения на JavaScript
  lib/arm64-v8a/libreactnative.so        5,9 МБ   движок React Native
Файл в APK Что это значит
libflutter.so, libapp.so Flutter
index.android.bundle, libreactnative.so, libhermes.so React Native
libunity.so, libil2cpp.so Unity
libmonodroid.so, assemblies/ .NET (Xamarin, MAUI)
assets/www/cordova.js, capacitor.config.json Cordova, Capacitor, Ionic
META-INF/androidx.compose.*.version Jetpack Compose
composeResources/, org.jetbrains.compose в манифесте Compose Multiplatform
ничего из этого, много classes*.dex нативное приложение на Kotlin или Java

Если фреймворк нашёлся, сравните размеры: крупный libapp.so или бандл при небольших classes*.dex значит, что фреймворк и есть приложение. Маленький бандл внутри большого dex значит, что это отдельный модуль.

Что это значит, если вы заказываете приложение

Топ RuStore показывает, как выбирают крупные компании, но у них другие условия. Десятки команд, годы развития, NFC-платежи, биометрия, ГОСТ-криптография и тяжёлые карты. Под такие задачи натив и Compose логичны, и почти все лидеры рынка выбрали именно их.

У заказчика, который выпускает первую версию продукта, задачи обычно проще: каталог, формы, личный кабинет, оплата, пуши. Такие приложения хорошо получаются на Flutter или Kotlin Multiplatform, и в топе есть живые примеры: Госуслуги Дом, «Амина», электронные дневники, СДЭК. Одна команда и один код на две платформы экономят заметную часть бюджета, а пользователь разницы не видит.

Мы решаем это по списку функций, а не по моде. Если в проекте много системных возможностей телефона, пишем нативно. Если основная часть это экраны с данными, берём общий код для Android и iOS. Подробнее о том, как мы делаем кроссплатформенные приложения и нативные приложения под Android. Сравнение с третьим вариантом, мини-приложением в мессенджере, есть в статье «Telegram Mini App или нативное приложение», а какие SDK аналитики, пушей и оплаты стоят в тех же ста приложениях, мы разобрали отдельно.

Проверку повторим через три месяца и обновим цифры в этой статье.

Расскажите о вашем приложении

Без созвонов: заполните короткий бриф, и через 24 часа у вас оценка с фиксированной ценой каждого этапа.