Привет, Хабр! Я Никита Черемисинов, руководитель продуктового дизайна микроядерной операционной системы KasperskyOS, изначально безопасной на уровне архитектуры, «по дефолту». Моя команда отвечает за весь пользовательский слой системы: от пикселя и виброотклика — до системных сценариев, дизайн-системы и базовых приложений. Если это видно, слышно, ощущается или в целом влияет на опыт работы с KasperskyOS — UI/UX это наша зона ответственности.

Система предназначена для использования в самых разных местах — от тонких клиентов и автомобильных шлюзов безопасности до мобильных устройств, через которые сотрудники предприятий управляют производственными процессами. KasperskyOS подходит, например, и механику, который проводит техническое обслуживание и ремонт оборудования, и обходчику, ведущему протоколирование и видеофиксацию событий.

И вот уже несколько лет мы с командой проектируем интерфейсы для этой ОС. И если кому-то кажется, что «ну подумаешь, еще одна оболочка Android», — спешим разочаровать: это совсем другая лига. Разрабатывать интерфейсы для KasperskyOS — это не просто нарисовать набор базовых приложений от SMS до галереи. Это как делать ремонт, начиная с фундамента, а не с обоев. И в этой статье я расскажу о нюансах нашей задачи и о пути, по которому мы пошли.

UI как часть архитектуры, а не «кожа поверх системы»

Если вы создаете интерфейсы под iOS или Android, у вас уже есть почти все: готовые компоненты, понятные гайдлайны, жесты, анимации, API. Эти системы за годы существования накопили целую экосистему решений, которые делают интерфейсы живыми буквально из коробки. Хотите добавить легкий виброотклик на нажатие? В SwiftUI просто указываете код 1256. Нужна плавная анимация появления элемента? Задаете длительность, и система сама просчитает движение. Даже скролл, который в iOS упруго отскакивает в конце, или мягкая тень под карточкой в Android — все это готово, продумано, оптимизировано.

А теперь представьте, что всего этого нет вообще. Нет системных API, нет стандартных жестов, нет даже драйверов для виброотклика. Если нам нужно, чтобы устройство слегка завибрировало при действии — нам сначала нужно… написать сам драйвер вибромотора.

И так во всем. Хотите реализовать свайп по элементу списка? В Android это готовая функция. В KasperskyOS — целый проект: нужно придумать механику, задать скорость и физику движения, определить логику реакции, протестировать на разных устройствах.

Каждое взаимодействие, которое в других системах существует по умолчанию, у нас превращается в исследование и инженерную задачу. Это уже не просто UI-дизайн. Это инженерия поведения.

Можно сказать, что дизайнер в iOS работает как повар в фастфуде: у него на столе все готово: булочка, котлета, салат, соус. Просто собираешь бургер. Мы же в KasperskyOS выращиваем пшеницу для булочек, растим помидоры, добываем мясо — и только потом готовим тот самый бургер. Но зато он наш, сделанный с нуля, идеально под наши цели.

Такой подход формирует у дизайнеров особое мышление. Мы сразу смотрим глубже: а это возможно архитектурно? Как поведет себя система при ошибке? Можно ли масштабировать этот паттерн? В общем, это другой уровень ответственности — и интереса.

Первые шаги: жизнь на одном CPU

Любое современное устройство работает на двух «мозгах»:

  • CPU (central processing unit) — отвечает за расчеты, логику и обработку данных;

  • GPU (graphics processing unit) — за графику, визуальные эффекты и анимацию.

В Android и iOS разработчики даже не задумываются, где там GPU, — все уже оптимизировано. Например, когда вы открываете карту и приближаете участок двумя пальцами — расчет координат, маршрутов и данных о трафике выполняет CPU, а плавное масштабирование, прорисовка улиц и движение меток происходят благодаря GPU. Или, скажем, в приложении «Камера»: CPU обрабатывает автофокус, экспозицию и сохранение снимка, а GPU отвечает за все, что вы видите в реальном времени, — тени, цветокоррекцию, плавность предпросмотра. В обычной мобильной системе взаимодействие этих «двух полушарий» отлажено до мелочей, все работает синхронно и незаметно.

А у нас… долгое время GPU просто не было. Да-да, весь UI работал только на CPU. Причина проста: бизнес-задачи были другими. Сначала нужно было, чтобы телефон звонил, подключался к сети, передавал данные — в общем, было не до красоты. GPU — это дорого, и, чтобы его «включить», нужно проделать большой пласт работ.

