Обновить
101.32

Android *

Пишем под самую популярную мобильную ОС

Сначала показывать
Порог рейтинга
Уровень сложности

Уменьшаем зависания и оптимизируем потребление трафика: как команда VK Видео работает с viewport на Android

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели3.7K

VK Видео — один из крупнейших видеосервисов в России. В декабре 2025 года его ежемесячная аудитория достигла 81,5 млн пользователей. А в первую неделю января 2026 года среднесуточная аудитория VK Видео превысила 42 млн человек (без учёта просмотров на Smart TV и встраиваемых плееров, по данным Mediascope). 

Часть аудитории пользуется сервисом на устройствах Android. Для работы с видео на Android у VK есть единое решение — SDK OneVideo Player. Оно основано на библиотеке Media3 и содержит много улучшений и доработок в части проигрывания видео. Одна из таких оптимизаций — адаптация видео под viewport.

Меня зовут Егор Баженов. Я Android-разработчик в команде видеоплатформы VK. В этой статье я расскажу, как мы внедрили адаптацию под viewport в нашу библиотекуи каких результатов это позволило достичь.

Читать далее

Новости

Про то, как я Storage Access Framework укрощал, да файлы в хранилище приручал

Время на прочтение5 мин
Охват и читатели3.1K

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

Но вот однажды пользователи стали жаловаться, что не могут найти ранее подписанные документы. Бывало, пользователь подписал файл, долго к нему не возвращался, а спустя время уже не смог его отыскать. Переустановил приложение или авторизовался с другого устройства, и все файлы как в воду канули. 

Меня зовут Георгий Левченко, я Android-разработчик в ПСБ. Начал я искать источник бед пользовательских. Оказалось, виной всему было то, что все файлы хранились в кэш-директории приложения. Понял я: чтобы файлы не пропадали, им нужен менеджмент для файлов. Отыскался у Android для таких целей готовый инструмент — Storage Access Framework (SAF), он служит для доступа к файлам через стандартный интерфейс без управления разрешениями вручную. Поведаю под катом, как я решал с его помощью эту задачу. 

Читать далее

Почему в споре iOS vs Android никто не говорит о главном

Время на прочтение5 мин
Охват и читатели15K

Один из самых ярких споров нашего времени — что лучше: iOS или Android? И с той, и с другой стороны есть представители, готовые с пеной у рта доказывать, что их выбор лучше. Одни обвиняют других в том, что у них нет денег, другие доказывают, что их выбор лучше технически.

Пользователи Android в этом споре чаще всего начинают оперировать фактами, характеристиками, доказывать, что их POCO X6 Ultra (я только что выдумал этот телефон) лучше последнего iPhone 17 Pro Max, а стоит в два раза дешевле. Но для типичного фаната яблочной продукции это вообще не аргумент, он мыслит другими категориями.

Читать далее

Байки математика: как русские хакеры Трампу помогали

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.8K

На дворе шел 2016 год и из каждого утюга кричали, что русские хакеры помогли Трампу избраться, а моя маленькая (очень) команда, была привлечена к безнадёжному проекту,... правда мы поняли об этом потом.

Маленькая предыстория - в тот момент большой канадский гигант SIP телефонии решил выпустить первый телефон под Андроидом, но, не просто выпустить под AOSP, а так, что бы все гугловые сервисы были доступны. Это требовало пройти полное тестирование по GTS (Google Test Suite). Проект разрабатывался израильской командой канадского вендора и командой нашей компании, которая имела давние связи с канадцами.

Приём сертификационных заявок, на прохождение GTS заканчивался в начале ноября, а летом, хитрая израильская команда, предложила нашему архитектору, поменяться задачками - баш-на-баш. Архитектор проведя поверхностный анализ, не нашёл подвоха и... согласился,... как потом оказалось - зря, стоило анализ провести получше.

Первый "подход к снаряду" был ещё летом, но, что-то пошло не так, интеграция не задалась, и... задачу отложили на потом. Когда же на дворе стоял конец сентября, о ней вспомнили,... и вот тут - всех накрыло... и не зря - нужно было интегрировать WideVine...

Тогда подключили мою "команду спасателей" - меня и моего разработчика (Вовка, ты крут).

Задача на словах звучала просто (как всегда):

Читать далее

Пациент болен: как «продать» рефакторинг лиду и продакту

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели4.7K

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

Текст будет полезен не только разработчикам продуктовых команд. Участникам core-команд расскажу про общие принципы рефакторинга, а менеджерам помогу понять, чем отличается зрелое предложение о рефакторинге от обычного «хочу всё переписать».

Хочу узнать про рефакторинг ВСЁ

Мобильная разработка за неделю #617 (26 января — 1 февраля)

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели7.4K

В новом дайджесте простые синтаксические приёмы и Android Developing через вайбкодинг, холодный старт Android-приложения и MVVM-курильщика, разработка браузера для iPad, тренды UX/UI-дизайна 2026, железо для ИИ и многое другое. Подключайтесь!

Читать далее

Код в машине. Android Automotive: С чего начать и куда жать

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6.6K

Мир полон отличных и не очень мобильных приложений, ваш код работает на миллионах девайсов в карманах пользователей. Но это все еще «малый экран». А как насчет того, чтобы ваш софт крутился на дашборде Polestar или Volvo?

Раньше разработка под Automotive была похожа на закрытый клуб масонов: свои проприетарные системы, SDK, которые выдавали только по подписке кровью, и документация которую походу специально шифром непонятным на случай оккупации писали. Но потом пришел Google, и понял что тут он еще не зарабатывал. Так появился Android Automotive OS (AAOS).

И нет, это не тот Android Auto - зеркало который транслирует карты с вашего телефона на экран машины. Давайте сразу это запомним ибо путаница здесь колоссальная.

