Обновить
512K+

Android *

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

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

Интеграция автоматической установки eSIM на Android

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

Я люблю свою работу, потому что на удивление для меня с годами она становится все более нетривиальной и увлекательной. Моя история внедрения автоматической установки eSim была интересна тем, что разрабатывалась вслепую без возможности протестировать функционал на момент разработки. О eSIM и о своей истории и пойдет речь в данной статье.

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

Новости

Как заставить Android Studio ругаться на код по вашим правилам: создаем пользовательские Lint и Detekt

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

Привет, Хабр! На связи Алина, старший Android-разработчик в команде Инвестиций «Совкомбанк Технологии». Сегодня поговорим о том, как заставить Android Studio самостоятельно следить за порядком в коде – без ручных проверок и без вечных напоминаний в командном чате.

В этой статье мы создадим практические правила для инструментов статического анализа кода и разберем, как внедрить их в проект. На примере lint рассмотрим контроль архитектуры пакетов и обязательную документацию с QuickFix, а на примере detekt – проверку неизменяемого состояния представления без Android-зависимостей и миграцию с RxJava на Coroutines.

Читать далее

«Ну вроде едет». Мой самописный мессенджер готов к публичной порке. Начнём?

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

В какой-то момент я понял неприятную вещь: если твой канал связи живет по чужому настроению, политической погоде, сбою в чужом облаке или очередной внезапной любви регулятора к кнопке «запретить» — это не твой канал связи. Это аренда с правом внезапного выселения.

Мне эта модель быстро наскучила.

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

Читать далее

Несколько мобильных приложений в одном Appium‑проекте: как это можно организовать

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

Как тестировать несколько мобильных приложений в одном «Appium‑проекте». Показываю архитектуру фреймворка, запуск тестов через аннотации, потокобезопасный контекст и подключение новых приложений без дублирования кода.

Читать далее

Как жить с хобби и семьёй. Часть третья

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

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

Упор здесь будет также сделан на соотношение цена-качество, поэтому выбор софта сделан в пользу бесплатных продуктов, а харда не с самыми лучшими параметрами, но достойного выбора для домашнего использования. Дома у меня стоит операционка Linux Mint, а на рабочих машинках Windows 11, так что адекватность работы могу оценить по работе в этих системах. По поводу MacOS и Android пишите в комментариях.

Компьютер у меня старенький, 15 лет назад покупался как мощный: процессор – Intel Core i5, ОЗУ: 10 GB, ПЗУ: SSD 128 GB для системы, HDD 1.5 TB для хранения, видеокарта: 768 GB. Ноутбук сразу покупался как «печатная машинка» для творчества в командировках, но, на удивление, и на нём всё запускается: процессор: Intel Core i3, ОЗУ: 8 GB, ПЗУ: 320 GB. Один из приятных плюсов бесплатного софта – это скромность в потребляемых ресурсах. Линейка от Adobe большой любитель оперативной памяти, при сегодняшних ценах – агрейд становится «болючим» для кошелька. Минус бесплатного софта – это низкая интеграция. В больших компаниях происходит глубокая интеграция между сотрудниками. Проекты собирают буквально «на лету». Поэтому проект из одной программы, можно открыть в другой, сохранить, передать дальше. С «зоопарком» софта такого не получится. В лучшем случае, вы будете рендерить, а потом с этим рендером ковыряться. Ну, и при желании превратить хобби в профессию, у вас не окажется необходимого опыта, но его можно будет наверстать, поскольку бесплатный софт в последнее время делается с оглядкой на «мастодонтов» бизнеса.

Про хард и софт...

Google убивает независимый Android. Обращение и 19 аргументов против насильной регистрации разработчиков

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

https://keepandroidopen.org/ru/
https://keepandroidopen.org/open-letter/
https://www.change.org/p/stop-google-from-limiting-apk-file-usage?recruiter=1370041382&recruited_by_id=fddec6e0-0e30-11f0-a55d-cd0eb0fd0ac4

upd: добавил аудио-версию.

Уважаемая команда Google и руководство Android, я пишу вам не как случайный пользователь, а как человек, который уже больше 15 лет выбирает Android именно потому, что он был открытой платформой. Платформой, которая отличалась от яблочной тюрьмы iOS тем, что не требовала разрешения корпорации, чтобы я мог установить любое приложение, помочь другу с установкой или поддержать независимый проект. Сегодня я вынужден выразить глубокое разочарование, граничащее с чувством предательства.

С сентября 2026 года вы вводите обязательную централизованную регистрацию разработчиков для всего распространения приложений на Android — даже вне Google Play. Чтобы установить приложение через сайт, APK-файл, альтернативный магазин или просто передать его другу, разработчик должен:

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

Иначе приложение просто не установится на сертифицированных устройствах. Это не «улучшение безопасности». Это радикальная смена модели Android с открытой на закрытую.

Читать далее

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

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

В этом дайджесте приложение без MVC или MVVM, починка анимации в LazyColumn и эффект размытия движения для вращающегося колеса, 20 приложений за 20 дней, отчет о приложения с подпиской 2026 от RevenueCat, Code Review для проверки ИИ-кода и многое другое. Заходите!

Читать далее

Как я пытался чинить анимацию в Jetpack Compose LazyColumn

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

Привет, Хабр! Я Витя Строеску, последние пять лет в свободное от отдыха время занимаюсь разработкой под Android, три из которых — в команде мобильного оператора Т-Мобайл.