Для нас это означало одно: никаких градиентов, скруглений, блюров и анимаций. Попробуешь добавить эффект — телефон начинает тормозить, пользователи страдают. Но дизайнеры ведь на то и дизайнеры, чтобы искать решения. Мы приняли ограничения и сделали из них стиль.

Как мы обходили отсутствие эффектов

Привычные для любого интерфейса вещи — блюр, скругления, тени, анимации — для нас долгое время были просто невозможны. Мы плакали, когда вышел iOS 26 с их «жидким стеклом» :) У нас ни одна библиотека этого не поддерживала: ни системных эффектов, ни аппаратного ускорения.

  • Вместо блюра — заранее подготовленные изображения PNG, уже размытые вручную. В интерфейсе они просто подменялись, создавая иллюзию прозрачности. Иногда приходилось делать десятки вариантов под разные фоны, чтобы «подмена» была незаметна.

  • Скругления — не свойство компонента, а вставленный SVG-контур, идеально подогнанный по пикселям. Если менялся масштаб интерфейса — все приходилось подгонять заново.

  • Тени и объем — забыли. Любой градиент или полупрозрачность сразу роняли FPS. Поэтому мы сознательно перешли к плоскому, строгому стилю, где все строится на контрасте, типографике и выверенных пропорциях.

И вот так, постепенно минимализм стал не модным приемом, а вынужденной философией. Мы выработали визуальный язык, в котором каждая деталь имеет смысл и ничего нельзя «добавить для красоты», — потому что каждая лишняя деталь бьет по производительности. Получился «швейцарский дизайн» — строгий, функциональный, с хирургической точностью, но при этом визуально чистый и легкий.

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

Для дизайнера это был постоянный укол в глаз: ты рисуешь, тестируешь, смотришь прототип — и видишь, как твой экран обрезает чужая планка. Мы долго искали обходные пути: пробовали визуально смешивать цвета, добавлять переходы, рисовать псевдо-градиенты, подгонять пиксели вручную — но все это выглядело, мягко говоря, неэстетично.

В итоге мы вместе с архитектурной командой переписали механизм работы статус-бара. Фактически создали его заново как самостоятельный системный модуль, который мог читать фон приложения и подстраиваться под него. На это ушли месяцы экспериментов, десятки тестов и с десяток невидимых итераций. Но когда все заработало — это был маленький праздник. С тех пор для нас статус-бар стал символом победы над ограничениями: доказательством того, что даже самые базовые вещи можно переосмыслить и сделать своими руками, если у тебя нет ничего «из коробки».

Когда даже скролл — отдельная наука

В iOS вы тянете список, чувствуете легкий отклик, как будто он «на резинке». Это естественно. А у нас сначала скролл ощущался, как будто вы крутите старый ржавый штурвал — без плавности, без инерции.

Мы буквально изучали, как Apple делает свои скроллы: анализировали SDK, считали время замедления, тестировали на разных сенсорах. И проектировали свой — с «маслом» и упругостью. Даже тут дизайнеры участвовали наравне с разработчиками, просчитывая физику движения.

Принципы нашей дизайн-системы

Телефон на KasperskyOS — это не устройство для лайков и сторис. Это инструмент для работы. Им будут пользоваться сотрудники предприятий — в холоде, жаре, воде, в перчатках на руках. Один — держится за опору, другой — рукой снимает объект, третий — зубами держит отвертку. И в этот момент интерфейс должен помогать, а не мешать.

Чтобы создать именно такой, мы проводим постоянные исследования. Мы не придумываем сценарии из головы — мы ездим на площадки, разговариваем с реальными пользователями, наблюдаем, как они работают. Кто-то показывает, как набирает номер, стоя по колено в воде; кто-то жалуется, что кнопки слишком мелкие для рабочих перчаток; кто-то рассказывает, что яркое солнце на открытой площадке делает экран нечитаемым.

Из этих историй рождаются гипотезы, которые мы проверяем на прототипах. Если решение работает — оно перестает быть просто локальной находкой. Мы превращаем его в принцип, который масштабируется на всю систему интерфейсов KasperskyOS. Так рождаются стандарты, которые потом становятся основой для всех продуктов.

Вот наши принципы.

  • Увеличенные элементы. Кнопки и списки масштабированы в 1,5 раза, чтобы ими можно было пользоваться даже в перчатках.

  • Образы реального мира. Тумблеры и переключатели похожи на промышленные — это не мода, а привычная форма для инженера.

  • Цвета, как светофор. Красный, желтый, зеленый — никаких «брендовых» сложных оттенков, все читается интуитивно.

  • Навигация внизу экрана. Чтобы не тянуться. Мы сделали это еще до того, как Apple перенесла строку поиска Safari вниз :)

