Обновить
512K+

Android *

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

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

От потоков к корутинам: как и почему видоизменились примитивы синхронизации в языке Kotlin (Часть 2)

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

В первой части статьи были рассмотрены следующие распространённые способы организации конкурентного кода при работе с потоками и корутинами: критические секции, атомарные переменные, реактивные переменные, барьерная синхронизация.

В этой части будут разобраны другие важные подходы: семафоры, каналы передачи данных, горячие потоки, модель акторов, последовательные обработчики задач, thread confinement.

Для каждого из этих подходов рассмотрим конкретные реализации, выделим плюсы и минусы, приведём примеры использования. В конце объединим все реализации в общую таблицу.

Читать далее

Новости

Тестирование верстки и layout на Android

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

Всем привет, на связи Роман Бобков, тестировщик из проекта Wibes. В своей новой статье я решил поделиться личным опытом тестирования верстки и layout на Android и теми инструментами, которые можно использовать для этого.

Читать далее

Как я впервые в Google Play публиковался

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

Привет, Хабр

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

Читать далее

Как мы научились видеть иерархию корутин в Android‑приложении: Coroutine Tracer в библиотеке Demeter

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

Отладка корутин в Android — задача, с которой сталкивается каждый разработчик, использующий Kotlin. На один экран могут приходиться десятки вызовов launch и async, но стандартные инструменты показывают потоки, а не корутины. В итоге, когда одна из корутин зависает, разработчик оказывается в тупике: отладчик показывает живой поток, но не показывает, какая корутина на нём выполнялась, в каком suspend‑вызове она остановилась и кто её запустил. Приходится искать причину вслепую — расставлять логи и пытаться воспроизвести проблему вручную. 

Привет, Хабр! Меня зовут Вадим Мезенцев, я занимаюсь разработкой мобильных приложений в Яндекс Go. Сегодня я расскажу, как мы сделали инструмент, который автоматически отслеживает жизненный цикл корутин и показывает их в виде интерактивного дерева — прямо на устройстве, без внешних профайлеров. А самое главное — он в открытом доступе.

Читать далее

PaintCAD Mobile 3.0.24 — графический редактор для Android 2.3+ и J2ME

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

Это путешествие длиной в год началось 14 июня 2025 года. До этого я был счастливым обладателем вот этого андроид-телефона Xiaomi Duoqin F22 Pro с кнопочной клавиатурой и Android 12. Экран у него был 640x960 пикселей. Клавиатура как у любого старого телефона - с двумя контролируемыми под андроидом софт-клавишами и кнопкой "Взять трубку", цифровой клавиатурой и джойстиком. И хоть рисовать на нем с этой клавиатуры было удобно как на сименсах 20 лет назад - мощность у него была совсем средняя.

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

Ого, неужели!

Как я случайно открыл функцию активации с багом, побеждающую Swish

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

Началось всё с того, что мне было нечем заняться, и я баловался с языковой моделью, мучая её всякими разными вопросами по ML. В какой-то момент дело дошло до функций активации — сначала прошлись по уже известным, а затем и до ещё непроверенных. Так и появилась LLA — функция активации, являющаяся центральным элементом всей этой истории.

Формула у неё довольно простая:

Дальше

Разработка плагина для Android Studio или Чистим безумную простыню логов в LogCat

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

Каждый Android-разработчик проводит в окне Logcat примерно треть своей жизни. И пока проект маленький, там всё хорошо. Но когда приложение разрастается до десятков изолированных модулей, Logcat превращается в филиал ада. Туда одновременно сыплется аналитика, сетевые запросы, логи инициализации, внутренние «шорохи» библиотек и куча другого мусора.

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

Сначала я пробовал стандартные фильтры LogCat, затем написал скрипты которые чистили по нужным тегам, затем переключался на скармливание этих логов в AI. Выжранные токены заставили чистить уже подготовленные логи. Но все равно это было неудобно и отнимало время.

Поняв, что так дальше жить нельзя, я решил сделать инструмент под себя. Результатом стал плагин TAO LogExt для Android Studio, который превращает эту рутину в удобное управление в несколько кликов.

Читать далее

Android Kiosk: как купить сухарики, когда ларёк закрыт

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

Несколько месяцев назад моему коллеге предстоял долгий перелёт — около 8 часов. Ему быстро стало скучно, и он обратил внимание на экран мультимедийной системы в спинке кресла напротив. Коллега запустил карту полёта и обнаружил, что это Android‑устройство с включённым Kiosk Mode. Этот режим должен помешать (или, по крайней мере, стать серьёзной проблемой) исследованию устройства, но на практике всё оказалось совсем наоборот. Коллега смог без каких‑либо трудностей обойти Kiosk Mode на планшете и прочитать файл /etc/shadow. Именно так появилась идея изучить Kiosk Mode глубже и разобраться: действительно ли он так безопасен?

