Обновить
128K+

Android *

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

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

Как мы вдвоем писали кроссплатформенный мессенджер: Compose Multiplatform, SFU на Go и сжатие трафика

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

Как силами двух разработчиков создать мессенджер под шесть платформ на Compose Multiplatform и Go. Рассказываем об оптимизации бандла до 10 МБ, разработке собственного SFU на pion/webrtc и синхронизации сообщений на слабых сетях.

Читать далее

Новости

Как я перестал бояться своего TV Box и начал им пользоваться

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

Купил H96Max M9S ради Steam Link, а потом выяснил, что заводская прошивка оставляет слишком много вопросов к безопасности. Рассказываю, что удалось найти при аудите Android TV-приставки, как я отключил опасные функции, включил SELinux Enforcing, обновил WebView и сохранил Steam, Bluetooth и VLC.

Читать далее

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

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

Возвращаюсь со своим еженедельным дайджестом для мобильных разработчиков. В этом выпуске адаптация приложений под iPhone Duo и Shared Transition как требования дизайнеров, прозрачный Яндекс.Навигатор и нативная разработка в Shopify, фронтенд без готового бэкенда, путь к Chaos As A Service, ошибка после оформления подписки, которая приводит к оттоку и многое другое. Заходите!

Читать далее

Тайна кнопочного Android‑смартфона за 900 рублей, который мощнее чем ПК из середины нулевых: разбираем и изучаем девайс

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

Глаза вас не обманывают: речь о новом устройстве. Пару лет назад на Ozon и AliExpress появилась невиданная диковинка: полноценный кнопочный смартфон с 4х-ядерным процессором, поддержкой 4G и Android всего за 800 рублей. Звучит как что-то невероятное, учитывая что даже в условном DNS цена на простые тапики превышает 1.000 рублей, но китайским инженерам удалось добиться этого путём некоторых ухищрений...

Сегодня мы с вами подробно изучим этот смартфон изнутри, узнаем, почему у него всегда тормозит интерфейс несмотря на достаточно мощный 4х-ядерный процессор, и проверим - можно ли пользоваться таким аппаратом как повседневным устройством. Интересно? Тогда жду вас под катом!

Читать далее

Сервер был нужен ради одного заголовка: порт на Dart, future, который ждёт сам себя, и загрузчик без ffmpeg

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

Неделю назад я писал, почему видео из аниме-плеера нельзя просто вставить в <video>. Вывод был такой: нужен серверный видеопрокси, и никуда вы от него не денетесь.

Потом я перенёс тот же проект на телефон, и прокси перестал быть нужен. Не потому, что я придумал обход, а потому, что оба ограничения, из-за которых он существовал, оказались браузерными, а не сетевыми.

Под катом: что именно делал сервер, почему на Android его нет, и что оказалось не переносом библиотеки с Python на Dart, а её переписыванием — вместе с багом, который жил в оригинале, стрелочной функцией в Dart, из-за которой whenComplete начинает ждать сам себя, и релизом, который подписывает не человек.

Читать далее

Переносим дизайн-систему в код: риски, решения, лучшие практики

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

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

Всем привет! Меня зовут Дмитрий, я разработчик дизайн‑системы на Android в компании Домклик. В этой статье расскажу, как нам удалось возродить проект дизайн‑системы и успешно внедрить его в наше приложение Домклик.

И хотя речь пойдёт о разработке на стеке Jetpack Compose для платформы Android , большинство мыслей и рекомендаций не привязаны к конкретной платформе и технологии.

Итак, поехали...

Как разрабатывать фронтенд без готового бэкенда: инструменты перехвата трафика, мокирования и принцип их работы

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

Всем привет, на связи Дима Котиков! Я все еще люблю разрабатывать под Android/KMP, разбираться с инструментами для упрощения работы и латте на фундучном молоке. За пять лет мобильной разработки я неоднократно сталкивался с ситуацией, когда бэкенд запаздывает, а дедлайн горит. 

Зимой 2026 мы получили задачу: новый финансовый инструмент, дедлайн через три месяца, готовность бэкенда — через полтора. Команда начала работу на моках и успела. В статье я расскажу, какие инструменты перехвата и мокирования трафика помогли нам выпустить фичу в срок без готового бэкенда, как настроить их за один вечер и почему понимание принципов работы TLS и MITM-атаки экономит часы отладки.

Читать далее

Эволюция рендеринга в Zenith Engine: многопоточная загрузка GPU-ресурсов

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

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

Всем привет! Я Андрей, разработчик 3D-графики в 2ГИС.

Если вы пишете рендер на C++ и у вас есть отдельный RenderThread, то, скорее всего, вы уже сталкивались с подобным: данные грузятся в фоне, а вот создание GPU‑ресурсов всё равно происходит в потоке отрисовки через прямое обращение к графическим API Vulkan, Metal, Direct3D 12. И пока RenderThread в длинном цикле создает буферы и текстуры, он не рисует — он стоит, пока не обработает список загруженных ресурсов.