Поделюсь с вами опытом попытки конфигурации анимаций для айтемов у Compose LazyColumn. Мы переписывали наш главный экран с XML+View на Jetpack Compose, который состоит из списка с различного рода сложности айтемами.

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

Читать далее

8 лучших календарей для Android с поддержкой русского языка

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

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

AOSP-календарь (встроенное базовое приложение системы Android) есть далеко не на всех устройствах — особенно на смартфонах Huawei и Xiaomi с кастомными оболочками. А там, где он есть, функционал минимальный: создал событие, поставил напоминание — и всё.

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

И в конце расскажу как скачать и установить календарь на Android тремя способами — для тех, кто не знает.

Читать далее

Приложение падало на старте. Мы теряли 5% пользователей. Разбор кейса FanBattle

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

После одного из релизов у FanBattle приложение перестало открываться у части пользователей. Проблема затронула около 5% аудитории. Баг исправили быстро, но пользователи не могли даже узнать, что вышла новая версия — приложение падало раньше, чем успевал появиться интерфейс.

Разбираем, как команда решила проблему через раннюю инициализацию SDK и force update.

Читать далее

Как реализовать WebSocket на Android и не сойти с ума

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

Как часто вы слышите что-то о протоколе WebSocket? А как часто видели его в проектах? Продакшн? Андроид? Что? Его кто-то использует?

А теперь представьте, что перед вами стоит задача внедрить WS в крупный продакшн проект с нуля. С чего начать? Как подступиться?

Читать далее

Как я перестал верстать чеки в коде и написал визуальный редактор шаблонов для Flutter

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

Я решил, что хватит это терпеть, и написал pdf_kit_editor — визуальный конструктор, который отделяет дизайн документа от данных.

Читать далее

Unreal Engine 5.4 + C++ + MacOS Tahoe + Android build = Build Successful

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

Небольшая инструкция для всех, кто работает в Unreal Engine и пишет на C++ или иных языках + компилирует файлы для Андроид.

Читать далее

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

Мобильная разработка за неделю #622 (2 — 9 марта)

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

В новом выпуске замена циклов рекурсией и Android на десктопах, нарезание Android-монолита и промпт-контракты, снижение комиссии в Play Store, потери органики и что с этим делать, скрытый bottleneck сборок и многое другое. Заходите!

Читать далее

« DeepSeek, сделай мне робота!»: техническая исповедь, карта минного поля и полные файлы проекта

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

Привет! Это вторая часть. Первая была про то, как автомаляр без знания кода и DeepSeek за две недели собрали робота из старого смартфона. Там — эмоции и философия. Здесь — хардкор.

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

Будут ссылки. Всё уже в репозитории.

Читать далее

Todo Budget v5.0: переписал весь UI с нуля на Jetpack Compose — и теперь ищу тех, кто его сломает

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

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

Читать далее

Разворачиваем self-hosted Matrix: Synapse + OIDC + LiveKit + подписанные обновления

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

Привет. Мне стало интересно, насколько реально одному разработчику собрать продакшн‑подобную инфраструктуру мессенджера без managed‑решений и облачной магии. Не стартап‑презентацию, а инженерный эксперимент: развернуть стек, заставить его жить, увидеть слабые места и понять, что в этой системе действительно критично.

На Хабре уже есть материалы про базовую установку Synapse + Element, но моя цель чуть другая - показать сборку, где к Matrix добавляется внешний слой идентификации (OIDC), VoIP‑инфраструктура (LiveKit + TURN) и механизм подписанных обновлений Android‑клиента.

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

Читать далее

Месседжер MAX следит за пользователями VPN? Реверс инжиниринг говорит — да (добавлено обновление)

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

И этот заголовок - не кликбейт. Подвергнув реверс инжинирингу клиент российского мессенджера MAX удалось подтвердить самые худшие предположения.

В сети начали появляться сообщения о странных обращениях мессенджера MAX к Telegram и WhatsApp, из-за чего в сети начали выдвигаться предположения касательно природы и целей этих запросов. Но одно дело предполагать, другое дело знать. Мало ли это какая-то интеграция или случайный аналитический модуль. Поэтому чтобы понять самому и рассказать вам я решил посмотреть внутрь клиента и понять что и зачем он делает.

TL;DR - содержит шпионский модуль, который сделали разработчики MAX для слежки за теми кто использует VPN, они постарались сделать этот модуль неблокируемым и прикрутили удаленное управление.

Читать далее

Зачем нужен companion object в Hilt-модулях

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

Замечали некий companion object в интерфейсах Hilt-модулей? Что он делает, как он работает под капотом, почему так популярен в Hilt-модулях, и почему нельзя обойтись обычными классами? Сегодня я развею эту магию!

Читать далее

Навигация как нервная система: Как мы подружили немецкий автопром с японскими платными дорогами через AIDL

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

Если вы думаете, что навигационная система в современном автомобиле — это просто красивое приложение, которое рисует синюю линию на карте и говорит «через 200 метров поверните направо», вы застряли в 2010 году.

В Android Automotive OS (AAOS) навигация часто становится одним из самых жирных и критически важных системных компонентов. Это «пространственный мозг» машины. Десятки других модулей постоянно дергают её за рукав с вопросами: «Где мы?», «Какое ограничение скорости?», «Сколько полос на дороге?», «В какой полосе мы сейчас едем?».

В этой статье я поделюсь опытом из своей практики разработки навигационной системы для крупного немецкого автопроизводителя. Мы разберем, как построить надежное межпроцессное взаимодействие (IPC) внутри автомобиля на примере передачи ADAS-атрибутов для японского модуля ETC 2.0.

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