В этой статье я постараюсь объяснить, как устроен Kiosk Mode в Android изнутри, расскажу об основных компонентах, необходимых приложению, чтобы превратить ваше устройство в kiosk‑девайс, а также приведу несколько примеров реальной эксплуатации kiosk‑устройств и приложений.

Данный материал впервые был представлен в качестве доклада на zeronight.

Читать далее

Мобильная разработка за неделю #634 (8 — 14 июня)

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

В этом выпуске новинки WWDC26 - обновления в UIKit и SwiftUI, App Store, Xcode и Foundation Models. Кроме того, SMTP с нуля на сокетах и исследования RuStore, оптимизация Adapter и миграция навигации на Compose, один файл CLAUDE.md из 4 простых правил, который получил виральное распространение, мобильный рынок Ближнего Востока и многое другое. Заходите!

Читать далее

RuStore качает MAX без спроса и мониторит GPS каждые 5 минут и ему даже не стыдно

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

Привет, Хабр.

С 1 апреля 2024 года RuStore принудительно предустанавливается на все смартфоны, продаваемые в РФ. После недавнего разбора правительственного мессенджера MAX, я декомпилировал APK самого национального стора и проверил его реальное поведение по коду.

нашёл: скрытую подсистему трекинга с записью GPS-координат в локальную SQLite-базу каждые 2 минуты, классический бэкдор для тихой фоновой установки любых пакетов по Push-команде с сервера, слив детальной статистики экранного времени всех ваших приложений, жесткий обход ограничений Android 10+ для сбора несбрасываемых аппаратных IMEI и IMSI, раздачу токенов авторизации VK через AIDL без согласия пользователя, извлечение захардкоженных секретов из C++ библиотек и встроенный движок Касперского с транзитными P2P-узлами и постоянной inotify-слежкой за директорией фото. Все находки сверены с реальным кодом, ссылки на классы и JNI-вызовы внутри.

Читать далее

Интерфейсная биомимимикрия: может ли фрактальная навигация заменить «кладбище иконок» в SuperApp?

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

В прошлом посте https://habr.com/ru/articles/1045002/ я рассказывал про ORDO как про приватный мессенджер с нестандартной навигацией. Но сегодня я хочу отложить тему анонимности и поговорить о чем-то более глобальном — о том, как мы взаимодействуем с информацией в 2026 году.

У меня есть гипотеза, и я хочу проверить её вместе с вами.

Читать далее

Проводник для Wear OS. С передачей файлов и просмотром PDF

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

Около года назад я разработал небольшое приложение для доступа к файлам на Wear OS. Рассказываю о том, как я добавил новый функционал: передача файлов со смартфона на часы, а также просмотр изображений и документов прямо на часах.

Читать далее

Включил отладку по Wi-Fi — получил Mamont

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

В начале мая на устройствах Android была обнаружена уязвимость CVE-2026-0073, которая позволяет удаленно выполнять команды на мобильном устройстве без подтверждения со стороны пользователя.

Уязвимы устройства с Android 11 и выше, на которых включена функция отладки по Wi-Fi.

Функция отладки по Wi-Fi является легитимной — она позволяет подключаться к мобильному устройству для установки, тестирования приложений и создания резервных копий. Для использования этой функции необходимо осуществить сопряжение с ПК и подтвердить доверенные связи. CVE-2026-0073 дает возможность пропустить этап подтверждения связей и сразу взаимодействовать с устройством.

Читать далее

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

GamFree: как я в одиночку сделал приложение против лудомании — без бэкенда, аккаунтов и подписок

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

Привет, Хабр. Это история о том, как я делал ставки 7 лет, потом бросил, а потом написал приложение, которое помогло бы мне бросить раньше. Расскажу и про продуктовые решения, и про техническую часть: React Native + Expo, полностью офлайн-архитектура без бэкенда, шесть языков, и как сейчас выглядит публикация в Google Play для нового индивидуального аккаунта разработчика.

Читать далее

Как мы мигрируем навигацию на Compose в Android-приложениях с 400+ экранами

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

Привет, Хабр! Меня зовут Константин Дубинко, я — Android-техлид в  hh.ru. Сейчас мы заканчиваем большой переезд навигации в двух Android-приложениях — для соискателей и работодателей. В этой статье я покажу, как у нас там устроена навигация, почему мы решили отказаться от Fragment-навигации и как превратили хаотичную миграцию с «островками» новой архитектуры в управляемый процесс с метриками и понятным планом работ. Заодно расскажу, какие решения сработали, какие — нет, и что я сделал бы иначе, если бы начинал заново.

