#android_development — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #android_development, aggregated by home.social.
-
Использование mise для установки зависимостей при андроид-разработке
Есть большая и сложная система сборки Gradle и андроид-плагин AGP для установки большей части компонентов Android SDK, необходимых для вашего приложения. Но что, если вам не хочется руками устанавливать Android Studio, Android SDK, cmake, scrcpy и прочие нужные вещи? Здесь на помощь приходит mise — при кажущейся простоте он умеет все, что нам нужно.
-
Как мы тестируем планшеты KVADRA_T на производстве: архитектура DeviceTestPro
Тестирование мобильных устройств на производстве — это процесс, где цена ошибки очень высока. Баг в приложении можно исправить в обновлении, а дефект аппаратной части планшета или смартфона обычно обнаруживается после сборки устройства, а иногда — только у конечного пользователя, и устранить его намного сложнее. Поэтому важно находить дефекты на всех этапах производства: от поверхностного монтажа до сборки готового планшета. Привет, Хабр! Меня зовут Сергей, я ведущий инженер программист в отделе разработки приложений в YADRO. В статье расскажу, как мы создавали систему производственного тестирования Android-планшетов, которая используется на этапах сборки и в отделе технического контроля.
https://habr.com/ru/companies/yadro/articles/1046518/
#мобильные_приложения #android_development #планшеты #тестирование_устройств
-
От потоков к корутинам: как и почему видоизменились примитивы синхронизации в языке Kotlin (Часть 2)
В первой части статьи были рассмотрены следующие распространённые способы организации конкурентного кода при работе с потоками и корутинами: критические секции, атомарные переменные, реактивные переменные, барьерная синхронизация. В этой части будут разобраны другие важные подходы: семафоры, каналы передачи данных, горячие потоки, модель акторов, последовательные обработчики задач, thread confinement. Для каждого из этих подходов рассмотрим конкретные реализации, выделим плюсы и минусы, приведём примеры использования. В конце объединим все реализации в общую таблицу.
https://habr.com/ru/companies/garage8/articles/1049508/
#kotlin #kotlin_coroutines #coroutines #multithreading #concurrency #android #android_development #kotlin_multiplatform #semaphore #actors
-
Как мы мигрируем навигацию на Compose в Android-приложениях с 400+ экранами
Привет, Хабр! Меня зовут Константин Дубинко, я — Android-техлид в hh.ru . Сейчас мы заканчиваем большой переезд навигации в двух Android-приложениях — для соискателей и работодателей. В этой статье я покажу, как у нас там устроена навигация, почему мы решили отказаться от Fragment-навигации и как превратили хаотичную миграцию с «островками» новой архитектуры в управляемый процесс с метриками и понятным планом работ. Заодно расскажу, какие решения сработали, какие — нет, и что я сделал бы иначе, если бы начинал заново.
https://habr.com/ru/companies/hh/articles/1044842/
#android_development #compose #migration #navigation #refactoring #mobile_development #modo #vj #мобильная_разработка #мобильные_приложения
-
Как нам в Домклик LLM рефакторинг делала
Написал агента который за ночь переписал 100 тестов с Mockito на MockK, а за следующую — исправил 1700 ошибок линта. Спойлер: секрет не в крутом промпте, а в правильно выстроенном цикле — чётком DoD, автоматической проверке результата и обратной связи с моделью.
https://habr.com/ru/companies/domclick/articles/1038984/
#llm #llmагент #android #android_development #claude #opencode #unittesting
-
Не только смартфоны: 5 сфер, где нужны мобильные разработчики
Хабр, привет! Меня зовут Борис Денисенко. Я мобильный разработчик и наставник на курсе
https://habr.com/ru/companies/yandex_praktikum/articles/1031664/
#android #мобильная_разработка #android_development #android_разработка #android_разработчик #kotlin #kotlin_multiplatform #java #ios_development #ios_разработка
-
Как собрать пайплайн с LLM агентом который фиксит нативные Android UI автотесты
Что будем делать или что может быть интересного в статье: - Пайплайн из двух независимых LLM агентов - Запуск и анализ ошибки UI автотеста (Root Cause Analysis) - Фикс автотеста в цикле с его запуском. - Кастомизация MCP инструментов чтобы оптимизировать контекстное окно. - Система приоритетов в работе LLM агентов.
https://habr.com/ru/articles/1035390/
#llmагент #llmагенты #llmмодели #android_development #espresso #uiтесты
-
Как я пытался чинить анимацию в LazyColumn
Привет, Хабр! Я Витя Стро е ску, последние пять лет в свободное от отдыха время занимаюсь разработкой под Android, три из которых — в команде мобильного оператора Т-Мобайл. Поделюсь с вами опытом попытки конфигурации анимаций для айтемов у Compose LazyColumn. Мы переписывали наш главный экран с XML+View на Jetpack Compose, который состоит из списка с различного рода сложности айтемами. В статье разберем, почему возникает рассинхрон, как устроен механизм анимаций внутри LazyColumn, почему кастомный animateItem обречен с самого начала и к какому решению мы пришли в итоге.
https://habr.com/ru/companies/tbank/articles/1009014/
#android #android_development #kotlin #compose #jetpack_compose #lazycolumn #animations #expand_collapse #issue #animate_item
-
Зачем нужен companion object в Hilt-модулях
Замечали некий companion object в интерфейсах Hilt-модулей ? Что он делает, как он работает под капотом, почему так популярен в Hilt-модулях , и почему нельзя обойтись обычными классами? Сегодня я развею эту магию!
https://habr.com/ru/articles/1006844/
#companion_object #hilt #android_development #kotlin #datamodule #hilt_module
-
Нейросеть на пассажирском сиденье: Скрещиваем Android Automotive и Machine Learning
В предыдущих сериях мы научились ковыряться под капотом: доставать данные с датчиков через VHAL и прятать кнопки от водителя, когда машина едет. Но давайте честно: просто выводить скорость на экран — это скучно. Этим занимались инженеры еще в 90-х. Сегодня мы живем в эпоху ИИ. У нас есть железка стоимостью в десятки тысяч евро, напичканная датчиками, и операционная система, которая может всё это читать. Так давайте дадим машине «мозги»! В этой статье мы напишем концепт Smart Driving Assistant — фонового сервиса на Android Automotive, который будет анализировать телеметрию (руль, педали, скорость) и с помощью локальной нейросети (On-Device ML) понимать, что водитель начал "играть в шашечки" на дороге.
-
Интерактивные истории с ИИ
Хайп вокруг ИИ не утихает и поэтому я решил сделать приложение с интерактивными историями, где сюжет генерирует ИИ. На самом деле мне нравится играть в игры с нелинейным сюжетом. В игры, где ты сам можешь выбирать путь. Однако большинство таких игр имеют лишь небольшое количество заранее написанных сценариев. Это не позволяет в полной мере ощутить свободу выбора.
https://habr.com/ru/articles/996704/
#истории #интерактивные_книги #rustore #vk_id #android_development #frontend #backend
-
Про то, как я Storage Access Framework укрощал, да файлы в хранилище приручал
В начале было приложение. И было это приложение для цифровой подписи. Работало оно просто: подписываешь документы на смартфоне, не думая о каких-либо дополнительных токенах. Все упаковано в телефон — и сертификаты, и библиотеки. Процесс знакомый: авторизовался, загрузил файл, подписал. Но вот однажды пользователи стали жаловаться, что не могут найти ранее подписанные документы. Бывало, пользователь подписал файл, долго к нему не возвращался, а спустя время уже не смог его отыскать. Переустановил приложение или авторизовался с другого устройства, и все файлы как в воду канули. Меня зовут Георгий Левченко, я Android-разработчик в ПСБ. Начал я искать источник бед пользовательских. Оказалось, виной всему было то, что все файлы хранились в кэш-директории приложения. Понял я: чтобы файлы не пропадали, им нужен менеджмент для файлов. Отыскался у Android для таких целей готовый инструмент — Storage Access Framework (SAF), он служит для доступа к файлам через стандартный интерфейс без управления разрешениями вручную. Поведаю под катом, как я решал с его помощью эту задачу.
https://habr.com/ru/companies/psb/articles/991676/
#storage_access_framework #android #android_development #разработка_приложений #кэширование #кэширование_данных
-
Решил сделать себе смартфон на Линукс. Linux phone Xiaomi Poco X3 NFC на Ubuntu Touch по шагам
Времена сейчас тяжелые, я как пользователь iPhone, давно чувствую себя неполноценным пользователем смартфона в нашей юрисдикции. А с недавнего времени возглавил команду линуксоидов и потянуло меня на всё линуксовое. Решил, так скажем, стать пингвином. Все началось с того, что выкинул свой макбук, которым пользовался с 2015 года, купил хороший ThinkPad на Ryzen 7 и накатил туда Linux Mint 22.2 и, знаете что, радости моей нет предела, я прям кайфую и пропитываюсь духом опенсорса. Все таки, когда клиентам показываешь преимущества миграции на линукс с мака, есть нотка недоверия к таким ребятам. И для пущей линуксовости, уже второй месяц подумываю пересесть на линуксфон, а еще все это недоверие к корпоратам, подогревает мой интерес. В общем если с тем, как накатить Минт на ноут в целом сложностей нет, то с линуксфоном, не все так просто… погнали разбираться
https://habr.com/ru/articles/982184/
#linux #ubuntu_touch #android #android_development #установка_linux #установка_ubuntu_touch #телефон #смартфон #убунту #тач
-
Создание кастомного Toolbar с Jetpack Compose. Подробный разбор всех попыток и решений
Привет, Хабр! Меня зовут Максим Сазонов, я android-разработчик в ПСБ. Сегодня предлагаю разобрать путь создания кастомного тулбара от первой кривой реализации до оптимизированного решения. И главная проблема, которую надо решить при создании этого компонента это центрирование title и subtitle. Эта проблема возникает потому что у нас может быть тулбар с разным количеством иконок по обе стороны от заголовка, текстом и иконками или только с title. И если ширина иконок у нас стандартна (44 dp), и достаточно просто умножить эту ширину на количество иконок справа, чтобы понять свободное пространство для title и subtitle, то с текстом с одной или с двух сторон всё намного сложнее, так как мы не можем заранее вычислить ширину этого текста, а значит не можем правильно центрировать и задать ширину title и subtitle. В статье я расскажу, как я решил этот вопрос.
https://habr.com/ru/companies/psb/articles/974368/
#kotlin #android #android_development #jetpack_compose #jetpack #toolbar #custom_toolbar
-
Live Updates на Android: где макеты врут, a SDK ставит границы
Весной 2025 года Google представила Live Updates, аналог Live Activity в iOS. Мы быстро запушили продактов — «нам такое надо!» — и потащили фичу в Android-приложение Додо Пиццы. Но всё оказалось не так просто — мы столкнулись с неполной документацией, расхождениями представлений дизайнеров Google и разработчиков этого SDK, и не только. В общем, запасайтесь попкорном. Сегодня расскажем обо всех нюансах в реализации и тестировании Live Updates.
https://habr.com/ru/companies/dododev/articles/969810/
#android #android_development #live_updates #live_activities #мобильная_разработка #мобильная_разработка_android #google #google_io
-
Google Регистрация в Android на kotlin + jetpack compose
🚀 Хотите создать регистрацию в стиле Google для своего Android-приложения? 🚀 Забудьте о скучных формах! Погрузитесь в мир плавной анимации, интуитивного дизайна и надежной безопасности – всё это с помощью Kotlin и Jetpack Compose. ✨ Что вас ждет: Пошаговый гайд: От первых строк кода до готового результата – разберемся вместе. Рабочий код: Не просто теория, а готовые решения для вашего проекта. Комментарии эксперта: Поймете каждый шаг и сможете адаптировать код под свои нужды. Секреты профессионалов: Узнаете, как сделать регистрацию не только функциональной, но и привлекательной. 💪 Не упустите шанс прокачать свое приложение! 💪
https://habr.com/ru/articles/958746/
#android_development #android #jetpack_compose #kotlin #google_api
-
Что такое ANR и как с ним работать правильно
ANR — это не просто “зависание”, а молчаливый краш, который напрямую бьёт по удержанию пользователей. В статье разбираю, как работает механизм ANR, какие ошибки его вызывают, как анализировать traces.txt, какие библиотеки помогают отслеживать блокировки (ANR-WatchDog, ANR-Spy, Firebase Crashlytics), и как построить процессы, чтобы QA-команда научилась ловить их ещё до релиза.
https://habr.com/ru/articles/958278/
#anr #watchdog #kotlin #java #android #mobile_development #android_development #qa #mobile_qa
-
Android для новичков: как не наломать дров с корутинами и какие привычки оставить в прошлом
Когда только начинаешь разрабатывать под Android, самые неприятные баги появляются не из-за опечаток, а из-за систематических ошибок. Хардкод строк и цветов, корутины, которые живут сами по себе, попытки писать Compose по старинке, как старые view — всё это превращается в технический долг, который мешает развивать продукт. Знание этих ошибок помогает писать более надёжный код, который не ломается при локализации, смене темы или добавлении новых экранов. К тому же многие из этих проблем часто всплывают на собеседованиях. В статье покажу, почему ошибки превращаются в реальные проблемы, как их обнаружить и исправить. Исправить ошибки в Android-разработке
https://habr.com/ru/companies/netologyru/articles/956346/
#android_разработка #программирование_на_android #начинающие_разработчики #новички_в_android #советы_начинающим #android_development #корутины #хардкод #composable #ошибки_новичков
-
Андроид всё еще не готов к RAW-видео
Уверен, что многих возмутит уже само название этой статьи. А некоторые сразу же побегут в комментарии указывать на приложение, которое “смогло”. Но не стоит спешить, друзья! Сегодня вам предстоит увлекательное путешествие по стыку технологий, кода и технических решений, которые и расскажут вам то, о чем адепты съемки мобильного RAW-видео предпочитают не говорить.
https://habr.com/ru/articles/947578/
#mcpro24fps #raw #android #android_apps #android_development #мобильное_приложение #видео #мобильная_видеография
-
Как RecyclerView создает магию анимаций: архитектура ItemAnimator под капотом
RecyclerView умеет превращать обычные операции с данными в плавные анимации. Когда вы добавляете элемент в список, остальные элементы плавно расступаются. При удалении — схлопываются. Эта магия происходит благодаря ItemAnimator — механизму, который я сегодня разберу до последнего винтика. В этой статье мы погрузимся в архитектуру системы анимаций RecyclerView, проследим путь от вызова notifyItemInserted() до финальной анимации на экране.
https://habr.com/ru/articles/939594/
#android #recyclerview #animation #viewholder #layoutmanager #android_animation #itemanimator #view_animation #android_ui #android_development
-
MAX: технический разбор неофициального клиента
Мессенджер MAX (ru.oneme.app) — одно из приложений, которое в последнее время активно продвигается как альтернатива известным платформам. Он позиционируется как современный, быстрый и безопасный инструмент для общения, с поддержкой звонков, каналов и ботов. Но что скрывается под капотом? В этой статье — глубокий технический анализ APK-файла, включая структуру, зависимости, разрешения и архитектурные особенности.
https://habr.com/ru/articles/933378/
#научнопопулярное #android #android_development #android_sdk #android_studio
-
Бизнес требует стабильной работы мобильного приложения у всех пользователей. Что делать?
Как загружать большие объемы данных? Часть 1. Привет, друзья! Наша команда более 10 лет занимается вопросами эффективной передачи данных на мобильные устройства. Мы исследовали разные варианты: одни оказались слишком медленными, другие приводили к переполнению памяти на мобильном устройстве. Хотим рассказать, как мы в команде « Форсайт. Мобильная платформа» сделали синхронизацию больших объемов данных, чтобы это работало, в том числе, на ТСД (терминал сбора данных). Для экономии батареи ТСД специально снабжают слабыми процессорами. Весь подбор инструментов и алгоритмов мы уже апробировали в продукте «Форсайт. Мобильная платформа» (ФМП). Специфичные условия для мобильного приложения начнем РАЗБИРАТЬ С КРЫШИ, так будет проще подобраться к существу вопроса. В среднем, отличие общедоступных приложений от бизнес-приложений – в объеме потребляемых данных. У бизнес-приложений объем данных значительно больше. Но, как водится, ожидание бизнес-пользователей от приложения точно такие же, как и у всех: приложение должно работать не просто быстро, а моментально. А это значит, что нужно найти особые техники по ускоренной передаче данных. При подборе технологий для транспорта данных нам хотелось получить: А) Стабильный механизм передачи данных. Б) Самый быстрый/производительный протокол из возможных. Поскольку мы производим спецшину по транспорту данных, для нас это означает, что мобильный пользователь будет обращаться в наш инструмент за «чемоданом» данных, и мы должны как можно быстрее передать ему этот «чемодан» целиком. У разработчиков возникает вопрос -- насколько большой может быть «чемодан»? Насколько будет нескромен кейс, который нужно будет тащить? За ориентир мы взяли ½ миллиона записей табличных данных.
https://habr.com/ru/companies/fsight/articles/931940/
#мобильная_разработка #android_development #Форсайт_мобильная_платформа #форсайт #многопоточность #загрузка_больших_объёмов_данных #Стабильный_механизм_передачи_данных #Скоростная_загрузка
-
Под капотом Android: как создаются, управляются и восстанавливаются процессы приложений в системе
Эта статья родилась из практической задачи — понять, как устроен Android в общем и целом, как он сохраняет и восстанавливает состояния приложения (помимо БД и файлов) при внезапном завершении процесса, как управляет процессами. Я разберу ключевые системные компоненты (Zygote, SystemServer, AMS, Binder) и процесс восстановления состояния через Bundle. Привет, Хабр! Я Михаил Богатиков, Android‑разработчик в ПСБ. На одном из собеседований мне задали вопрос, про восстановление приложения после смерти, на который я не смог ответить. Мне стало интересно и я решил изучить этот вопрос и в результате появилась эта статья.
https://habr.com/ru/companies/psb/articles/931712/
#мобильная_разработка #android #android_development #разработка_под_android #разработка_под_андроид
-
Mobile System Design. Проектируем новостную ленту
Элементы System Design уже прочно вошли в процесс собеседований. Однако в мобильной разработке довольно часто возникает недопонимание что же все-таки необходимо продемонстрировать чтобы получить заветный офер. В этой статье я разберу один из кейсов, который может встретиться на реальном собеседовании и кроме этого покажу примерный сценарий такого интервью. Данная статья будет интересна мобильным разработчикам, как Android, так и iOS. Сам формат System Design Interview я разбирал в предыдущей статье. Здесь же мы сконцентрируемся на практике. Итак, задача: спроектировать новостную ленту.
https://habr.com/ru/articles/930898/
#android_development #ios_development #system_design_интервью #собеседования #bigtech #подготовка_к_собеседованию
-
Я написал свой VPN-клиент для Android. Зачем, если их сотни, и что скрывается под капотом?
Каждый раз, нажимая кнопку «Connect» в очередном VPN-приложении, я ловил себя на мысли: а что там, под капотом? Как эта магия на самом деле работает на уровне Android? Вокруг сотни готовых решений, но простое пользовательское любопытство переросло в профессиональное: мне захотелось не просто использовать, а понять. Понять, какие подводные камни скрывает VpnService, как реализовать весь цикл от авторизации до поднятия защищённого туннеля и что на этом пути может пойти не так. Эта статья — мой личный "бортовой журнал". Я не претендую на создание самого безопасного решения, это скорее история о пути, граблях и открытиях для тех, кто тоже решит заглянуть под капот VPN-технологий на Android. Так родилась идея этого проекта — создать свой, пусть и простой, VPN-клиент. Это не попытка сделать коммерческий продукт, а скорее исследовательское погружение, мой личный "челлендж" и способ разложить всё по полочкам. Заглянуть под капот
https://habr.com/ru/articles/926150/
#android #vpn #vpnсервис #wireguard #мобильная_разработка #мобильные_приложения #мобильное_приложение #kotlin #android_development #android_studio
-
Лаборатория в смартфоне: изучаем эффект Доплера на палочках в Android
В этой статье мы познакомимся с эффектом Доплера, но не так, как это рассказывается в школьном учебнике физики, а посредством своих любопытных глазок и ушек. Поможет нам в этом специально разработанное мной приложение для Андроид-смартфона . Статья предназначена для девочек и мальчиков, а также их родителей.
https://habr.com/ru/articles/920738/
#Лаборатория_в_смартфоне #agalilov #эффект_доплера #физика #физика_в_смартфоне #android #android_development #научнопопулярное #образование
-
Создание кастомного тултипа Jetpack Compose
Привет, Хабр! Меня зовут Альберт, я Android-разработчик в команде интеграции рассрочки в приложении Wildberries. В этой статье мы напишем простенькую реализацию тултипов на Jetpack Compose своими руками.
https://habr.com/ru/companies/wildberries/articles/905994/
#tooltip #тултип #jetpack_compose #android #android_development #tutorial #туториал #tooltips #тултипы #kotlin
-
Мастерство фокусов на Compose 2: как работает запрос фокуса
Привет! Меня зовут Костя, я Android-разработчик в онлайн-кинотеатре PREMIER. В процессе работы над проектом PREMIER для AndroidTV я столкнулся с тем, что в Jetpack Compose механизм фокусов — достаточно сложная и неочевидная тема. А информации в интернете об этом очень мало, особенно о специфичных сценариев вроде ТВ-приложений или устройств без сенсорного ввода. Поэтому я решил разобрать тему фокусов в Compose максимально подробно, чтобы помочь разработчикам лучше понять этот механизм и избежать типичных ошибок. В первой статье на эту тему мы уже разобрали базовую структуру фокусировки в Compose. Теперь пришло время углубиться в технические детали: что именно происходит, когда вызывается requestFocus() , как Compose выбирает элемент для фокусировки и какие изменения были внесены в Compose 1.8, чтобы улучшить этот процесс. Если вы работаете с приложениями под Android TV, кастомными компонентами или просто хотите лучше понимать, как работает система фокусов, эта статья для вас.
https://habr.com/ru/companies/habr_rutube/articles/902306/
#android_tv #androidtv #compose #jetpack_compose #focus #android_development #android
-
Халява приходит в программирование
Недавно прогремел пост Артура Думчева (@arturdumchev), как халява якобы уходит из программирования. Можете ознакомиться с ним, чтиво достойное. Особенно комментарии. У меня сегодня день рождения: 39 лет. С 2003 года я работаю разработчиком, и сейчас делаю кое-что для ИИ. Интуиция подсказывает, что халява только начинается , мои чюваки. Сейчас — лучшее время быть разработчиком. Давайте начнем с точно того же определения, как было у Артёма: «для меня халява — это гарантированный результат за вложенные усилия. Логика повествования требует такого определения, дальше всё будет ясно». А дальше ясно, что из неверно поставленного условия может следовать что угодно. Читать далее!
https://habr.com/ru/companies/bar/articles/905936/
#бекенд #мобильная_разработка #android_development #ios_development #llm #вайбкодинг #промптинжиниринг #ответственность #архитектура #computer_science
-
Мастерство фокусов на Compose
Привет! Меня зовут Костя, я Android-разработчик в онлайн-кинотеатре PREMIER. Среди прочего у нас есть приложение для Android TV. Работая над ним, я столкнулся с тем, что система фокусов в Jetpack Compose устроена сложнее, чем кажется на первый взгляд. Поскольку для ТВ-приложений и устройств без сенсорного управления работа с фокусом играет ключевую роль в навигации, мне понадобилось детально разобраться в теме. Результатами делюсь в статье.
https://habr.com/ru/companies/habr_rutube/articles/902310/
#android_tv #androidtv #compose #jetpack_compose #focus #android_development #android