Изначально я хотел помочь своему бывшему коллеге с дизайном его звонилки. Но в процессе существенно изменился функционал приложения, и в итоге получилось просто рассуждение на тему удобной звонилки для Андроида. Оригинал статьи опубликован у меня в портфолио, и там есть видео (если смотреть с компа).
Я хотел, чтобы приложение выглядело нативно и не выбивалось среди приложений от Гугла, поэтому использовал стандартные для Андроида компоненты Material Design: кнопки, поля ввода и прочее. Цветовая тема в Android настраивается и может зависеть от цвета обоев на главном экране.
Звонки

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

Любой звонок можно записать. Полный список записей доступен в соответствующем разделе. Распознавание речи даёт возможность искать по содержимому записанных разговоров.
Контакты

Над списком контактов отображаются напоминания о предстоящих событиях (дни рождения, годовщины и так далее) информация о которых указана в данных контакта. Здесь же отображается контакт владельца телефона, чтобы им было легко поделиться.

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

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

В качестве аватарки можно поставить эмодзи. Можно поискать фото в соцсетях.

Тип номера телефона или адреса электронной почты можно указать любой.

В разделе «Дополнительные поля» можно создать любое поле с текстом.
В блоке «Связи» можно связать контакт с любыми другими и указать любой тип связи: супруг, ребёнок, друг, коллега и так далее. Соответствующая связь создастся и у указанного контакта.
Контакт

Нажатие на строку контакта в списке всегда открывает полную карточку контакта. Нет такого, что в «Контактах» открывается контакт, а в «Звонках» сразу идёт вызов. Это унификация, и дополнительная защита от случайных звонков для тех, кто не привык каждый раз блокировать экран телефона.
Основные действия (позвонить, отправить сообщение и так далее) всегда под рукой. Сразу видно, через какой именно мессенджер или приложение будет отправлено сообщение (SMS, Телеграм и так далее).
Прямо под номерами телефонов отображается краткий журнал вызовов — сразу понятно, какой из 54 номеров телефона контакта сейчас актуален.
При нажатии на краткий журнал вызовов открывается его полная версия.


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

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

Можно набирать номер, а можно искать контакты как в старые добрые — с помощью Т9.

Звонок всегда принимается или сбрасывается свайпом вправо/влево. Нет такого, что в какой‑то ситуации нужно свайпать, а в какой‑то просто нажать соответствующую копку. Унификация позволяет не задумываться в довольно стрессовой ситуации входящего звонка.

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

Комментарии (24)

turlir
09.11.2026 20:24Хороший концепт, понравилась идея с записью разговора прямо в звонилке и связи между контактами. В эпоху пакетных тарифов соотношение входящие/исходящие потеряло смысл. Важнее сколько осталось в пакете. У желтого оператора для этого стоит виджет в приложении. Видеть эту информацию в звонилке было бы удобнее, чем в приложении банка на втором экране по счету.
Форма аватарок на взгляд мало отличается и без пояснения идея разделения на входящие/исходящие не считывается.
Полезно иметь возможность выключить/включить прием входящих от неизвестных номеров навсегда или на какое-то время. Это пожалуй самый ультимативный способ бороться со спамом. Сейчас приходится держать отдельное приложение с доступом к чувствительным данным.
Я бы не стал пользоваться такой звонилкой из-за отсутствия избранного. У меня это ТОП-1 по взаимодействию экран. Меня вводит в ступор несколько номеров у контакта. Понимаю что это распространенная ситуация, но каждый раз переживаю по какому номеру пойдет звонок. Если умножить два контакта на две сим-карты в телефоне ситуация становится ужас-ужас. У вас это никак не решено. Как вариант добавить FAB для вызова и скрыть (спорное решение) опциональные номера на карточке контакта.
Идея карточек сторонних приложений на экране контакта (2Гис, Сбер, Телеграм) у меня не прижилась. В первую очередь я буду искать контакт в телеграме, а не в записной книге. Делится книгой контактов со сторонними приложениями не хочется.

