Обновить
256K+

Android *

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

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

Вики врёт, прод молчит: почему пора сделать OpenAPI единственным источником правды о вашем API

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

Я мобильный разработчик. Иногда при работе со структурами данных я имею дело с endpoint-ами, иду в вики, нахожу страницу с описанием — и не верю ей. Потому что по опыту знаю: страница описывает API таким, каким он был задуман полгода назад, а не таким, какой он сейчас. Дальше начинается знакомый ритуал: пишу в чат бэкендеру, он отвечает «глянь в сваггере», сваггер сгенерирован из аннотаций и показывает приблизительную картину, реальный ответ с сервера от неё отличается, потому что правило сериализации живёт в одном месте, а правило генерации описания — в другом. В итоге я делаю то, что делает большинство клиентских разработчиков: дёргаю endpoint «вживую», смотрю реальный JSON и верю только ему. То же самое бывает и при работе с внешними API (в том числе и солидных компаний).

Это и есть проблема источника правды. У нас не один источник, а несколько, и они конкурируют. Вики — это намерение. Код бэкенда — это реализация. Реальный трафик — это факт. И когда между ними возникает расхождение (а оно возникает всегда), цена ошибки ложится в первую очередь на потребителя API: на фронтенд, на iOS, на Android, на десктоп, на внешних интеграторов.

Эту боль на Habr описывали многие. Алексей, Java-разработчик ЮMoney, в статье «Как улучшить межсерверное взаимодействие и сэкономить время разработчика» формулирует её предельно прямо: «Swagger UI, который генерируется автоматом по метаданным классов, показывает очень примерное описание того, что у нас реально отдаётся из API. Поэтому фронты и мобильные разработчики не могут начать разработку, не вызвав endpoint на живую». Это не чья-то личная неаккуратность — это структурный изъян процесса, в котором правда не централизована.

Читать далее

Торрент-стриминг без вреда для SSD: переносим TorrServer в Proxmox LXC и интегрируем с Lampa

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

Запуск TorrServer на слабеньком процессоре Smart TV — это гарантированные тормоза, троттлинг и вылеты из-за нехватки оперативной памяти. Телевизор должен просто проигрывать готовый видеопоток, а всю тяжелую работу по скачиванию и буферизации торрентов лучше переложить на домашний сервер.

В этой статье подробно разберем, как развернуть TorrServer в легковесном Debian LXC-контейнере на Proxmox VE, настроить RAM-only кэширование для сохранения ресурса SSD хоста (чтобы не убить накопитель гигабайтами перезаписи фильмов), написать сторожевой watchdog-скрипт на bash для контроля зависаний и подружить всё это с медиа-оболочкой Lampa на Android TV.

Пошаговая инструкция, конфиги, API-запросы и код скрипта под капотом.

Читать далее

Создание Android-смартфона с упором на приватность

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

Практический опыт ограничения приложений на Android

В статье рассматривается практический опыт настройки Android‑смартфона с root‑доступом для ограничения сетевого взаимодействия приложений и управления их разрешениями. Анализ трафика, whitelist/blacklist доменов, Magisk, iptables и создание контролируемой среды на устройстве.

Читать далее

Оживляем дешевый Smart TV: обход вырезанного ADB, деблоат Яндекс.ТВ и сборка легкого медиацентра

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

Купил я тут по дешевке 43-дюймовый телевизор Hartens (модель HTY-43FHD06B‑HK22, панель BOE HV430FHB‑F91) под проект умного гостевого дома. Железо внутри скромное: чипсет MediaTek MT5867, 32-битная архитектура (armeabi‑v7a), 1.5 ГБ оперативной памяти и вишенка на торте — фирменная оболочка Яндекс.ТВ на базе AOSP Android 11.

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

План по исправлению созрел быстро, но на первом же шаге я уперся в стену: производитель полностью вырезал пункт «Отладка по USB» (USB Debugging) из меню разработчика. USB‑порты у телевизора работают только в режиме хоста (подключить ПК напрямую кабелем нельзя), а сетевой ADB по умолчанию закрыт.

Ниже я расскажу, как удалось обойти это ограничение, залезть «под капот» телевизора и превратить тормозящий яндекс‑комбайн в чистый и шустрый Android TV.

Читать далее

Как оптимизировать картинки в Android и не сломать UX: метрики, практики и компромиссы

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

Если экран с картинками начинает тормозить, проблема редко сводится к одному AsyncImage. Разбираю, что действительно стоит измерять, как использовать preview и prefetch, зачем делить устройства на tier и почему одинаковое поведение на всех девайсах почти всегда ошибка.

Читать далее

Восстановление старого смартфона с неисправной внутренней памятью

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

В статье описано восстановление смартфона Alcatel POP3 4035D после отказа большей части встроенной памяти.

Читать далее

Как нам в Домклик LLM рефакторинг делала

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

Написал агента который за ночь переписал 100 тестов с Mockito на MockK, а за следующую — исправил 1700 ошибок линта.

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

