Обновить
184.22

Android *

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

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

Верификация разработчиков Android по паспорту

Время на прочтение4 мин
Количество просмотров8.6K

25 августа 2025 года компания Google объявила о «новом уровне безопасности для сертифицированных устройств Android». Для защиты против вредоносного ПО принято решение ввести обязательную верификацию разработчиков, которые подписывают Android-приложения (здесь и далее имеются в виду приложения для сертифицированных устройств с предустановленными программами Google, производители таких устройств перечислены здесь).

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

Читать далее

Мобильная разработка за неделю #604 (22 — 28 сентября)

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

В этом выпуске рассуждения о месте Rust в iOS и MAX в Android, погружение в JNI и опыт Shopify с React Native, архитектурный сдвиг оффлайна, быстрый старт в CI, мобильный рынок Турции, продукты для бумеров и многое другое. Заходите!

Читать далее

Как требование к навигации повлияло на архитектуру мобильного приложения

Время на прочтение8 мин
Количество просмотров1.3K

Привет! Меня зовут Никита и я Android-разработчик. Сегодня я хочу рассказать, как нам вместе с командой Nexign удалось реализовать сборку бизнес-сценариев в приложении для регистрации новых клиентов с особыми требованиями по навигации.

Читать далее

Kotlin QA: как перейти с Java и писать тесты в 2 раза быстрее

Время на прочтение5 мин
Количество просмотров4.9K

С момента официального объявления Kotlin как предпочтительного языка для Android‑разработки в 2017 году язык стремительно завоевал популярность не только в мобильной сфере, но и в автоматизации тестирования.

Многие команды QA-инженеров сталкиваются с выбором: остаться на привычном Java‑стеке или перейти на Kotlin. В этой статье мы рассмотрим некоторые ключевые различия, преимущества и практические аспекты перехода на Kotlin в контексте автоматизации тестирования.

Читать далее

Быстрый старт в CI на примере Flutter (под банальный Android и интересную «Аврору»)

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.5K

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

Читать далее

Загрузка данных во ViewModel: рекомендации и Flow-based архитектура

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

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

Как показывает обсуждение в Твиттере, многие разработчики загружают данные в блоке init {} во ViewModel. Хотя подход кажется логичным, у него есть архитектурные недостатки. Автор статьи описал проблемы такого подхода и предложил гибкую альтернативу с использованием Flow.

Читать далее

Как поддержать Flutter в своей Библиотеке. Опыт VK ID SDK

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

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

Мы давно задумывались о поддержке Flutter, поскольку это быстроразвивающаяся платформа, которой уже пользуется много клиентов. Было видно, что поддержка Flutter нужна клиентам, даже на фрилансовых биржах публиковали заказы на поддержку VK ID. Логичным поступком стало сделать официальное решение от VK, чтобы клиентам не приходилось делать одинаковую работу. В этой статье поделюсь опытом поддержки Flutter в нашем SDK. Статья будет полезна любому разработчику, который хочет добавить поддержку Flutter в свою библиотеку. Материал рассчитан на разработчиков, которые ничего не знают о Flutter и будут разбираться с ним с нуля. Приведены примеры кода только под Android, поскольку под iOS всё делается аналогично.

Читать далее

Гайд по File Templates: как шарить шаблоны с однотипным кодом

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров1.9K

Всем привет! На связи Дима Котиков, ведущий Android-разработчик в Т-Банке. Я все еще люблю разбираться в технологиях, разрабатывать под Android и KMP и пить латте на фундучном молоке :)

Расскажу, как можно шарить File Templates для своей команды, чтобы облегчить жизнь другим и сэкономить немного времени. Причем коллегам ничего самостоятельно не придется настраивать: подтянутый из git-а репозиторий с кодом все сделает сам. Эта статья — бонус к трем предыдущим, в которых я рассказывал, как уменьшить написание boilerplate-кода. Ссылки на них оставлю в конце статьи.

Читать далее

