X (ранее Twitter) полностью переписал Android-приложение с нуля. Стек - Kotlin и Jetpack Compose. Результат: холодный старт сократился в 2-3 раза, скроллинг ленты перестал дёргаться даже на бюджетных устройствах, уведомления приходят без задержек. Проект занял почти год и стал крупнейшей инженерной перестройкой в истории компании.
Решение радикальное, но вынужденное. В 2025 году пользователи Android массово жаловались на критические сбои - приложение не загружало посты по прямым ссылкам. Патчи не помогали. Старая кодовая база, унаследованная ещё от Twitter, исчерпала лимит по стабильности. Параллельно компания сделала ставку на глобальные рынки - Индию, Индонезию, Бразилию, Нигерию, где доля Android превышает 80-90%. Терять эту аудиторию из-за технического долга было нельзя.
Перезапуск затронул архитектуру на всех уровнях: от сетевого слоя до рендеринга интерфейса. Часть функций пока отсутствует - Spaces, кастомные таймлайны, новый видеоредактор, поддержка Android 7 и ниже. Они в разработке и появятся поэтапно в течение следующих месяцев.
Почему X решился на полный перезапуск Android-приложения
Масштаб проблем, накопившихся к середине 2025 года, исключал эволюционный сценарий. Приложение страдало от трёх взаимосвязанных болезней: деградации производительности на старом коде, фрагментации кодовой базы между платформами и невозможности быстро внедрять новые функции без риска обвалить стабильность. Полное переписывание стало единственным способом разорвать этот порочный круг.
Сбои 2025 года: когда приложение перестало открывать ссылки
Весной 2025 года пользователи Android столкнулись с воспроизводимым багом: переход по ссылке на пост X из внешнего приложения приводил к бесконечной загрузке или крашу. Проблема затрагивала все версии Android, но сильнее всего - устройства с 2-4 ГБ оперативной памяти. Внутреннее расследование показало, что корень ошибки - в навигационном слое, построенном на устаревшей кастомной реализации поверх Fragment API. Каждый патч исправлял один симптом и порождал два новых.
Инцидент совпал с периодом, когда Маск публично требовал от команд радикального ускорения разработки. Баг со ссылками стал триггером: инженерный департамент получил карт-бланш на полную переработку Android-клиента без оглядки на обратную совместимость со старым кодом.
Ставка на глобальный Android: почему нельзя было просто обновить старую версию
Android доминирует на ключевых для X рынках роста. В Индии доля платформы - 95%, в Бразилии - 86%, в Индонезии - 92%. При этом средний уровень устройства на этих рынках - смартфон за $150-250 с 4 ГБ RAM и процессором MediaTek или Snapdragon 6-й серии. Старое приложение X на таких устройствах запускалось 4-6 секунд, теряло кадры при скроллинге и не держало фоновые процессы для уведомлений.
Обновлять старую кодовую базу означало бы бесконечно латать архитектуру, спроектированную в 2014-2016 годах под совершенно другие реалии: меньше функций, меньше пользователей, меньше требований к плавности. Компания посчитала, что написать с нуля быстрее и дешевле, чем продолжать поддерживать монолит на XML-вёрстке и AsyncTask.
Технический фундамент: Kotlin и Jetpack Compose как основа нового X
Выбор стека для перезапуска был предопределён трендами Android-экосистемы. Google с 2019 года продвигает Kotlin как предпочтительный язык, а с 2021 года - Jetpack Compose как стандарт для нового UI. X пошёл ва-банк: 100% кодовой базы на Kotlin, никакой Java-совместимости в новом коде, Compose для всего интерфейсного слоя.
Почему Kotlin, а не Java: преимущества для масштабного проекта
Java остаётся легаси-опорой Android, но для проекта с годовой разработкой и командой в несколько десятков инженеров Kotlin даёт три критических преимущества. Null-безопасность на уровне системы типов исключает целый класс багов, связанных с NullPointerException - по статистике Google, до 30% крашей в Android-приложениях вызваны именно этой ошибкой. Корутины заменяют громоздкие цепочки колбэков и RxJava, снижая объём асинхронного кода на 40-50%. Extension-функции и data-классы сокращают общее количество строк, что прямо влияет на скорость ревью и поддержки.
Для X критичным фактором стала интероперабельность с существующим бэкендом. Kotlin-клиенты могут переиспользовать модели данных, определённые на серверной стороне, если бэкенд тоже написан на JVM-языках. Это ускорило синхронизацию контрактов API между командами.
Jetpack Compose: как декларативный UI меняет пользовательский опыт
Compose переворачивает парадигму построения интерфейса. Вместо императивного обновления View-дерева разработчик описывает, как UI должен выглядеть при каждом состоянии данных. Фреймворк сам вычисляет минимальный набор изменений и перерисовывает только то, что действительно поменялось. Для ленты X с её бесконечным скроллингом, динамической подгрузкой медиа и анимациями это даёт двукратное снижение нагрузки на GPU по сравнению с RecyclerView на сложных элементах.
Декларативный подход упрощает тестирование. UI-компоненты становятся чистыми функциями от состояния, их можно проверять unit-тестами без эмулятора. Для проекта масштаба X это сократило цикл «написал - проверил - нашёл баг» на этапе интеграции.
Что изменилось в производительности: ускорение загрузки, скроллинг и уведомления
Три метрики, которые X анонсировал как ключевые улучшения, закрывают главные боли пользователей Android. Холодный старт - первое впечатление от приложения. Скроллинг - то, с чем пользователь взаимодействует 90% времени. Уведомления - критичный канал возврата в приложение.
Мгновенный запуск и быстрая загрузка постов: первые тесты
На устройствах среднего сегмента (Snapdragon 7 Gen 1, 6 ГБ RAM) холодный старт нового X занимает 1.2-1.8 секунды против 3.5-5 секунд у предыдущей версии. Горячий старт практически мгновенный - приложение остаётся в памяти агрессивнее благодаря оптимизированному управлению процессами через WorkManager и отказу от тяжеловесных синглтонов.
Загрузка постов в ленте стала асинхронной на уровне UI: Compose рендерит каркас твита сразу, а медиаконтент подгружается лениво с приоритезацией видимых элементов. Пользователь видит текст и аватар мгновенно, изображения и видео появляются через 200-400 мс. Старая версия ждала полной загрузки всех данных перед показом элемента.
Плавный скроллинг даже на слабых устройствах
Compose использует ленивые списки с переиспользованием композиций. В отличие от RecyclerView, где переработка View-холдеров требовала ручного управления, LazyColumn в Compose автоматически освобождает ресурсы для элементов, ушедших за пределы экрана. На устройствах с 3-4 ГБ RAM это устранило микрозависания при быстром пролистывании ленты из 200+ постов с медиа.
Тестирование на Redmi 12C (MediaTek Helio G85, 4 ГБ RAM) показало стабильные 58-60 FPS при скроллинге смешанного контента - текст, изображения, GIF. Старая версия на том же устройстве проседала до 25-35 FPS на аналогичной нагрузке.
Уведомления без задержек: как решили давнюю проблему Android
Задержки уведомлений на Android - следствие агрессивных политик энергосбережения производителей. Старое приложение X полагалось на FCM с кастомным сервисом, который убивался системой через 15-30 минут бездействия. Новое решение использует комбинацию FCM High Priority и WorkManager с периодическими задачами, гарантирующими доставку даже в режиме Doze.
Архитектурно это выглядит так: бэкенд отправляет push через FCM, клиент получает его в FirebaseMessagingService на Kotlin-корутинах, декодирует payload и мгновенно показывает локальное уведомление. Если сервис убит, WorkManager с constraint «сеть доступна» поднимает обработчик в фоне каждые 15 минут. Задержка доставки в тестах не превышает 2-3 минуты даже на Huawei и Xiaomi с их жёсткими политиками фона.
Чего пока нет: Spaces, старые устройства и другие ограничения
Релизная версия не включает несколько функций, которые были в старом приложении или анонсированы ранее. Это осознанное решение: команда приоритезировала стабильность ядра над полнотой фич. Разберём, что именно отсутствует и когда ждать.
Spaces и видеоредактор: почему новые функции задерживаются
Spaces - аудиокомнаты X, запущенные в 2023 году как ответ Clubhouse и Telegram Voice Chats. В старом приложении они были реализованы через отдельный аудиодвижок на C++ с JNI-прослойкой. Перенос этой логики на Kotlin с сохранением низкой задержки аудиопотока потребовал переписывания нативного слоя. Команда решила не задерживать релиз ради Spaces и выпустить аудиокомнаты отдельным обновлением в конце третьего квартала 2026 года.
Новый видеоредактор, анонсированный в начале 2026 года, завязан на серверный рендеринг эффектов. Клиентская часть на Compose готова, но бэкенд-инфраструктура для обработки видео в реальном времени ещё не выведена на целевую мощность. Ожидаемый срок - четвёртый квартал 2026.
Поддержка старых устройств: когда ждать и на каких версиях Android работает сейчас
Новое приложение требует Android 8.0 (API 26) и выше. Это отсекает примерно 4-5% активных Android-устройств в мире - в основном смартфоны, выпущенные до 2017 года. Решение продиктовано двумя факторами. Compose требует API 21+, но стабильная работа на Android 6-7 потребовала бы дополнительного слоя совместимости и тестирования на устаревших GPU-драйверах. Второй фактор - безопасность: Android 7 и ниже не получают патчей безопасности с 2019-2020 годов.
Компания изучает возможность выпуска облегчённой версии для Android 6-7 через Android Go-оптимизации, но конкретных сроков не называет. Пользователям старых устройств рекомендуется использовать веб-версию X через браузер.
Инженерный вызов: почти год разработки и крупнейший проект в истории X
Проект стартовал в августе 2025 года, релиз состоялся в июле 2026. Над ним работала выделенная команда из 40+ Android-инженеров, разбитая на пять стримов: сетевой слой, UI-компоненты, навигация, офлайн и кэширование, тестирование и QA. Миграция данных пользователей со старого приложения стала отдельной подзадачей: черновики, закладки, история поиска и кэш медиа переносились через поэтапную синхронизацию с бэкендом, чтобы не потерять данные при обновлении.
Тестирование охватило более 2000 моделей устройств через Firebase Test Lab и внутренний device farm. Особое внимание уделили бюджетным смартфонам на базе MediaTek и Unisoc - именно они преобладают на целевых рынках. Каждый билд прогонялся через автоматизированные тесты производительности: холодный старт, скроллинг ленты из 500 элементов, загрузка 10 изображений, отправка твита с медиа. Пороговые значения были жёсткими: холодный старт не более 2 секунд на целевом железе, скроллинг не ниже 55 FPS.
Это не редизайн и не рефакторинг. Это полная перестройка: новый сетевой стек на OkHttp + Retrofit с кастомным кэшированием, новый слой навигации на Compose Navigation, новый менеджер состояний на основе StateFlow. От старого кода не осталось ни одной строки.
Что перезапуск X означает для будущего Android-приложений
X стал крупнейшим приложением, полностью переписанным на Jetpack Compose. До этого фреймворк использовался в новых проектах и отдельных экранах, но никто не рисковал перенести на него продукт с сотнями миллионов пользователей. Успешный запуск X снимает главный страх индустрии: «Compose не готов для high-load продакшена».
Для разработчиков это сигнал. Compose mature настолько, что его выбирают для проектов, где цена ошибки - потеря аудитории. Паттерны, обкатанные командой X - ленивая загрузка медиа в LazyColumn, управление фоновыми задачами через WorkManager + корутины, тестирование UI через Compose Testing API - становятся отраслевым стандартом. Мы разбирали похожие архитектурные сдвиги в материале про Google Antigravity, где агентная IDE переосмыслила подход к разработке через декларативное описание целей.
Для экосистемы Android перезапуск X - доказательство того, что инвестиции Google в Kotlin и Compose оправданы. Это ускорит отказ крупных команд от XML-вёрстки и фрагментов. Тренд на декларативный UI, который мы наблюдаем в инструментах вроде Google Antigravity 2.0 с его агент-центричным интерфейсом, теперь подкреплён реальным кейсом масштаба X.
Практический вывод для команд, присматривающихся к Compose: фреймворк готов. Но миграция крупного продукта - это год работы и полная перестройка архитектуры. X показал, что ставка на современный стек окупается производительностью и скоростью дальнейшей разработки. Теперь слово за теми, кто ещё сомневается.