Наши дизайнеры не просто рисуют компоненты — они пишут код, создают и тестируют паттерны взаимодействия. А чтобы ускорить рутину, мы активно используем нейросети: где-то для генерации паттернов, где-то для визуального анализа сценариев.

Когда в систему пришел GPU: как мы научили интерфейс «дышать»

К внедрению GPU мы тщательно готовились. Никакой спонтанности, только тщательно проработанные концепты. Мы заранее продумали, как именно оживет интерфейс, какие эффекты при этом появятся, как они должны ощущаться и в каких сценариях будут полезны, а не просто декоративны.

Но, конечно, на практике все оказалось не так просто. GPU — это не волшебная кнопка. Чтобы начать использовать его возможности, нужно было не только протестировать поведение системы, но и внедрить новый подход сразу в десятки приложений. Одновременно. А это всегда риск: любое несовпадение логики или архитектуры — и вся система сыплется. Поэтому мы составили план внедрения — аккуратный, пошаговый, почти хирургический.

Шаг 1. Анимация в «междуэкраниях»

Мы начали не с приложений, а с того, что между ними, — с основных сценариев использования телефона, которые пользователь видит чаще всего:

  • разблокировка экрана;

  • экран запуска (launch screen);

  • переход между приложениями;

  • появление рабочего стола.

То есть с того, что обычно никто не замечает. Но именно из этих микромоментов складывается ощущение живости всей системы.

Например, мы тщательно проработали, как один экран переходит в другой. Это не просто смена кадров — это движение. Один экран плавно уезжает, а другой появляется на его месте. Иконки всплывают синхронно, у всех одинаковые параметры анимации: время, инерция, прозрачность. Даже шторки при свайпе — те, что открывают быстрые настройки — мы буквально раскладывали по слоям, чтобы внедрить правильную физику движения и визуальную отзывчивость.

Шаг 2. Архитектурные барьеры

Когда GPU заработал, оказалось, что внедрить анимацию все равно не так просто. Например, экран блокировки и экран запуска — это разные приложения. Архитектурно между ними пропасть, и система не умеет склеивать переход. С точки зрения пользователя — это один непрерывный сценарий, а с точки зрения системы — два независимых мира, между которыми нельзя сделать бесшовную анимацию.

Чтобы решить это, инженеры переписали композитор — системный слой, отвечающий за отрисовку экранов. Это огромная работа. Кому интересны подробности, можете посмотреть доклад с CrossConf на эту тему нашего старшего разработчика Александра Корнилова.

И вот тогда интерфейс впервые стал дышать.

Шаг 3. Приложение GPU — наша внутренняя «лаборатория эффектов»

Когда базовые сценарии заработали, мы задумали создать отдельное приложение — GPU Lab. По сути, это тестовая библиотека эффектов, витрина с примерами, где можно было вручную настраивать параметры и проверять, как это ведет себя на реальном железе.

Внутри были десятки шаблонов:

  • переключатели, карточки, свайпы, карусели;

  • настройки градиентов, насыщенности, скоростей скролла;

  • эксперименты с блюром и тенями;

  • сложные SVG-анимации, созданные на базе легких векторных спрайтов.

Мы тестировали каждый эффект: как он влияет на производительность, его энергопотребление, плавность. Фактически, это была внутренняя «песочница», где мы учились управлять GPU, прежде чем внедрять эффекты в реальные продукты.

Эта практика дала колоссальный результат: теперь мы точно знаем, какие эффекты живут без ущерба системе, и можем внедрять их в дизайн-систему. Как мы шутим в команде — теперь наш «швейцарский дизайн будет посыпан сахарком».

Шаг 4. Когда даже статус-бар ожил

Ну и, конечно, мы не могли пройти мимо статус-бара — ведь он виден всегда, на каждом экране. Мы оживили и его тоже:

  • индикатор сети теперь плавно появляется и исчезает;

  • при свернутом звонке зеленый «пузырек» с трубкой мягко пульсирует;

  • секундомер стал метафорой реальных часов — стрелка двигается с естественным ритмом;

  • «самолетик» при включении режима полета не просто меняет иконку, а мягко уходит за экран, будто взлетая.

Это не украшения. Это обратная связь, которая делает систему живой. Теперь каждый элемент интерфейса не просто есть — он отвечает пользователю, показывает, что система слышит и реагирует.

Дальше — масштабирование

Сейчас мы на этапе масштабирования этого подхода на базовые приложения и компоненты дизайн-системы. Мы задаем интерактив, тени и анимации уже на уровне компонентов — кнопок, чекбоксов, карточек. То есть не эффект ради эффекта, а четкий язык движения, который будет единым для всей KasperskyOS.

