Обновить
256K+

Android *

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

А через месяц простейшее меню настроек начинает спотыкаться, а 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.5K

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

Читать далее

Ваш Smart TV вам не принадлежит: как я спас Xiaomi Mi TV от PatchWall, рекламы и фонового майнинга за 15 минут

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

В этой статье подробно описан практический опыт оптимизации телевизора Xiaomi Mi TV с 1.4 ГБ оперативной памяти.

В публикации детально разбираются следующие темы:

Избавление от конфликта лаунчеров: почему стандартный Android TV Home и фирменный Xiaomi PatchWall постоянно соперничали за память и как решить эту проблему. Безопасное отключение PatchWall и другого системного мусора (Google Play Фильмы, игровые сервисы, служба обновлений Xiaomi) через ADB с помощью команды pm disable-user, которая, в отличие от pm uninstall, не приводит к bootloop при сбросе настроек. Очистка кэша лаунчера для полного удаления пустых серых рекламных плашек с домашнего экрана. Сетевые неполадки: почему после перезагрузки ломался YouTube в связке с ByeDPI и как правила маршрутизации в Android конфликтовали с Fake-IP DNS от sing-box на роутере. Анализ пропускной способности сети: почему гигабитное обновление локальной сети не принесло прироста скорости интернета на ТВ. Борьба с аномальной нагрузкой на процессор (Load Average > 76) и memory thrashing (kswapd0), вызванными скрытой фоновой работой приложения Zona, и переход на более легкую связку Lampa + TorrServe. Материал содержит готовые консольные команды для ADB и наглядные замеры ресурсов «до» и «после» чистки. В итоге телевизор освободил около 100 МБ чистой оперативной памяти, перестал зависать при работе с пультом и начал плавно воспроизводить 4K-видео.

Читать далее

Интернет выключили целиком: офлайн-чат на Bluetooth и Wi-Fi Direct, и почему мы не обещаем mesh на весь город

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

Блокировки это одно. Их обходят: VLESS, Reality, прокси, про это уже написано много, в том числе у нас. Но есть сценарий жёстче. Интернета нет вообще. Не «YouTube не открывается», а мобильную сеть увели в ноль, Wi-Fi бесполезен, потому что аплинк перекрыт. Такое включают точечно: митинг, площадь, район, иногда целая страна на несколько часов.

Вопрос простой: могут ли два телефона в этой ситуации всё равно обменяться сообщением. Без вышек, без интернета, без сервера. Ответ: да, но честный ответ длиннее, и в нём много «но». Мы (команда из трёх человек, делаем мессенджер RCQ) собрали для этого режим, который называется Radio. Ниже что он реально умеет, чего не умеет, и какие грабли мы собрали по дороге.

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

Купил я тут по дешевке 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.2K

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

Всем привет! Меня зовут Иван, я 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 мин
Охват и читатели14K

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

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

Читать далее