Читать далее

Корутины и то как они работают на низком уровне

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

Всем привет! Меня зовут Иван, я Android разработчик и сегодня я хочу поговорить с вами об такой вещи как Coroutines в языке Kotlin

Не знаю как у вас, а я всегда интересовался как устроены те или иные вещи на низком уровне, поэтому когда я начал активно заниматься Android разработкой и познакомился с Kotlin одним из главных вопросов который не уходил у меня из головы, как устроены Coroutines на низком уровне?

Обычно когда ты начинаешь задаваться подобным вопросом, в голове возникает ассоциация с чем-то магическим. Есть какая-то неведомая сущность, которой ты говоришь что-то сделать и она что-то делает. При изучении Coroutines в самом начале пути ощущения были точно такими же

Читать далее

React Native iOS Push Notifications: почему push не сохраняются в background/killed state

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

Разбираем очень неприятный баг в React Native + iOS: почему push-уведомления сохраняются на Android, но теряются на iOS в background/killed state. В статье обсудим как на самом деле устроены APNS, Notification Service Extension, App Groups и почему проблема вообще не в React Native. Будет интересно…

Читать далее

Мобильная разработка за неделю #632 (25 — 31 мая)

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

В этом выпуске продолжаем исследовать новинки I/O 2026 и переводить пользователей, прекращаем использовать .onAppear и лезем Gradle под капот, делаем приватность частью архитектуры, создаем систему привлечения пользователей, поднимаем Llama 3 в облаке и многое другое. Заходите!

Читать далее

HalChat теперь Open Source: как успешный старт в Google Play изменил курс разработки

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

Всем привет!

Недавно я публиковал статью о том, что HalChat вышел в Google Play, и это вызвало небольшой ажиотаж вокруг проекта. Буквально за пару дней мы пробили отметку в 100+ скачиваний, а за один день было зарегистрировано 60 новых пользователей. Оценив такой отклик, я решил, что нужно идти дальше и сделать клиент HalChat для Android открытым.

Далее: зачем Open Source для HalChat, обновление и планы на будущее.

Читать далее

Видеонаблюдение на базе Android устройства за 3 недели

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

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

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

Загуглил, попробовал несколько программ и остановился на одной из них, которая выглядела как самая зрелая, с большим количеством функций, да ещё и платной версией. Платную версию конечно же купить у нас нельзя, но скачать её патченную сестру с 4pda можно, что я и сделал. Алексей (автор), прости, но другого варианта у меня не было.

Какие у неё функции достоинства:

Читать далее

Linux на смартфоне — PostmarketOS

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

Один из немногих способов пользоваться чистым Linux на смартфоне - установка операционной системы PostmarketOS.

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

Читать далее

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

Что такое OpSec, если углубится

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

OpSec (Операционная Безопасность) — способ скрыть важную пользователю информацию в сети для избежания утечек или взлома аккаунтов.

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

Читать далее

Мобильный Vivaldi 8.0 — Лучший браузер для лета

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

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

Читать далее

Impact Analysis в дизайн-системе: как мы сделали CI осмысленнее, а review понятнее

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

Меня зовут Даниил, я Android-разработчик в «БКС Мир инвестиций».

В первой статье мой коллега рассказывал, как мы использовали Kotlin IR Compiler Plugin, чтобы автоматически добавлять testTag и semantics в Compose-компоненты: Kotlin IR Compiler Plugin в дизайн-системе: автотесты с Compose без ручной разметки.

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

Читать далее

Как я разработал PoC-конструктор для приложений Android

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

Как рутинная разработка PoC-приложений под Android привела к созданию собственного конструктора нагрузок: от зарождения идеи до появления DexRunner и DEXLab – инструментов для быстрой сборки, доставки и исполнения DEX-нагрузок прямо на устройстве без вмешательств в логику приложения.

Читать далее

Как получить root на Urovo DT40 Pro (CT48): Android 12 (Проверено на практике)

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

Терминалы сбора данных (ТСД) - это не смартфоны. Производители корпоративного оборудования, такие как Urovo, стараются намертво закрывать систему: нет открытых прошивок, а Fastboot ведёт себя нестандартно, нет мануалов.

Читать далее

Capacitor: от веба к мобильным приложениям. Часть 4. Интегрируем локальный LLM в проект

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

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

Читать далее

Глубокая интеграция месседжинга с бизнес процессами в фреймворке NodaLogic

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

В NodaLogic добавились чаты и мессенджинг в широком смысле (как доставка сообщений и как пользовательские чаты) и это имеет целью стереть границы между классическим интерфейсом работы с бизнес-процессами и лентой чата, создать глубоко интегрированную пользовательскую среду работы с документами и событиями, а в будущем – переиспользование этой инфраструктуры для LLM. Кроме того инфраструктура обмена сообщениями используется для обмена между объектами и обработчиками, а не только в "человекочитаемых" чатах что позволяет разработчику избавиться от многих забот по организации обменов данными.

Читать далее