Системные сценарии, о которых обычно не думают

Как вы уже поняли, портфель дизайнера KasperskyOS Mobile богат и динамичен. Помимо пользовательских приложений, у нас есть огромное количество системных сценариев, которые живут вне привычных границ аппсов.

Это клавиатура, запуск устройства, экран включения и выключения, установка системы, а также целый набор дефолтных приложений — «Звонки», «Контакты», «Камера», «Календарь» и еще около двадцати других. Каждое из них развивается как самостоятельный продукт со своими функциями, обновлениями и пользовательскими сценариями. И все эти элементы — не «дополнения», а части одной экосистемы, где все должно быть согласовано по визуальному языку, логике и поведению.

Вызовы и неожиданные сценарии

Для дизайнера вызовы — это отдельная вселенная. Например, мы даже разработали собственный клиент Telegram (привет Паше Дурову 😊). И вы можете представить, какой это объем работы: сотни экранов и сценариев взаимодействия.

Сначала мы выпустили MVP-версию, поддерживавшую только текстовые сообщения. Но люди ведь обмениваются не только текстом, они пересылают фотографии, видео, голосовые сообщения, документы… А наша система тогда просто не умела это отображать.

Мы нашли изящный выход: сделали «смягчающие» сообщения — нейтральные баблы с текстом вроде «Пока не поддерживается отображение медиа 😊». Показать, что мы видим наши точки роста.

Позже, когда появилась поддержка медиа, пришлось перепроектировать взаимодействие между приложениями. Телеграм открывает галерею, файловый менеджер, выбирает контент, отправляет обратно — и все это должно работать бесшовно, будто внутри одного приложения. А под капотом — десятки кейсов и целая система обмена данными между разными сервисами ОС. Наши дизайнеры проектировали эти сценарии так, чтобы решения можно было масштабировать на все остальные приложения.

Эволюция камеры

С развитием технологий и аппаратных возможностей растет и UI. Наша первая камера имела одну большую кнопку — «сделать снимок». Постепенно появились вспышка, настройки экспозиции, фокусы.

При этом у нас пока не все настройки камеры автоматически выставляются под сцену — многое делается вручную, как в профессиональных фотокамерах. Но и такая функциональность должна быть понятна и доступна даже людям, далеким от нюансов фотосъемки. Мы придумали пресеты, собранные из готовых параметров: ночь, движение, макро. Пользователь просто выбирает режим, и камера сама применяет нужные настройки. Простое решение, за которым — десятки экспериментов и тестов UX.

Телефонные вызовы: больше чем кажется

Приложение «Звонки» тоже оказалось настоящим испытанием. Для обычного пользователя это просто списки входящих, исходящих и пропущенных вызовов. Для нас — целая архитектура:

  • экспорт и импорт контактов с SIM-карты;

  • поддержка нескольких SIM одновременно;

  • переключение между ними;

  • сохранение контактов в память телефона;

  • антиспам, черные списки, группировка по департаментам внутри компании.

И при этом все должно быть интуитивным и красивым. Мы сделали экран вызова, который не просто функционален, а визуально насыщен и эмоционален — так, чтобы в момент звонка интерфейс выглядел живым, а не сухим.

Когда баги становятся частью жизни

Разработка системы — это не только фичи, но и постоянные «пожары». Каждый день прилетают новые баги, которые нужно тушить:

  • Bug 9028414: [M11] Камера — зависает при открытии вместе с браузером.

  • Bug 9032102: Вспышка не работает при отключенной зарядке.

  • Bug 9032322: [T1] Подтормаживание при перелистывании экранов в лаунчере.

  • Bug 9032102: [T1] Задержка реакции ползунков в быстрых настройках.

Все эти мелочи могут рушить впечатление от интерфейса. Поэтому дизайнеры постоянно участвуют в приоритизации и помогают командам зашить UX-проблемы на корневом уровне.

Работа с железом: тесты, чипы и парк устройств

У нас целый парк устройств — тестовых и серийных, на которых мы проверяем работу ОС. Каждое устройство имеет свои особенности:

  • камера может быть по центру или сбоку — значит, нужно адаптировать статус-бар;

  • один чипсет тянет анимации, другой — ломает их;

  • где-то работает GPU, где-то его нет.

Внутри Figma у нас даже есть архив версий:

  • «Приложение Файлы — с GPU (устройство 1)»

  • «Приложение Файлы — без GPU (устройство 2)»

Кроме того, у нас разные ветки релизов: стабильные, технические, промежуточные. Каждая со своим набором приложений и фич, и все это нужно синхронизировать. Мы ведем мастер-файлы, где собирается полная карта интерфейсов — своего рода «геном системы».

