Обновить

Мобильная разработка

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

Обзор релиза 4.20 NodaLogic

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

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

Читать далее

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

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

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

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

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

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

Читать далее

Прячем метаданные в мессенджере: 2-hop onion-lite поверх обычных VLESS + Reality relay, и почему это почти бесплатно

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

В прошлые разы я разбирал, как мы встроили обход блокировок прямо в iOS-приложение: sing-box внутри бинарника, VLESS + Reality, relay как расходник, конфиг отдельно от сборки. Та статья закрывала ровно одну задачу: довести трафик мессенджера до сервера там, где прямое соединение режется.

Но в самом конце был честный абзац, который мне не давал покоя. Я написал тогда: туннель меняет то, как соединение выглядит для цензора по дороге, и не меняет того, кто стоит на концах. Оператор relay (в нашем случае мы сами) видит ваш трафик ровно так же, как его видел бы провайдер при прямом подключении.

Вот про эту дыру и будет текст. Она называется красиво: метаданные. На практике это означает, что один relay видит больше, чем должен. И мы её закрыли, не трогая боевой парк relay вообще. Без маркетинга, по делу.

Читать далее

Когда таймлайн сам рисует кадры: встроенный ИИ‑генератор в MultiTrack

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

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

Это раздражало. Монтаж — это поток. Любая лишняя вкладка в браузере — как пауза посреди джазовой импровизации.

Поэтому в MultiTrack появился встроенный ИИ‑генератор — отдельная панель «AI Generation» на базе Higgsfield. Не заглушка «попробуйте нейросеть», а полноценный цикл: промпт → генерация → скачивание → Import to Project → клип сразу в библиотеке и на таймлайне. Без выхода из редактора.

Читать далее

LLM на iPhone: от llama.cpp до Foundation Models

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

В 2025 году вместе с iOS 26 компания Apple представила разработчикам Apple Foundation Models. Теперь порог входа для on-device AI упал до нескольких строк, и далее в статье мы рассмотрим как он выглядит. 

А в январе 2026 года Apple заключила сделку с Google в рамках которой следующее поколение Apple foudation models будет основано на технологии Google Gemini. По данным Bloomberg стоимость этой сделки составляет 1 млрд долларов в год. Apple по-прежнему держит контроль над пользовательскими данными, запросы будут выполняться локально, что-то сложное, с чем не может справиться локальная модель - будет отправляться в облако Apple Private Cloud Compute. 

Читать далее

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

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

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

Читать далее

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

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

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

С 1 апреля 2024 года RuStore принудительно предустанавливается на все смартфоны, продаваемые в РФ. После недавнего разбора правительственного мессенджера MAX, я декомпилировал APK самого национального стора и проверил его реальное поведение по коду.

нашёл: скрытую подсистему трекинга с записью GPS-координат в локальную SQLite-базу каждые 2 минуты, классический бэкдор для тихой фоновой установки любых пакетов по Push-команде с сервера, слив детальной статистики экранного времени всех ваших приложений, жесткий обход ограничений Android 10+ для сбора несбрасываемых аппаратных IMEI и IMSI, раздачу токенов авторизации VK через AIDL без согласия пользователя, извлечение захардкоженных секретов из C++ библиотек и встроенный движок Касперского с транзитными P2P-узлами и постоянной inotify-слежкой за директорией фото. Все находки сверены с реальным кодом, ссылки на классы и JNI-вызовы внутри.

Читать далее

Интерфейсная биомимимикрия: может ли фрактальная навигация заменить «кладбище иконок» в SuperApp?

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

В прошлом посте https://habr.com/ru/articles/1045002/ я рассказывал про ORDO как про приватный мессенджер с нестандартной навигацией. Но сегодня я хочу отложить тему анонимности и поговорить о чем-то более глобальном — о том, как мы взаимодействуем с информацией в 2026 году.

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

Читать далее

AnkiAI-Cards

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

AnkiAI-Cards - мобильное Android приложение с помощью ИИ генерирует карточки по шаблону и отправляет их напрямую в AnkiDroid внутри смартфона. Помогает изучать иностранные слова ассоциируя с контекстом фраз и предложений.