Погружение в JNI: проблемы и решения при взаимодействии между JVM и нативным кодом

Время на прочтение11 мин
Количество просмотров4.4K

Привет! Меня зовут Геннадий Денисов, я руковожу одной из команд разработки мобильного Яндекс Браузера для Android. Недавно в рамках одного проекта мы интегрировали С++‑код в мобильное приложение Браузера. В этой статье я поделюсь основными нюансами работы с Java Native Interface (JNI), инструментами для упрощения разработки и подробностями нашего подхода.

Читать далее

Какие запросы и куда отправляет MAX

Время на прочтение3 мин
Количество просмотров166K

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

Читать далее

Мобильная разработка за неделю #603 (15 — 21 сентября)

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

В новом дайджесте Swift Runtime и производительность iOS-приложений, вопрос на 16К и полный айсберг Android, проектирование интерфейсов по азиатски, 17 платящих клиентов за час из Tinder, реклама на холодильниках и многое другое. Заходите!

Читать далее

Смартфон с настоящей QWERTY-клавиатурой…

Время на прочтение8 мин
Количество просмотров8.2K

В наше время сложно себе представить человека, который носит смартфон с аппаратными кнопками. Всего каких-то 15 лет назад, Nokia E72 считался эталоном быстрой и удобной печати на смартфоне, однако даже он уступил место экранной клавиатуре и Swype. Я с таким положением дел не согласен и продолжаю повседневно пользоваться смартфоном с аппаратной QWERTY-клавиатурой...

Но тот гаджет, что я совершенно случайно купил в Китае за 1.500 рублей просто перевернул моё представление о QWERTY-клавиатурах в смартфонах и о таком забытом классе устройств, как коммуникаторы. И да, он действительно выполнен в форм-факторе ноутбука!

Читать далее

UPDATE: Разрешения MAX для Android. Cравниваем с Telegram и WhatsApp*

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

В своей первой статье «Разрешения MAX для Android. Cравниваем с Telegram и WhatsApp*» я сравнил резрешения, которые запрашивает приложение MAX для Android с разрешениями, которые запрашивают Telegram и WhatsApp.

18 сентября вышла новая версия MAX — 25.11.0 и вы знаете, произошло то, чего я не ожидал. MAX стал запрашивать 50 разрешений, вместо 59, т. е. на 9 меньше!

Давайте посмотрим, какие же разрешения убрали разработчики.

Читать далее

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

Ваш смартфон вам не принадлежит. И вот как я в этом убедился…

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

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

Вы купили телефон. Он лежит у вас в кармане. Вы за него заплатили. Казалось бы, он ваш. Но так ли это на самом деле? Моя недавняя история заставила меня усомниться в этом фундаментальном, казалось бы, факте.

Все началось с батареи. Мой телефон стал разряжаться подозрительно быстро. Будучи технически подкованным пользователем, я решил копнуть глубже. Без рут‑прав, но с помощью Android Debug Bridge (ADB) и команды ps, я начал изучать запущенные процессы. На первый взгляд — все чисто, только системные службы. Ничего криминального.

Потом случился инцидент с обновлением приложения Альфа‑Банка. Оно запросило доступ к «Неизвестным источникам» (разрешение на установку приложений). Я разрешил, обновил и... благополучно забыл об этом. Но позже вспомнил: держать приложение в списке источников — серьезный риск! Это как выдать кому‑то ключ от вашей крепости — оно может устанавливать другие приложения без вашего ведома. Я всегда строго контролирую этот список, оставляя там только абсолютно доверенные программы.

Каково же было мое изумление, когда, заглянув в настройки безопасности (Настройки > Безопасность > Установка неизвестных приложений), я обнаружил там несколько программ, которых точно не добавлял! Среди них было какое‑то безликое «Обратная связь» и загадочный «oms‑core».

