home.social

#android_development — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #android_development, aggregated by home.social.

fetched live
  1. Использование mise для установки зависимостей при андроид-разработке

    Есть большая и сложная система сборки Gradle и андроид-плагин AGP для установки большей части компонентов Android SDK, необходимых для вашего приложения. Но что, если вам не хочется руками устанавливать Android Studio, Android SDK, cmake, scrcpy и прочие нужные вещи? Здесь на помощь приходит mise — при кажущейся простоте он умеет все, что нам нужно.

    habr.com/ru/articles/1058494/

    #mise #android #android_development

  2. Как мы тестируем планшеты KVADRA_T на производстве: архитектура DeviceTestPro

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

    habr.com/ru/companies/yadro/ar

    #мобильные_приложения #android_development #планшеты #тестирование_устройств

  3. От потоков к корутинам: как и почему видоизменились примитивы синхронизации в языке Kotlin (Часть 2)

    В первой части статьи были рассмотрены следующие распространённые способы организации конкурентного кода при работе с потоками и корутинами: критические секции, атомарные переменные, реактивные переменные, барьерная синхронизация. В этой части будут разобраны другие важные подходы: семафоры, каналы передачи данных, горячие потоки, модель акторов, последовательные обработчики задач, thread confinement. Для каждого из этих подходов рассмотрим конкретные реализации, выделим плюсы и минусы, приведём примеры использования. В конце объединим все реализации в общую таблицу.

    habr.com/ru/companies/garage8/

    #kotlin #kotlin_coroutines #coroutines #multithreading #concurrency #android #android_development #kotlin_multiplatform #semaphore #actors

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

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

    habr.com/ru/companies/hh/artic

    #android_development #compose #migration #navigation #refactoring #mobile_development #modo #vj #мобильная_разработка #мобильные_приложения

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

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

    habr.com/ru/companies/domclick

    #llm #llmагент #android #android_development #claude #opencode #unittesting

  6. Не только смартфоны: 5 сфер, где нужны мобильные разработчики

    Хабр, привет! Меня зовут Борис Денисенко. Я мобильный разработчик и наставник на курсе

    habr.com/ru/companies/yandex_p

    #android #мобильная_разработка #android_development #android_разработка #android_разработчик #kotlin #kotlin_multiplatform #java #ios_development #ios_разработка

  7. Как собрать пайплайн с LLM агентом который фиксит нативные Android UI автотесты

    Что будем делать или что может быть интересного в статье: - Пайплайн из двух независимых LLM агентов - Запуск и анализ ошибки UI автотеста (Root Cause Analysis) - Фикс автотеста в цикле с его запуском. - Кастомизация MCP инструментов чтобы оптимизировать контекстное окно. - Система приоритетов в работе LLM агентов.

    habr.com/ru/articles/1035390/

    #llmагент #llmагенты #llmмодели #android_development #espresso #uiтесты

  8. Как я пытался чинить анимацию в LazyColumn

    Привет, Хабр! Я Витя Стро е ску, последние пять лет в свободное от отдыха время занимаюсь разработкой под Android, три из которых — в команде мобильного оператора Т-Мобайл. Поделюсь с вами опытом попытки конфигурации анимаций для айтемов у Compose LazyColumn. Мы переписывали наш главный экран с XML+View на Jetpack Compose, который состоит из списка с различного рода сложности айтемами. В статье разберем, почему возникает рассинхрон, как устроен механизм анимаций внутри LazyColumn, почему кастомный animateItem обречен с самого начала и к какому решению мы пришли в итоге.

    habr.com/ru/companies/tbank/ar

    #android #android_development #kotlin #compose #jetpack_compose #lazycolumn #animations #expand_collapse #issue #animate_item

  9. Зачем нужен companion object в Hilt-модулях

    Замечали некий companion object в интерфейсах Hilt-модулей ? Что он делает, как он работает под капотом, почему так популярен в Hilt-модулях , и почему нельзя обойтись обычными классами? Сегодня я развею эту магию!

    habr.com/ru/articles/1006844/

    #companion_object #hilt #android_development #kotlin #datamodule #hilt_module

  10. Нейросеть на пассажирском сиденье: Скрещиваем Android Automotive и Machine Learning

    В предыдущих сериях мы научились ковыряться под капотом: доставать данные с датчиков через VHAL и прятать кнопки от водителя, когда машина едет. Но давайте честно: просто выводить скорость на экран — это скучно. Этим занимались инженеры еще в 90-х. Сегодня мы живем в эпоху ИИ. У нас есть железка стоимостью в десятки тысяч евро, напичканная датчиками, и операционная система, которая может всё это читать. Так давайте дадим машине «мозги»! В этой статье мы напишем концепт Smart Driving Assistant — фонового сервиса на Android Automotive, который будет анализировать телеметрию (руль, педали, скорость) и с помощью локальной нейросети (On-Device ML) понимать, что водитель начал "играть в шашечки" на дороге.

    habr.com/ru/articles/1005332/

    #automotive #android #android_development #android_os

  11. Интерактивные истории с ИИ

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

    habr.com/ru/articles/996704/

    #истории #интерактивные_книги #rustore #vk_id #android_development #frontend #backend

  12. Про то, как я Storage Access Framework укрощал, да файлы в хранилище приручал

    В начале было приложение. И было это приложение для цифровой подписи. Работало оно просто: подписываешь документы на смартфоне, не думая о каких-либо дополнительных токенах. Все упаковано в телефон — и сертификаты, и библиотеки. Процесс знакомый: авторизовался, загрузил файл, подписал. Но вот однажды пользователи стали жаловаться, что не могут найти ранее подписанные документы. Бывало, пользователь подписал файл, долго к нему не возвращался, а спустя время уже не смог его отыскать. Переустановил приложение или авторизовался с другого устройства, и все файлы как в воду канули. Меня зовут Георгий Левченко, я Android-разработчик в ПСБ. Начал я искать источник бед пользовательских. Оказалось, виной всему было то, что все файлы хранились в кэш-директории приложения. Понял я: чтобы файлы не пропадали, им нужен менеджмент для файлов. Отыскался у Android для таких целей готовый инструмент — Storage Access Framework (SAF), он служит для доступа к файлам через стандартный интерфейс без управления разрешениями вручную. Поведаю под катом, как я решал с его помощью эту задачу.

    habr.com/ru/companies/psb/arti

    #storage_access_framework #android #android_development #разработка_приложений #кэширование #кэширование_данных

  13. Решил сделать себе смартфон на Линукс. Linux phone Xiaomi Poco X3 NFC на Ubuntu Touch по шагам

    Времена сейчас тяжелые, я как пользователь iPhone, давно чувствую себя неполноценным пользователем смартфона в нашей юрисдикции. А с недавнего времени возглавил команду линуксоидов и потянуло меня на всё линуксовое. Решил, так скажем, стать пингвином. Все началось с того, что выкинул свой макбук, которым пользовался с 2015 года, купил хороший ThinkPad на Ryzen 7 и накатил туда Linux Mint 22.2 и, знаете что, радости моей нет предела, я прям кайфую и пропитываюсь духом опенсорса. Все таки, когда клиентам показываешь преимущества миграции на линукс с мака, есть нотка недоверия к таким ребятам. И для пущей линуксовости, уже второй месяц подумываю пересесть на линуксфон, а еще все это недоверие к корпоратам, подогревает мой интерес. В общем если с тем, как накатить Минт на ноут в целом сложностей нет, то с линуксфоном, не все так просто… погнали разбираться

    habr.com/ru/articles/982184/

    #linux #ubuntu_touch #android #android_development #установка_linux #установка_ubuntu_touch #телефон #смартфон #убунту #тач

  14. Создание кастомного Toolbar с Jetpack Compose. Подробный разбор всех попыток и решений

    Привет, Хабр! Меня зовут Максим Сазонов, я android-разработчик в ПСБ. Сегодня предлагаю разобрать путь создания кастомного тулбара от первой кривой реализации до оптимизированного решения. И главная проблема, которую надо решить при создании этого компонента это центрирование title и subtitle. Эта проблема возникает потому что у нас может быть тулбар с разным количеством иконок по обе стороны от заголовка, текстом и иконками или только с title. И если ширина иконок у нас стандартна (44 dp), и достаточно просто умножить эту ширину на количество иконок справа, чтобы понять свободное пространство для title и subtitle, то с текстом с одной или с двух сторон всё намного сложнее, так как мы не можем заранее вычислить ширину этого текста, а значит не можем правильно центрировать и задать ширину title и subtitle. В статье я расскажу, как я решил этот вопрос.

    habr.com/ru/companies/psb/arti

    #kotlin #android #android_development #jetpack_compose #jetpack #toolbar #custom_toolbar

  15. Live Updates на Android: где макеты врут, a SDK ставит границы

    Весной 2025 года Google представила Live Updates, аналог Live Activity в iOS. Мы быстро запушили продактов — «нам такое надо!» — и потащили фичу в Android-приложение Додо Пиццы. Но всё оказалось не так просто — мы столкнулись с неполной документацией, расхождениями представлений дизайнеров Google и разработчиков этого SDK, и не только. В общем, запасайтесь попкорном. Сегодня расскажем обо всех нюансах в реализации и тестировании Live Updates.

    habr.com/ru/companies/dododev/

    #android #android_development #live_updates #live_activities #мобильная_разработка #мобильная_разработка_android #google #google_io

  16. Google Регистрация в Android на kotlin + jetpack compose

    🚀 Хотите создать регистрацию в стиле Google для своего Android-приложения? 🚀 Забудьте о скучных формах! Погрузитесь в мир плавной анимации, интуитивного дизайна и надежной безопасности – всё это с помощью Kotlin и Jetpack Compose. ✨ Что вас ждет: Пошаговый гайд: От первых строк кода до готового результата – разберемся вместе. Рабочий код: Не просто теория, а готовые решения для вашего проекта. Комментарии эксперта: Поймете каждый шаг и сможете адаптировать код под свои нужды. Секреты профессионалов: Узнаете, как сделать регистрацию не только функциональной, но и привлекательной. 💪 Не упустите шанс прокачать свое приложение! 💪

    habr.com/ru/articles/958746/

    #android_development #android #jetpack_compose #kotlin #google_api

  17. Что такое ANR и как с ним работать правильно

    ANR — это не просто “зависание”, а молчаливый краш, который напрямую бьёт по удержанию пользователей. В статье разбираю, как работает механизм ANR, какие ошибки его вызывают, как анализировать traces.txt, какие библиотеки помогают отслеживать блокировки (ANR-WatchDog, ANR-Spy, Firebase Crashlytics), и как построить процессы, чтобы QA-команда научилась ловить их ещё до релиза.

    habr.com/ru/articles/958278/

    #anr #watchdog #kotlin #java #android #mobile_development #android_development #qa #mobile_qa

  18. Android для новичков: как не наломать дров с корутинами и какие привычки оставить в прошлом

    Когда только начинаешь разрабатывать под Android, самые неприятные баги появляются не из-за опечаток, а из-за систематических ошибок. Хардкод строк и цветов, корутины, которые живут сами по себе, попытки писать Compose по старинке, как старые view — всё это превращается в технический долг, который мешает развивать продукт. Знание этих ошибок помогает писать более надёжный код, который не ломается при локализации, смене темы или добавлении новых экранов. К тому же многие из этих проблем часто всплывают на собеседованиях. В статье покажу, почему ошибки превращаются в реальные проблемы, как их обнаружить и исправить. Исправить ошибки в Android-разработке

    habr.com/ru/companies/netology

    #android_разработка #программирование_на_android #начинающие_разработчики #новички_в_android #советы_начинающим #android_development #корутины #хардкод #composable #ошибки_новичков

  19. Андроид всё еще не готов к RAW-видео

    Уверен, что многих возмутит уже само название этой статьи. А некоторые сразу же побегут в комментарии указывать на приложение, которое “смогло”. Но не стоит спешить, друзья! Сегодня вам предстоит увлекательное путешествие по стыку технологий, кода и технических решений, которые и расскажут вам то, о чем адепты съемки мобильного RAW-видео предпочитают не говорить.

    habr.com/ru/articles/947578/

    #mcpro24fps #raw #android #android_apps #android_development #мобильное_приложение #видео #мобильная_видеография

  20. Как RecyclerView создает магию анимаций: архитектура ItemAnimator под капотом

    RecyclerView умеет превращать обычные операции с данными в плавные анимации. Когда вы добавляете элемент в список, остальные элементы плавно расступаются. При удалении — схлопываются. Эта магия происходит благодаря ItemAnimator — механизму, который я сегодня разберу до последнего винтика. В этой статье мы погрузимся в архитектуру системы анимаций RecyclerView, проследим путь от вызова notifyItemInserted() до финальной анимации на экране.

    habr.com/ru/articles/939594/

    #android #recyclerview #animation #viewholder #layoutmanager #android_animation #itemanimator #view_animation #android_ui #android_development

  21. MAX: технический разбор неофициального клиента

    Мессенджер MAX (ru.oneme.app) — одно из приложений, которое в последнее время активно продвигается как альтернатива известным платформам. Он позиционируется как современный, быстрый и безопасный инструмент для общения, с поддержкой звонков, каналов и ботов. Но что скрывается под капотом? В этой статье — глубокий технический анализ APK-файла, включая структуру, зависимости, разрешения и архитектурные особенности.

    habr.com/ru/articles/933378/

    #научнопопулярное #android #android_development #android_sdk #android_studio

  22. Бизнес требует стабильной работы мобильного приложения у всех пользователей. Что делать?

    Как загружать большие объемы данных? Часть 1. Привет, друзья! Наша команда более 10 лет занимается вопросами эффективной передачи данных на мобильные устройства. Мы исследовали разные варианты: одни оказались слишком медленными, другие приводили к переполнению памяти на мобильном устройстве. Хотим рассказать, как мы в команде « Форсайт. Мобильная платформа» сделали синхронизацию больших объемов данных, чтобы это работало, в том числе, на ТСД (терминал сбора данных). Для экономии батареи ТСД специально снабжают слабыми процессорами. Весь подбор инструментов и алгоритмов мы уже апробировали в продукте «Форсайт. Мобильная платформа» (ФМП). Специфичные условия для мобильного приложения начнем РАЗБИРАТЬ С КРЫШИ, так будет проще подобраться к существу вопроса. В среднем, отличие общедоступных приложений от бизнес-приложений – в объеме потребляемых данных. У бизнес-приложений объем данных значительно больше. Но, как водится, ожидание бизнес-пользователей от приложения точно такие же, как и у всех: приложение должно работать не просто быстро, а моментально. А это значит, что нужно найти особые техники по ускоренной передаче данных. При подборе технологий для транспорта данных нам хотелось получить: А) Стабильный механизм передачи данных. Б) Самый быстрый/производительный протокол из возможных. Поскольку мы производим спецшину по транспорту данных, для нас это означает, что мобильный пользователь будет обращаться в наш инструмент за «чемоданом» данных, и мы должны как можно быстрее передать ему этот «чемодан» целиком. У разработчиков возникает вопрос -- насколько большой может быть «чемодан»? Насколько будет нескромен кейс, который нужно будет тащить? За ориентир мы взяли ½ миллиона записей табличных данных.

    habr.com/ru/companies/fsight/a

    #мобильная_разработка #android_development #Форсайт_мобильная_платформа #форсайт #многопоточность #загрузка_больших_объёмов_данных #Стабильный_механизм_передачи_данных #Скоростная_загрузка

  23. Под капотом Android: как создаются, управляются и восстанавливаются процессы приложений в системе

    Эта статья родилась из практической задачи — понять, как устроен Android в общем и целом, как он сохраняет и восстанавливает состояния приложения (помимо БД и файлов) при внезапном завершении процесса, как управляет процессами. Я разберу ключевые системные компоненты (Zygote, SystemServer, AMS, Binder) и процесс восстановления состояния через Bundle. Привет, Хабр! Я Михаил Богатиков, Android‑разработчик в ПСБ. На одном из собеседований мне задали вопрос, про восстановление приложения после смерти, на который я не смог ответить. Мне стало интересно и я решил изучить этот вопрос и в результате появилась эта статья.

    habr.com/ru/companies/psb/arti

    #мобильная_разработка #android #android_development #разработка_под_android #разработка_под_андроид

  24. Mobile System Design. Проектируем новостную ленту

    Элементы System Design уже прочно вошли в процесс собеседований. Однако в мобильной разработке довольно часто возникает недопонимание что же все-таки необходимо продемонстрировать чтобы получить заветный офер. В этой статье я разберу один из кейсов, который может встретиться на реальном собеседовании и кроме этого покажу примерный сценарий такого интервью. Данная статья будет интересна мобильным разработчикам, как Android, так и iOS. Сам формат System Design Interview я разбирал в предыдущей статье. Здесь же мы сконцентрируемся на практике. Итак, задача: спроектировать новостную ленту.

    habr.com/ru/articles/930898/

    #android_development #ios_development #system_design_интервью #собеседования #bigtech #подготовка_к_собеседованию

  25. Я написал свой VPN-клиент для Android. Зачем, если их сотни, и что скрывается под капотом?

    Каждый раз, нажимая кнопку «Connect» в очередном VPN-приложении, я ловил себя на мысли: а что там, под капотом? Как эта магия на самом деле работает на уровне Android? Вокруг сотни готовых решений, но простое пользовательское любопытство переросло в профессиональное: мне захотелось не просто использовать, а понять. Понять, какие подводные камни скрывает VpnService, как реализовать весь цикл от авторизации до поднятия защищённого туннеля и что на этом пути может пойти не так. Эта статья — мой личный "бортовой журнал". Я не претендую на создание самого безопасного решения, это скорее история о пути, граблях и открытиях для тех, кто тоже решит заглянуть под капот VPN-технологий на Android. Так родилась идея этого проекта — создать свой, пусть и простой, VPN-клиент. Это не попытка сделать коммерческий продукт, а скорее исследовательское погружение, мой личный "челлендж" и способ разложить всё по полочкам. Заглянуть под капот

    habr.com/ru/articles/926150/

    #android #vpn #vpnсервис #wireguard #мобильная_разработка #мобильные_приложения #мобильное_приложение #kotlin #android_development #android_studio

  26. Лаборатория в смартфоне: изучаем эффект Доплера на палочках в Android

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

    habr.com/ru/articles/920738/

    #Лаборатория_в_смартфоне #agalilov #эффект_доплера #физика #физика_в_смартфоне #android #android_development #научнопопулярное #образование

  27. Создание кастомного тултипа Jetpack Compose

    Привет, Хабр! Меня зовут Альберт, я Android-разработчик в команде интеграции рассрочки в приложении Wildberries. В этой статье мы напишем простенькую реализацию тултипов на Jetpack Compose своими руками.

    habr.com/ru/companies/wildberr

    #tooltip #тултип #jetpack_compose #android #android_development #tutorial #туториал #tooltips #тултипы #kotlin

  28. Мастерство фокусов на Compose 2: как работает запрос фокуса

    Привет! Меня зовут Костя, я Android-разработчик в онлайн-кинотеатре PREMIER. В процессе работы над проектом PREMIER для AndroidTV я столкнулся с тем, что в Jetpack Compose механизм фокусов — достаточно сложная и неочевидная тема. А информации в интернете об этом очень мало, особенно о специфичных сценариев вроде ТВ-приложений или устройств без сенсорного ввода. Поэтому я решил разобрать тему фокусов в Compose максимально подробно, чтобы помочь разработчикам лучше понять этот механизм и избежать типичных ошибок. В первой статье на эту тему мы уже разобрали базовую структуру фокусировки в Compose. Теперь пришло время углубиться в технические детали: что именно происходит, когда вызывается requestFocus() , как Compose выбирает элемент для фокусировки и какие изменения были внесены в Compose 1.8, чтобы улучшить этот процесс. Если вы работаете с приложениями под Android TV, кастомными компонентами или просто хотите лучше понимать, как работает система фокусов, эта статья для вас.

    habr.com/ru/companies/habr_rut

    #android_tv #androidtv #compose #jetpack_compose #focus #android_development #android

  29. Халява приходит в программирование

    Недавно прогремел пост Артура Думчева (@arturdumchev), как халява якобы уходит из программирования. Можете ознакомиться с ним, чтиво достойное. Особенно комментарии. У меня сегодня день рождения: 39 лет. С 2003 года я работаю разработчиком, и сейчас делаю кое-что для ИИ. Интуиция подсказывает, что халява только начинается , мои чюваки. Сейчас — лучшее время быть разработчиком. Давайте начнем с точно того же определения, как было у Артёма: «для меня халява — это гарантированный результат за вложенные усилия. Логика повествования требует такого определения, дальше всё будет ясно». А дальше ясно, что из неверно поставленного условия может следовать что угодно. Читать далее!

    habr.com/ru/companies/bar/arti

    #бекенд #мобильная_разработка #android_development #ios_development #llm #вайбкодинг #промптинжиниринг #ответственность #архитектура #computer_science

  30. Мастерство фокусов на Compose

    Привет! Меня зовут Костя, я Android-разработчик в онлайн-кинотеатре PREMIER. Среди прочего у нас есть приложение для Android TV. Работая над ним, я столкнулся с тем, что система фокусов в Jetpack Compose устроена сложнее, чем кажется на первый взгляд. Поскольку для ТВ-приложений и устройств без сенсорного управления работа с фокусом играет ключевую роль в навигации, мне понадобилось детально разобраться в теме. Результатами делюсь в статье.

    habr.com/ru/companies/habr_rut

    #android_tv #androidtv #compose #jetpack_compose #focus #android_development #android