Интерестинг...

iOS: отправляем почту по SMTP с нуля на сокетах

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

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

В данной статье мы ознакомимся с протоколами, по которым работает почта. Сфокусируемся на реализации протокола для отправки почтовых сообщений (SMTP) на низком уровне (BSD сокеты). И, используя собственный сетевой слой для работы с почтой, реализуем iOS клиент для отправки почтовых сообщений через любые почтовые провайдеры (ex: gmail, yandex, mail).

Читать далее

Архитектура Android-приложений. Как повысить качество архитектуры, не говоря об архитектуре

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

Салют, Хабр!

Я Марк, Android-разработчик, работаю над мобильным приложением для управления умным домом Салют. Для мира Android-разработки вопросы архитектуры, её надёжности и качества актуальны, но… на самом деле не так уж интересны. Интересно, чтобы приложения были надёжными, устойчивыми к ошибкам, поддерживаемыми и легко масштабируемыми. Самый популярный подход — по-прежнему архитектурные паттерны (MV* паттерны) и разделение архитектуры по слоям. Что никак не избавляет от ошибок.

При этом существует множество подходов, которые делают архитектуру надёжнее, а в перспективе исключают целый класс ошибок, как введение в Котлине Null Safety избавило от класса ошибок NPE. Это проектирование на основе состояний (state-oriented programming), логика Хоара, программирование по контракту Бертрана Мейера. Возможно, и более серьёзные — например, формальные методы верификации. Отмечу, что в целом это общие принципы computer science, независимые от платформы. Но мой фокус — Android-разработка клиент-серверных приложений.

Сейчас хотел бы поговорить, как создание своей системы типов в проекте исключает популярный класс логических ошибок — semantic type error. Поехали!

Читать далее

Проводник для Wear OS. С передачей файлов и просмотром PDF

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

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

Читать далее

GuardDo Pixel: обзор телефона с секретом

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

GuardDo Pixel — это кастомная защищённая ОС для телефонов Pixel в лучших инженерных традициях безопасного софта: опенсорсная, защищённая ото всех, начиная с самих разработчиков, ориентированная на защиту пользователя, а не «национальной безопасности». Из текущей линейки разработок для защиты и уничтожения данных GuardDo, GuardDo Pixel — самая актуального для индивидуального использования — частного или профессионального. Телефон всегда в кармане, всегда включён, первым попадает в руки при досмотре, при задержании, при «простой проверке документов», на границе итд. И именно в этом контексте проявляется преимущество специализации, в отличие от других защищённых решений как GrapheneOS, начиная с полной невидимой невидимости защищённого пространства: из белого нельзя обнаружить серое — ни через интерфейс, ни через системные системные запросы.

Читать далее

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

OSDEV: Разработка аллокатора на С++ часть 3. Финальный аллокатор со списками свободных блоков

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

В третьей статье пойдет речь уже о готовом аллокаторе который вполне пригоден для распределения памяти

Читать далее

Конечный автомат (FSM) – инструмент программиста

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

Тема конечных автоматов (КА) актуальна. Почти как тема реализации светофоров. Но вот, если серьезно, только отношение к ней разное. Время от времени появляются статьи типа «Конечные автоматы (FSM) – это ловушка для программиста» [1]. И здесь очень не хочется, чтобы складывалось превратное представление о некой «псевдо-математической» автоматной абстракции. Нужно оберегать народ от подобных суждений, которые ни на чем не основываются.

Не будем, в пику упомянутой статье, петь дифирамбы автоматам в очередной раз. Потому, как «сколько не говори халва, во рту сладко не станет». Но можно реализовать пример из статьи только с позиции другого взгляда на автоматы. Это больше убедит, чем пространные рассуждение в духе «свист-технологии» или той же многопоточности и конкурентности.

Пусть перед нами стоит задача реализовать светофор и при этом уже есть довольно интересное, если не сказать – оригинальное, решение, которое дает право автору статьи весьма критично высказываться в отношении автоматов. Само решение сводится к следующим шагам: 1) создается таблица, строки которой определяют цвет светофора и его время; 2) создается простая программка перебора строки, которая зажигает в прямом и переносном смыслах, реализуя управление светофором.

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