«Ладно, — подумал я, — Сейчас исправим». Я спокойно снял галочки напротив этих приложений, лишив их статуса источника установки. Чувство выполненного долга длилось недолго. Какое‑то сомнение грызло меня. Я вернулся в настройки буквально через минуту... и обомлел. Галочки стояли на месте! Я проделал операцию еще раз — результат был тот же. Отключить эту функцию у этих приложений оказалось невозможно.

Читать далее

Андроид всё еще не готов к RAW-видео

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров1.9K

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

Сегодня вам предстоит увлекательное путешествие по стыку технологий, кода и технических решений, которые и расскажут вам то, о чем адепты съемки мобильного RAW‑видео предпочитают не говорить.

Читать далее

Полный айсберг Android. Часть 1

Время на прочтение13 мин
Количество просмотров7.8K

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

Читать далее

«Большие вызовы»: как школьники за 3 недели собрали модуль для офлайн-распознавания документов на Android

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.2K

Привет, Хабр! Меня зовут Олег Милосердов, я руковожу проектами по компьютерному зрению в ВТБ. В июле мы с коллегами приняли участие в научно-технологической программе «Большие вызовы» от образовательного центра «Сириус» в качестве наставников. Мы предложили школьникам спроектировать и внедрить автономный модуль распознавания MRZ-зоны документов, удостоверяющих личность, прямо на мобильном устройстве под Android, которое работает без интернета, серверов и облака. В этой статье расскажу, как талантливые старшеклассники справились с задачей, какой опыт получили и какие выводы мы можем сделать как наставники.

Читать далее

Расширяем возможности GitHub Copilot для IDEA или как писать unit-тесты в пару кликов

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров3.8K

В этой статье расскажу, как мне удалось «влезть» в плагин GitHub Copilot, обойти ограничения проприетарного инструмента и научить его помогать писать unit-тесты буквально в пару кликов. Думаю это будет полезно тем, кто хочет узнать как влезать в работу сторонних плагинов, ускорить написание тестов и тем, кто ищет способы прокачать работу с ИИ-помощниками в своих проектах.

Читать далее

Как я научил Jetpack Compose показывать рекомпозиции в реальном времени

Время на прочтение18 мин
Количество просмотров13K

Привет, Хабр! Меня зовут Иван Кузнецов, я Android‑разработчик в Кинопоиске. Сегодня расскажу историю разработки своего пет‑проекта, которая началась с код‑ревью очередного экрана на Jetpack Compose.

Представьте, вы открываете пул‑реквест и взгляд цепляется за знакомые паттерны: нестабильный параметр в Composable‑функции, remember без ключа, применение трансформаций на Layout‑фазе. Сразу хочется написать комментарий‑лекцию о том, почему это ударит по производительности и почему лучше так не делать.

Вот только объяснения отнимают время и не всегда наглядно доносят суть проблемы. Особенно это актуально для новичков, которым сложно сопоставить абстракции с реальным поведением UI. А ведь для сложных асинхронных штук вроде RxJava или корутин есть визуализаторы — RxMarbles и FlowMarbles, а для самой частой головной боли в Compose до сих пор нет. Вот бы вместо стены текста просто кинуть ссылку со словами: «Смотри, вот что твой код делает на самом деле».

В этой статье я расскажу о разработке собственного приложения, которое в реальном времени визуализирует рекомпозиции. Чтобы заставить его работать, пришлось залезть под капот компилятора Kotlin и подружиться с его внутренними API: FIR и IR.

Читать далее

Делаем Jetpack Navigation 3 удобнее

Время на прочтение9 мин
Количество просмотров1.8K

Привет, Хабр! Меня зовут Артем и я автор и ведущий YouTube и Telegram каналов Android Insights.

Jetpack Navigation 3 дает полный контроль над навигацией через NavBackStack, но прямая работа с ним превращается в написание шаблонного кода и усложняет использование из ViewModel. В статье предлагается решение этих проблемы, добавляя привычный API с командами push(), pop(), replace().

Если вы работаете с Navigation 3 или планируете на неё переходить — эта статья поможет сделать процесс разработки приятнее.

Читать далее