У нас это выглядело так на типичной средней сцене: до появления первого кадра на поток отрисовки приходило 532 текстуры и 2713 буферов, которые удерживали 45 МБ и 20 МБ временной памяти в RAM соответственно. Всё это нужно было доставить до GPU, создать наборы буферов и текстур, далее всё освободить и только потом начинать собирать батчи и рисовать.

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

Читать далее

AI‑агент вместо ручного регресса: архитектура, метрики, инсайты

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

Привет, Хабр! На связи Владимир Бойко, ведущий iOS‑разработчик в Т‑Банке. В статье расскажу, как мы построили AI‑QA‑агента, который проходит тест‑кейсы так же, как это делает человек: запускает приложение на симуляторе, выполняет сценарий шаг за шагом, анализирует экраны с помощью VLM и автоматически сравнивает ожидаемый результат с фактическим.

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

Примерно в то же время я заканчивал задачи с VLM для Умной камеры и плотно общался с командой VLM Core — ребятами, которые развивают инфраструктуру мультимодальных моделей внутри банка. Вопрос напрашивался сам собой: а что если агент на базе VLM сможет выполнять эти проверки вместо людей?

Читать далее

Вышла Крипто Шифр — моя игра головоломка

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

Однажды я задумался о том, как бы мне занять себя в свободное время, пока я нахожусь не дома. Мне хотелось что-то сложное и притом близкое к компьютеру, чтобы можно было неплохо прокачать себя в анализе. Увлекаясь криптографией, я вдруг понял, что я хочу и сделал программу на C, чтобы попробовать расшифровать первые шифры, о чем я написал в последствии в моей предыдущей статье. Книги я решил скачивать с Project Gutenberg в текстовом формате.

Далее я опишу интерфейс программы.

Экран меню я не стал показывать и сразу перейду к новой игре.

Читать далее

Я всегда не любил Duolingo всей душой. Но когда в VibeLing оказалось 70% новичков, то кое‑что сделал так же

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

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

Читать далее

Цифровая слежка в кармане: аудит 11 популярных российских Android-приложений

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

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

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

Одиннадцать приложений. Банки, госсервисы, маркетплейсы, навигация, магазин приложений. Все — из топа российского Android-рынк. Методология — статический анализ (SAST) плюс пассивный перехват logcat. Трафик не вскрывался, SSL Pinning не обходился, в Secure Folder не залезал.

237 уязвимостей суммарно (включая расширенную проверку). Шесть приложений с ключами подписи образца прошлого века. ВК с 11 трекерами и рейтингом риска 98/100. И Госключ, который неожиданно оказался единственным, кто делает всё правильно.

Читать далее

Как создавать необычные усложнения для часов на Wear OS

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

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

Читать далее

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

Vivaldi 8.2 для мобильных устройств: Ваш браузер. Ваши правила. Ваши расширения

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

Vivaldi предоставляет вам все необходимые инструменты для работы в сети. С нашим последним обновлением Vivaldi 8.2 мы даём вам больше — с полной поддержкой расширений на Android, так что вы можете настроить свой мобильный браузер именно так, как вам нужно.

Читать далее

Скорость команды разработки — свойство системы, а не скорость самого быстрого ковбоя на Диком Западе

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

Скорость команды часто пытаются измерить количеством сильных разработчиков. Но самый быстрый человек в хаотичной системе обычно не ускоряет команду. Он просто первым начинает компенсировать её проблемы.

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

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

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

Читать далее

Используем Buildozer для компиляции python в apk. Проблемы, решения и личный опыт

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

В статье мы познакомимся с Buildozer и научимся собирать APK из python с его помощью. Я собрал готовое решение, как без плясок с бубном и вызова “Богов кодинга” собрать проект.

Читать далее

Калькулятор для iOS, который не округляет

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

Идущий в составе iOS калькулятор показывает округлённый результат. Constructive Calculator всегда готов показать следующую значащую цифру, так же, как калькулятор Android.

Читать далее

Пиротерапия от выгорания, или как я стал вайбкодером

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

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

Представляю твоему вниманию AcroTab — приложение, которое должно быть у каждого уважающего себя гитариста (у меня, например, есть).

кг/ам tl;dr: https://acrotab.org

Читать далее

Что умеет ассистент по умолчанию на Android — на примере Алисы AI

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

На устройствах под управлением ОС Android можно выбрать ассистента по умолчанию — почти так же, как браузер. Один раз выбираете в настройках — и дальше открываете его системным жестом поверх любого приложения. Удобно.

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

Меня зовут Ваня, я руководитель команды Android-разработки SDK Алисы и техлид проекта дефолтного ассистента. Сегодня мы с вами разберёмся, где проходят эти границы, на примере Алисы AI.

Читать далее

Drama RAT — вредоносное приложение, после установки которого действительно становится печально

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

Недавно на исследование в департамент комплексного реагирования на киберугрозы Positive Technologies (PT ESC IR) поступил ряд образцов банковского трояна для Android с функциями удаленного управления — Drama RAT. Это вредоносное семейство распространяется с помощью фишинговых сообщений в мессенджерах и маскируется под VPN-сервисы, банковские приложения и другие взломанные утилиты со встроенной платной функциональностью. Ранее о нем писали в УБК МВД.

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