Секретное приложение для диагностики

Мало кто знает, что в любой операционной системе есть скрытое приложение диагностики. В Android его можно вызвать, набрав комбинацию цифр в звонилке — и вы попадаете в режим проверки датчиков, звука и экрана.

Так вот, мы создавали аналогичное приложение для KasperskyOS. Это инструмент для тестирования оборудования на сборочной линии: проверка сенсоров, микрофона, батареи, точности тачскрина. Есть даже режим, где нужно «прокликать» определенные точки экрана — почти как игра «Змейка», только со смыслом.

Мы подошли к этой задаче не формально, а как к полноценному продукту. Потому что от его удобства напрямую зависит скорость диагностики устройств — а значит, и производительность всей линии. Чем быстрее проходит проверка, тем выше показатели сборки.

Наш внутренний «инженерный зоопарк»

А еще у нас в офисе — целый инженерный полигон:

  • бронированный ящик для тестов перегрева батарей;

  • станция, которая симулирует все виды Интернета в мире;

  • механические пальцы, которые имитируют свайпы и нажатия;

  • стенд с десятками устройств, которые работают одновременно.

Это выглядит как лаборатория будущего — шум, тесты, графики, прототипы, запах пластика и кофе. И все ради того, чтобы интерфейсы KasperskyOS оставались надежными, стабильными и при этом живыми.

Уникальность и патент. Креативность под давлением инженерии

На первый взгляд, в условиях таких ограничений и бесконечных инженерных задач вроде бы нет места креативу. Но это вовсе не так. На самом деле, ограничения — наш главный двигатель.

Мы выстроили процессы так, чтобы у команды всегда оставалось пространство для экспериментов. Помимо продуктовых задач, каждый год мы создаем концепт будущего продукта — не фантазию ради фантазии, а реальное видение, связанное с бизнес-целями, технологическими трендами и стратегией KasperskyOS.

Мы устраиваем брейнштормы и креативные сессии — иногда совместно с агентствами, иногда полностью внутренними силами. В этом году, например, мы посвятили концепт-трек изучению нейросетей: создали целый завод по генерации иконок и обоев с помощью AI. Это позволило нам протестировать десятки направлений визуального стиля и сформировать новый подход к быстрой итерации идей.

После подготовки мы презентуем концепты всей компании — в том числе топ-менеджменту. Так мы показываем вектор развития продукта и вдохновляем другие команды. Часть идей потом «откусываем» и реализуем уже в ближайших релизах — эволюция в действии.

В прошлом году наши проекты получили первое место в Workspace Design Awards в категории «Мобильные приложения для корпоративного сектора». Кроме того, несколько решений уже запатентованы в Роспатенте, а еще три заявки сейчас проходят проверку.

Каждый такой результат — не просто отметка в портфолио, а подтверждение: даже внутри строго регламентированной инженерной среды можно быть креативными, если знаешь, зачем это бизнесу и пользователю.

Смотрим вперед

Креативность и инновации — не украшение, а инструмент развития продукта. Первое желание любого дизайнера — скопировать знакомое: iOS, Android, привычные паттерны. Кажется, что все уже придумано и не нужно изобретать космос.

Но мы сознательно идем другим путем. Мы не копируем — мы исследуем и адаптируем, создавая свой язык, но сохраняя знакомые принципы взаимодействия, чтобы пользователю было комфортно. Это и есть суть дизайна KasperskyOS — уникальность без отрыва от реальности.

Этапы пути

Если обернуться назад, видно, как мы прошли целый технологический цикл.

  1. Сначала — стабильность и CPU. Мы учились запускать систему и строить фундамент.

  2. Потом — мультимедиа и приложения. Мы научились делать не только безопасно, но и удобно.

  3. Теперь — GPU, анимации, микроинтеракции. Интерфейс оживает, система становится человечной.

  4. Впереди — оптимизация и масштабирование. Наша цель — сделать KasperskyOS не просто безопасной, а эмоционально приятной и естественной в использовании.

Финал: дизайн как инженерия эмоций

Мы начинали с черно-белых экранов и отсутствия виброотклика, а сегодня создаем живую экосистему с продуманными микровзаимодействиями, нейросетевыми экспериментами и патентами.

KasperskyOS Mobile — это не просто операционная система. Это экспериментальная площадка, где рождаются новые подходы к безопасности, интерфейсу и взаимодействию человека с технологией.

И самое главное — за всем этим стоит команда, которая верит: даже в мире, где все уже придумано, всегда можно придумать что-то заново.