neonoviy Автор
09.11.2026 20:24Да, борьба со спамом отдельный вопрос, которому я уделил не так много времени, как стоило бы.
Избранное тут есть, но оно реализовано в не в виде отдельного раздела, а в виде блока в начале списка контактов (звёздочка до контактов на «А») — так же как это реализовано во всех звонилках на андроиде, которые были мне доступны, когда я занимался этим концептом. Лишь недавно я увидел отдельный раздел избранного на телефоне Vivo. Ранее они мне встречались только во времена пользования айфоном. Поэтому я решил идти путём, который показался мне дефолтным для андроида. Возможно из-за недостатка насмотренности.

ferosod
09.11.2026 20:24Только недавно размышлял над тем, что, похоже, полноэкранный виджет входящего вызова должен уйти в прошлое, либо, как минимум, должен стать настраиваемым. Уже лет 5, как входящие вызовы по телефону не являются приоритетными (для меня лично), потому что если я жду звонок, то нажму на кнопку ответа и в небольшом виджете без проблем, а если не жду, то полноэкранный виджет никак не улучшает ux - отвлекает, прерывает текущую задачу.

neonoviy Автор
09.11.2026 20:24Насколько я вижу, одно не отменяет другое. В данный момент на заблокированном телефоне я вижу полноэкранный звонок, а при использовании какого-либо приложения отображается виджет. Да, я в своём концепте до виджета не дошёл, но отказываться полностью от полноэкранного режима мне кажется неправильным. Минус виджета в том, что на нём сложнее расположить весь набор кнопок действия со звонком. Пользователям с плохим зрением сложнее определить кто звонит. Возвращаясь к разговору о том, что я проектировал этот концепт для своем бабушки, ей как раз виджет малопонятен. Как и в целом какая-то модальность интерфейса (тут так отображаем, а в другой ситуации иначе). Плюс, слайдер для ответа внутри виджета разместить проблематично, а он нужен если мы пытаемся избавиться от случайных ответов. Но мысль интересная. Возможно, для каких-то групп пользователей полноэкранный входящий звонок действительно больше не нужен.

15432
09.11.2026 20:24Читал статью и до конца так и не понял, это реальный концепт или стёб над современным оверинжинирингом

RuncisTheCat
09.11.2026 20:24Если вы решили пойти путём открытия контакта при нажатии на него в списке вызовов, то не будет ли логично отказаться от закрепления номеров по умолчанию, и переставлять порядок отображения номеров контакта в том порядке, в котором по этим номерам были звонки/sms?

neonoviy Автор
09.11.2026 20:24Не будет. Если у пользователя 5 номеров, я могу запомнить, что звонить надо по третьему (как вариант). Постоянное перемешивание списка будет путать. Представьте, что у вас в ворде кнопки управления перестраиваются каждый раз по дате использования функции.

m6atom
09.11.2026 20:24У пиктограмок и форм аватарок при исходящих/входящих вызовах разные концепции направленности “стрелок”. Интересная зарядка для ума при распознавании какой это все таки вызов.

DGN
09.11.2026 20:24Очень полезна функция Архив, чтобы в списке контактов не было ненужного и неактуального.
Нужна функция автоответчика, с возможностью настроить индивидуальное приветствие контакту и выставить принудительный автоответчик.
Нужно несколько уровней "не беспокоить", вибрация, автоответчик всем кроме избранных с возможностью дать звонок кодом или без этого.
Нужен умный автодозвон.

neonoviy Автор
09.11.2026 20:24Вы предлагаете автоматически прятать часть данных пользователя в архив? В таком случае могу предложить автоматически очищать рабочий стол пользователя от файлов, перемещая их в корзину :-) Автоответчик и автодозвон - интересные идеи. Как будто что-то из времён старых навороченных проводных телефонов, чего действительно может не хватать кому-то.

Dimmirslr
09.11.2026 20:24Концепт красивый, но перегружен функциями вроде дней рождений и связей между родственниками. Для этого уже есть куча сторонних приложух и календарей

