Обновить
256K+

Android *

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

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

Пишем свой Web3 мессенджер

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

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

Что такое мессенджер

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

Что такое Web3

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

Быть или не быть

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

Читать далее

Новости

Как мы тестируем планшеты KVADRA_T на производстве: архитектура DeviceTestPro

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

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

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

Читать далее

Пять ошибок начинающих Android‑разработчиков при работе с жизненным циклом

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

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

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

Читать далее

Покой как фича: анти-шагомер на Expo, который ругает за активность

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

Я сделал анти-шагомер на Expo и React Native: приложение, которое награждает за неподвижность и ругает за шаги. Снаружи это шутка про anti-wellness, внутри — Android step counter, background tasks, локальные пуши, Zustand, native-модуль для TYPE_STEP_COUNTER и state machine для чек-апа “я живой, но мне лень”. Рассказываю, что сломалось по дороге и почему фоновая логика в мобильной разработке — это не cron.

Мне лень, но интересно

Пять ошибок при работе с Jetpack Compose, из-за которых тормозит recomposition

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

Привет, Хабр! Jetpack Compose в 2026 году стал стандартом разработки UI на Android, но в проектах регулярно повторяется одна и та же история: на экране со списком в пару сотен элементов прокрутка идёт рывками, профайлер показывает скачки кадров до 200 миллисекунд, а команда чешет голову и предлагает откатиться обратно на RecyclerView.

Проблема почти всегда не в Compose, а в том, как написан UI: recomposition спроектирован как дешёвая операция, но эта дешевизна работает только при соблюдении ряда правил, которые в документации описаны рассыпанно и часто игнорируются.

Разберём пять ошибок, из-за которых производительность Compose-экранов проседает заметно для глаза, и покажем, как их находить и чинить.

Ускорить Compose

Backend-Driven UI для умного дома: как обучить сервер верстать интерфейсы

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

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

Я Дмитрий, iOS-разработчик из команды Салют — мы делаем устройства и программное обеспечение для Умного дома Сбер. У нас много собственных устройств и ещё больше устройств брендов-партнёров, которые поддерживает платформа. Релизный круговорот фичей и интеграций заставляет думать: как оптимизировать процесс доставки новых функций пользователям?

В статье расскажу про опыт разработки, внедрения и поддержки нашей собственной backend-driven UI парадигмы (BDUI) — подхода, в котором сервер управляет не только данными, но и вёрсткой интерфейсов.

Читать далее

Вынужден попрощаться: руководство Google окончательно утратило моральные принципы

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

Это прощальное послание я отправил своим коллегам, когда решил покинуть Google, где последние годы занимал должность ведущего инженера-архитектора в подразделении Android Security. На эту позицию категории «Independent Contributor» (сотрудник без подчинённых) я перешёл с поста директора, сняв с себя управленческие обязанности ради возвращения с семьёй в Австрию. Публикуя здесь копию этого письма, я хочу открыто показать, что больше не являюсь сотрудником компании и не могу выступать связующим звеном с отделами безопасности Android.

Читать далее

Оживление android-планшета глазами новичка. Как я нашел себе классную читалку на лето

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

По личным ощущениям, индустрия планшетов потихоньку отошла на второй план у массовых пользователей. И речь сейчас про буквально все сегменты, от недорогих устройств на Android до всей линейки iPad. Эта история осталась актуальной для гораздо более узкой прослойки людей, как будто.

Я же, в свою очередь, любил свой iPad сначала mini второго поколения (еще в студенческие годы), а затем и Air 2, который дожил до 2023 года, пока его случайно не разбила старшая дочь. Но вот как-то новый мне покупать не хотелось — я банально не нашел ни одной причины это делать по большей части.

А недавно, разбирая шкафы в квартире родителей, я нашел артефакт — Samsung Galaxy Tab A8. Компактный, красивый и, что самое главное, рабочий. И тут возникла у меня идея, ход исполнения и результаты которой я и расскажу в этом материале.

История о воскрешении далее

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

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

В новом дайджесте вопросы доступного пространства в условиях ненадежного поведения horizontalSizeClass и выход Android 17, гид в смешанной реальности с использованием Android XR и живой космос на Metal, иерархия корутин в Android, приложение с расписанием автобусов, скам сети с подписками, домашний сервер с Qwen Code за 25к и многое другое. Подключайтесь!

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

Привет, Хабр

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

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

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

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

Дальше

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

С 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 году.

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

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