Читать далее

WWDC 2026. Чем Apple удивили разработчиков на этот раз

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

С вами на связи Анна Жаркова, руководитель практики в компании Юзтех. И сегодня, по традиции, мы с вами обсудим, что Apple анонсировали на своей ежегодной сессии WWDC, как изменится мир разработки экосистемы Apple, что мы попробуем в продакшене (что стоит попробовать), и о чем же будут доклады на митапах и отраслевых конференциях. Поэтому пройдемся с вами не по их Keynote (детские аккаунты и умные приложения - это интересно и важно), а Platforms State of the Union и техническим видео. Улучшения iOS 27, ускорение и повышение ее перформанса, а также Liquid Glass обсуждать мы не будем.

Основное направление развитие Apple определили 3 связанными постулатами:

1 Apple Intelligence: новые способы внедрения генеративного интеллекта прямо в ваши приложения и новые интеграции с системным интеллектом для возвращения пользователей в ваши приложения. 2 Улучшения платформы: доработки дизайна, более гибкие обновления макетов UI для Swift и SwiftUI, а также улучшения, делающие ваши приложения быстрее, адаптивнее и проще в разработке. 3 Продуктивность разработчика: дальнейшее развитие Agentic Coding наряду с улучшениями, делающими Xcode быстрее и более персонализированным.

Что мне понравилось, это не путь к замене разработчика реального ИИ во всех его проявлениях, а помощь ему с помощью умного стэка инструментов.

Читать далее

GamFree: как я в одиночку сделал приложение против лудомании — без бэкенда, аккаунтов и подписок

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

Привет, Хабр. Это история о том, как я делал ставки 7 лет, потом бросил, а потом написал приложение, которое помогло бы мне бросить раньше. Расскажу и про продуктовые решения, и про техническую часть: React Native + Expo, полностью офлайн-архитектура без бэкенда, шесть языков, и как сейчас выглядит публикация в Google Play для нового индивидуального аккаунта разработчика.

Читать далее

Как мы мигрируем навигацию на Compose в Android-приложениях с 400+ экранами

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

Привет, Хабр! Меня зовут Константин Дубинко, я — Android-техлид в  hh.ru. Сейчас мы заканчиваем большой переезд навигации в двух Android-приложениях — для соискателей и работодателей. В этой статье я покажу, как у нас там устроена навигация, почему мы решили отказаться от Fragment-навигации и как превратили хаотичную миграцию с «островками» новой архитектуры в управляемый процесс с метриками и понятным планом работ. Заодно расскажу, какие решения сработали, какие — нет, и что я сделал бы иначе, если бы начинал заново.

Читать далее

RecyclerView. Оптимизация Adapter

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

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

Казалось бы, RecyclerView — давно знакомый инструмент. Но когда данные становятся разнородными, а списки — большими, простой вызов notifyDataSetChanged() превращается в узкое место, вызывающее фризы и дергающуюся анимацию. Как перейти от лобового обновления к точечным изменениям? Как объединить несколько типов элементов в одном адаптере?

В этой статье я пройду путь эволюции работы с RecyclerView.Adapter:
- Разберу, как работает система уведомлений под капотом.
- Вспомню, как DiffUtil и ListAdapter спасли нас от ручных вычислений.
- Расскажу про AsyncListDiffer, ConcatAdapter и нюансы восстановления позиции.
- И наконец, покажу, как спроектировать универсальный адаптер с поддержкой разных ViewHolder, частичным обновлением (Payloads) и ViewBinding — с полным примером кода.

Поехали!

Читать далее

«Сельский магнат»: как мы в РСХБ сделали мобильную игру

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

Привет, Хабр! Меня зовут Виталий, я занимаюсь развитием Венчурной студии РСХБ и проектами для молодых ИТ-специалистов в команде РСХБ.Цифра. В этой статье расскажу о том, как мы в банке придумали сделать полноценную мобильную игру и зачем вообще финансовой организации понадобился такой, на первый взгляд, нетипичный продукт.

Читать про игру