neonoviy Автор
09.11.2026 20:24Дни рождения и связи между родственниками есть, кажется, в любой звонилке. Это часть формата vcard. Просто оно так глубоко там спрятано, что никто этим не пользуется.
vladislav_smirnov
Красивое. Но есть сомнения в том, на сколько это будет удобно.
Смотрю на первое изображение, этот виджет сверху вызывает физическое отторжение.
Все таки звонилка, должна быть в первую очередь звонилкой. Контроль расходов это вообще не ее задача, либо очень сильно второстепенная. Главная должна быть только списком контактов по хронологии, и в идеале без группировки. Если я помню, что в прошлый вторник мне кто-то звонил, я должен увидеть этот звонок среди других вызовов прошлого вторника, а не искать какой вызов "впитал" тот позже.
Запись разговора должна наверное открываться в деталях вызова, а не в отдельной вкладке, дублируя тот же список вызовов.
А вот набор виджетов, типа того же с расходами, нескольких самых популярных контактов, которым я чаще всех звоню, ещё чего-то, уже можно вынести в отдельную вкладку.
Про список контактов, который показывает предстоящие события, тоже такое. Все таки события должны быть в календаре, напоминаниях, но не в списке контактов. Выглядит как фича ради фичи. Сложно представить, что я полезу в контакты искать, что и у кого скоро случится, или листая контакты, когда нужно найти кого-то, увижу у другого контакта, какое-то предстоящие событие и переключаюсь на это.
neonoviy Автор
В качестве пользователя этим приложением я, в первую очередь, представлял свою бабушку. Да она могла бы посмотреть статистику в приложении ОпСоСа, но это для неё не всегда просто. Как и идея искать дни рождения в календаре (как бы ещё они туда попали?) Как будто бы контекстная информация в данном случае была бы к месту. Когда мы исходим из принципа «ничего лишнего» в итоге мы можем расплодить зоопарк узкоспециализированных приложений. Так что это палка о двух концах. Но опять же можно добавить в настройки выбор нужного лично вам.
nemo_user
Вы не учитываете нюанс: ОПСОС всё равно считает так, как считает он - по его собственным алгоритмам, которые могут отличаться на разных тарифах (где-то округление может быть и по 30 секунд, где-то и по минуте). И условные 120 минут у условной бабушки могут оказаться у оператора и 150, и 200 минут. Если на то пошло, у приложений операторов есть виджеты, которые выводятся на главный экран и отображают остатки пакетов - именно так, как считает оператор.
К тому же, помимо округлений, могут быть разные технические условия внутри тарифа. К примеру, у меня древний тариф, где звонки за пределы региона пребывания просто платные, независимо от остатка минут в пакете. Но если звонок идёт через VoWiFi - минуты списываются из пакета и доп.плата не взимается.
neonoviy Автор
Ну вот наконец-то можно будет сравнить что там считает у себя ОПСОС и как это соотносится с реальностью :-)
neonoviy Автор
Давайте ещё не будем забывать, что виджеты опсосов тормозят, часто показывают ошибку вместо данных, а приложения завалены рекламой :-)
nemo_user
Я не спорю, что завалены рекламой и не всегда оперативно подгружают данные.
Но какая в данном случае разница? ОПСОС считает по своей статистике. Что там насчитало у юзера - ему без разницы. И такая локальная "считалка" может ввести в заблуждение.
1x1
Тогда стоило бы сделать режим попроще. Одна большая кнопка, нажимаешь, произносишь имя контакта или псевдиним, подтверждаешь звонок. Всё.
Dimmirslr
Согласен, звонилка должна просто звонить
И группировка звонков часто только путает - пытаешься найти вчерашний пропущенный, а он спрятался в старую ветку разговоров.
И реально странно выносить запись разговоров в отдельную вкладку, удобнее же слушать прямо из карточки конкретного вызова..
neonoviy Автор
О какой такой группировке вы говорите? В концепте вчерашний пропущенный никуда не прячется.
Запись разговоров в отдельной вкладке нужна чтоб отобразить все записи. Но они так же есть и в прочих списках вызовов.
Возможно я не очень понятные скриншоты подобрал для статьи. Но я, к сожалению, не могу выложить на хабре такое же видео с комментариями как у себя на сайте.