Читать далее

Приложение для изучения китайского. От идеи до прода

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

Всем привет. Хотелось бы поделиться своей историей выпуска Android-приложения для изучения китайского языка.

С чего всё начиналось

Всё началось с того, что я как-то решил начать изучать китайский язык. Всё произошло неожиданно и рандомно. Для начала я решил поизучать, какие есть приложения и источники для изучения языка. Как оказалось, каких-то нормальных особо нет, тем более русскоязычных. На данный момент существуют различные приложения по типу HelloChinese, SuperChinese - они, конечно, классные, но стоят дофига денег. Без подписки они бесполезные. Лучше уж нанять репетитора за такие деньги. А если нет денег на репетитора, то можно достать старый добрый Anki. Я всегда ненавидел Anki за его неудобство, за кривой UX/UI, за долгое создание карточек и за слабое разнообразие. Поэтому я сразу понял, что с помощью Anki изучать мне будет сложно и неприятно. Поэтому было решено создавать своё приложение: без подписок, с интервальным изучением, с большим количеством тренировок и, конечно же, по большей части с офлайн-функциональностью. Было придумано название приложения - Abuchi.

Выбор технологий

Сам я Golang-разработчик, который перешёл с Java, поэтому изначально я думал выбрать обычный Kotlin. Однако из-за ненависти к Java/Kotlin всё же решил выбрать Flutter, так как мне там больше нравится синтаксис и в целом написание кода.

Начало разработки

Базовый минимум функциональностей, которые я планировал: тренировки произношения, тренировки написания, база всех иероглифов, интервальное повторение с помощью карточек.

Для тренировки произношения я решил использовать библиотеку Vosk, так как там есть легковесная модель под Android и в целом она работала лучше, чем тот же Whisper, если оценивать по характеристикам "размер-качество".

Читать далее

Экзорцизм прокси-призраков: Как за 15 минут спасти Smart TV от рабства в ИИ-фермах и очистить карму своего IP

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

Купили новенький телевизор. Повесили на стену. Радуетесь яркой картинке.

А через месяц простейшее меню настроек начинает спотыкаться, а Google на домашнем ноутбуке требует разгадать десятую капчу с автобусами за день. Знакомо? Не спешите ругать провайдера или слабый процессор MediaTek. Скорее всего, ваш телевизор прямо сейчас тихо продает ваш интернет-канал незнакомцам.

В сабреддите r/tech_x вскрыли масштабную схему: сотни приложений для Samsung Tizen и LG webOS тайно превращают Smart TV в выходные узлы (exit nodes) для сетей резидентных прокси.

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

Читать далее

Я не программист, но меня так достали современные читалки на Android, что я написал свою. Встречайте — MRead

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

Всем привет! Я хочу поделиться историей о том, как обычная пользовательская боль заставила меня открыть Android Studio и сделать свой первый серьезный проект.

Я очень люблю читать с телефона (особенно ранобэ, новеллы и книги в оригинале). Но в последнее время индустрия мобильных читалок свернула куда-то не туда. Открывая популярные приложения, я чувствовал себя пилотом Боинга: десятки перегруженных меню, всплывающие баннеры, просьбы купить Premium-подписку и интерфейсы прямиком из 2012 года.

Но моей главной болью был перевод. Когда ты читаешь книгу на английском и встречаешь незнакомое слово, тебе приходится выделять его, копировать, открывать Google Переводчик, вставлять, читать, возвращаться в книгу… Погружение в историю рушится моментально.
Есть, конечно, Circle to Search или читалки с функцией перевода, но мне они показались максимально неудобными

Я искал минималистичную читалку со встроенным удобным переводчиком. Не нашел. И решил написать её сам.

Читать далее

Я обновил онбординг и пейволл в приложении — и за одну неделю заработал больше, чем за предыдущие полгода вместе взятые

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

Я полгода улучшал продукт и почти не зарабатывал. А потом поменял не сам продукт, а только путь пользователя до оплаты — и внезапно появились годовые подписки.

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

Читать далее

Мобильная разработка за неделю #633 (1 — 7 июня)

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

В новом дайджесте победители Apple Design Awards 2026 и эффективность использования памяти в Android 17, обертки свойств в Swift и корутины на низком уровне, PWA после блокировки в App Store, игровая реклама 2026, дообучение LLM, метрики, практики, компромиссы и многое другое. Заходите!

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