Читать далее

Universal Ambient Light: Как я создал современное приложение для Ambilight под Android

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.8K

Ambilight/Ambient light — это технология фоновой подсветки экрана, которая создает эффект расширения изображения за пределы дисплея. Она делает просмотр контента более иммерсивным и снижает усталость глаз при просмотре в темноте. Сегодня я расскажу историю создания приложения Universal Ambient Light — современного решения для Android-устройств, которое поддерживает работу с различными LED-контроллерами.

Читать далее

Как я решил войти в Android Developing через вайбкодинг

Время на прочтение5 мин
Охват и читатели12K

Или как собрать и довести до релиза без кодинга и почти бесплатно. Или моя попытка разобраться в процессе разработки и далее использовать как учебное пособие не делая скучные "Hello world", калькуляторы. Что-то живое, нужное и настоящее.

Читать далее

Паттерн Memento в Android: полный разбор сохранения состояния

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели5.4K

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

В статье о том, как паттерн Memento реализуется в Android через CustomView, SavedStateHandle, Compose и навигацию.

Читать далее

Kotlin и Arrow: функциональное программирование с Either, Validated и эффектами

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели5.1K

Сегодня расскажем про библиотеку Arrow в Kotlin. Arrow привносит в Kotlin крутые штуки из функционального программирования: типы вроде Either и Validated для работы с ошибками, эффекты для безопасной работы с внешним миром, ну и много всего. Звучит мощно, но когда за это действительно стоит браться?

Читать далее

Доступ к Google Store для Huawei

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели5.8K

Пост, думаю, будет актуален владельцам телефонов и планшетов Huawei, с установленной операционной системой Harmonyos 2 и 3 версии.

Цены на устройства от Huawei ниже цен всемирно известных брендов по разным причинам, в частности из-за санкций и ограничений со стороны США, при этом качество на приличном уровне.

Однако владельцам устройств этого бренда хорошо известна проблема с установкой приложений, так как сервисы Google на устройствах Huawei не работают, а с ними и магазин приложений Google Play тоже.

Читать далее

FlutterPulse: Январский дайджест 2026 — новости, переводы и обновления месяца

Время на прочтение2 мин
Охват и читатели4.7K

Привет, Flutter-разработчики! 👋
Январь выдался по-настоящему снежным и спокойным - идеальное время, чтобы подтянуть знания, разобрать отложенные статьи и обновить стек перед новым рабочим сезоном.

И этот месяц для нас особенный!

Читать далее

Ближайшие события

Что нам стоит на КМП построить?

Время на прочтение4 мин
Охват и читатели8.1K

Рассказываю с цифрами в руках о сокращении трудозатрат разработки под несколько платформ при использовании Kotlin Multiplatform

Читать далее

Безопасный обмен данными между приложениями на Android: intents, URI schemes, shared preferences

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели7.8K

В Android-разработке рано или поздно придётся столкнуться с задачей передачи данных между приложениями. Казалось бы, что тут сложного - отправил intent, получил результат. Но стоит копнуть глубже, и выясняется, что за простым API скрывается целый зоопарк потенциальных дыр в безопасности. Мы разберем три основных механизма обмена данными в Android: intents, URI schemes и shared preferences. Посмотрим, как они работают под капотом, где подстерегают грабли и как защитить своё приложение от любопытных глаз. Если вы пишете на Android и хотите понять, почему «просто передать данные» - это плохая идея, читайте дальше.

Продолжим

Capacitor: от веба к мобильным приложениям. Часть 1. Миграция проекта на Capacitor

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели9.2K

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

Теперь переходим к самому болезненному и интересному этапу: миграции уже существующего веб-приложения.

Читать далее

Мобильная разработка за неделю #616 (19 — 25 января)

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6.5K

В этом выпуске разработка приложений с помощью ИИ и состояние мобильного рынка, MVVM и плагины для Android Studio, миграция на Android Gradle Plugin 9.0, сокращение потребления памяти, бесплатный Skip, FunctionGemma от Google и многое другое. Заходите!

Читать далее

Чтение книг на других языках при помощи ИИ

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели7.6K

Я уже не первый год в свое свободное время разрабатываю приложение, которое помогает читать книги на иностранных языках. Если вкратце — вы загружаете любую книгу на любом языке в epub, fb2 или просто txt формате, после этого вы можете нажать на любое слово и увидеть его перевод с учетом контекста.

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

Читать далее

Почему «заканчивается» время в iOS-будильнике и как мы искали предел в часах Samsung

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7K

Работает ли это? А что, если… ? Как настоящие QA, мы всегда задаемся этими вопросами. Неудивительно, что вся наша команда взбудоражилась, увидев рилс про «фейковую бесконечность» прокрутки в будильнике на iPhone. Неужели правда? Конечно, тут же проверили на тестовых айфонах. Оказалось, часы и минуты в iOS-будильнике действительно не цикличны. Это список, который можно быстро долистать до конца.

Нам стало интересно, баг ли это, откуда он в iOS и есть ли такое в Android. Чтобы разобраться и найти ответы, нам даже пришлось «на коленке» написать автотест на C#. Но обо всем по порядку.

Читать далее

Погружение в разработку плагинов для Android Studio (часть 2)

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели6.5K

Всем привет! Меня зовут Алексей, я техлид Android-направления в компании Домклик.

Добро пожаловать во вторую часть статьи про разработку плагинов для Android Studio. В предыдущей части мы сделали первоначальные настройки и рассмотрели некоторые задачи. Здесь рассмотрим ещё несколько примеров разных задач и способы их решения с помощью собственного плагина. Предполагается, что проект уже настроен, поэтому без вступления сразу перейдём к делу.

Читать далее
1
23 ...