Обновить
109.93

Android *

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

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

Магия AirDrop: Как Apple заставляет Bluetooth и Wi-Fi работать в одной упряжке

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

Разбираться во внутренностях AirDrop - это как препарировать фокус иллюзиониста: на сцене всё бесшовно, а за кулисами - вспотевшие инженеры пытаются заставить два разных радиомодуля не конфликтовать за общую антенну. Прочитав этот текст, вы поймете, как Apple фактически создала свой стек протоколов на базе стандартного железа, почему Bluetooth Low Energy - это «швейцар», а Wi-Fi - «грузчик», и как индустрия наконец-то пришла к единому стандарту передачи данных, который не заставляет владельцев Android чувствовать себя лишними на этом празднике жизни.

Продолжим

Новости

Пишем свою мобильную ОС с нуля на Rust. Часть 2. Менеджер памяти

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

В прошлой части мы загрузили своё мобильное ядро, вывели "Hello world" в UART и нарисовали квадратик на экране.

В этой части я покажу, как улучшилось ядро за это время: поддержка новых устройств (запуск и отладка в QEMU и Raspberry Pi 5), разбиение на модули, и, наконец, полноценный менеджер памяти. В этом нам очень поможет система типов Rust.

Читать далее

Мобильная разработка за неделю #618 (2 — 8 февраля)

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

В этом выпуске модульная архитектура и уменьшение зависаний, переходы между общими элементами и продажа рефакторинга, слежка за акулами, жестокая реальность App Store, придуманные ГОСТы ChatGPT и многое другое. Заходите!

Читать далее

От State к Event: как два sealed class закрывают архитектуру Android-экрана в Kotlin

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

Хаотичные события в Android (навигация, тосты, запросы) часто превращаются в источник багов и нечитаемого кода. В этой статье вы узнаете, как использовать sealed-интерфейсы Kotlin для создания полной, типобезопасной модели экрана, где состояния и события управляются отдельно и предсказуемо. Вы научитесь превращать одноразовые побочные эффекты в строго контролируемый поток команд, получите compile-time гарантии, избавитесь от багов с поворотом экрана и сможете легко тестировать любые события UI. Рассмотренный подход не только защищает от ошибок, но и кардинально упрощает масштабирование логики. Вы сможете добавлять новые события без риска сломать существующую функциональность, а ваш UI-слой станет чистым и декларативным. При этом всё, что нужно для внедрения - это понимание базовых принципов Flow и ViewModel.

Читать далее

Kotlin Symbol Processing: создаём свой процессор

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

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

Dagger/Hilt генерирует DI‑классы, Room генерирует DAO и сущности, Moshi генерирует JSON и т.д. Это экономит тонны времени. Но долгие годы для Kotlin‑проектов приходилось использовать KAPT — Kotlin Annotation Processing, прослойку для совместимости с Java‑аннотациями.

KAPT работал, но имел свои минусы. Он генерирует Java‑стабы из Kotlin‑кода и прогоняет стандартный Java Annotation Processor. Эта махинация замедляет компиляцию: сначала компилятор Kotlin должен переварить ваши исходники в промежуточные Java‑классы, потом снова всё это компилировать. Плюс, KAPT порой криво понимал Kotlin фичи, потому что мыслил категориями Java.

И вот появился Kotlin Symbol Processing (KSP). Это библиотека, которая позволяет писать процессоры напрямую для Kotlin. Обещают до 2х ускорения сборки по сравнению с KAPT, полную поддержку всех фич языка и мультиплатформенность.

Разобрать KSP

Вредоносное ПО Mamont снова атакует РФ

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

Троян Mamont продолжает вести свою вредоносную деятельность, направленную на пользователей Android-смартфонов.

В ходе отслеживания активности семейств вредоносных программ для операционных систем Android эксперты отдела исследований киберугроз «Перспективного мониторинга» обнаружили вариацию вредоносного ПО Mamont с названием Фото(92).apk, датированную 2026 годом.

В ходе тщательного анализа этого образца была выявлена новая панель управления C&C — fensteadom[.]com.

Читать далее

Ахиллесова пята SharedPreferences и стоит ли внедрять Datastore как альтернативу

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

Проблему SharedPreferences можно описать несколькими словами: ANR, блокировка перехода между экранами, явное нарушение стрик мода в Android SDK по работе в главном потоке.

В чем проблема с SharedPreferences и решит ли ее Datastore - узнаем в этой статье.

Узнать подробности

Установка GrapheneOS через терминал Debian-based Linux

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

О том, как установить GrapheneOS без браузера через командную строку, используя ПК на Debian или его деривативах.

Читать далее

Vivaldi 7.8 для Android: Закрепляй и контролируй

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

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

Читать далее

Под капотом Android Automotive: Что такое VHAL и почему это сердце машины

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

В прошлой статье мы запустили эмулятор и убедились, что Android Automotive OS (AAOS) — это не просто зеркало вашего телефона. Это самостоятельная экосистема. Но пока мы запускали только стандартные медиа-плееры, мы скользили по поверхности.

Настоящая магия начинается там, где софт встречается с «железом».

В телефоне у вас есть стандартный набор датчиков: GPS, акселерометр, гироскоп. В современном автомобиле таких датчиков тысячи: от давления в шинах и температуры масла до угла поворота руля и статуса каждой двери. Как Android-разработчику получить доступ к этому океану данных? Не будем же мы тянуть провода к OBDII разъему?

Конечно, нет. Для этого Google построила мощный мост, по которому мы сегодня и пройдемся. Добро пожаловать в мир Car API и VHAL.

Читать далее

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

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

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 мин
Охват и читатели4.8K

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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