Архив метки: Android

Как открыть файл из другого приложения в Android

Работа с файлами в Android — одна из фундаментальных вещей, с которыми сталкиваются разработчики в большинстве приложений. Многие приложения используют взаимодействие с файловой системой в качестве своего основного функционала. Это может быть галерея изображений пользователя, читалка электронных книг, приложение для редактирования текстовых файлов и многое-многое другое. По этой причине важно понимать, в каком виде с… Читать далее »

Новые инструменты и программы для достижения успеха в Google Play

Недавно в своём блоге Google поделилась своим видением Google Play и рассказала о комплексе новых инструментов и программ, призванных оптимизировать цикл разработки и ускорить рост приложений. Мы проанализировали ключевые нововведения, чтобы вы могли понять, как они помогут вашему бизнесу — от упрощения рутинных задач до получения AI-аналитики и новых каналов вовлечения. Упрощение проверок диплинков с… Читать далее »

Анонс Swift SDK для Android

Разработчики языка Swift объявили в своём блоге о выпуске предварительной версии Swift SDK для Android. Данным SDK занимается специальная рабочая группа Android, целью которой является добавление и поддержка Android в качестве официально поддерживаемой платформы для языка Swift. С помощью SDK разработчики смогут создавать приложения на Android на языке Swift, что открывает ещё больше возможностей для… Читать далее »

Проблема при выделении текста в TextView на Android 15+

Введение Порой при разработке мобильного приложения (и в целом любого ПО) можно столкнуться с ошибками, которые не зависят от разработчика. Например, проблема внутри одной из подключенных библиотек. В этом случае логичным решением будет либо найти альтернативу, либо написать своё решение. Однако может быть и так, что проблема гораздо масштабнее и так просто не решается. К… Читать далее »

Сборка и публикация приложений с помощью Codemagic CI/CD

Введение Разработка мобильных приложений состоит из нескольких частей, одними из которых являются сборка APK-файла (или AAB) и публикация его в магазинах приложений. И если для небольших приложений эти процессы могут занимать пару минут, то чем больше становится приложение, тем больше времени разработчики тратят на сборку. Даже использование различных средств для ускорения сборки и анализ проблемных… Читать далее »

Сбор и анализ ошибок в приложениях с помощью Tracer

Введение Одна из главных задач при разработке мобильных приложений (и в целом ПО) — создать работоспособную и отказоустойчивую систему. Приложение, которое стабильно работает и выполняет свою функцию так, как задумано, с большей вероятностью привлечёт пользователей, чем приложение, которое закрывается с ошибкой на старте. Более того, плохо работающее приложение может стать причиной негативных оценок, что может… Читать далее »

HTML с кликабельными ссылками и выделением текста в TextView

Когда вы хотите нажать на ссылку внутри TextView, не перенаправляя её во внешний браузер, или установить Spannable с HTML в TextView, то в большинстве случаев достаточно кастомизировать LinkMovementMethod, чтобы сделать ссылку кликабельной, и затем установить его в TextView. setMovementMethod(LinkMovementMethod.getInctance()); Но LinkMovementMethod по умолчанию не поддерживает выделение текста, поэтому придётся переопределить несколько методов, чтобы добиться выделения… Читать далее »

Dispatchers.Unconfined и почему вам на самом деле нужен EmptyCoroutineContext

Dispatchers.Unconfined является одним из встроенных CoroutineDispatchers, входящих в kotlinx.coroutines. Он отличается от других встроенных диспетчеров тем, что не опирается на какой-то конкретный пул потоков. Вместо этого Dispatchers.Unconfined спроектирован так, чтобы никогда не менять поток при входе в его контекст (это называется «диспетчеризацией»). В этом легко убедиться, если посмотреть на его упрощённую реализацию ниже: object Unconfined… Читать далее »

Советы по обработке Insets для обеспечения edge-to-edge на Android 15

Перевод статьи от Android Developers. Согласно внутреннему исследованию Google, пользователи предпочитают экраны edge-to-edge, а не edge-to-edge, как для навигации жестами, так и для навигации тремя кнопками. Рисунок 1. Сверху или слева: приложение edge-to-edge. Фон приложения прорисовывается под строкой состояния сверху и строкой навигации снизу. Снизу или справа: приложение, которое не поддерживает edge-to-edge. Фон и содержимое… Читать далее »

Многопоточность в Android: тогда и сейчас

План Введение Асинхронность и многопоточность Потоки в Android Thread и Runnable Looper и Handler HandlerThread AsyncTask Loader и LoaderManager Executor RxJava Kotlin Coroutines Заключение Введение Исторически сложилось, что разработчик пишет последовательный код. Программа выполняет такой код строчка за строчкой в соответствии с написанным. То есть, когда вызывается какая-либо функция, которая выполняет длительную операцию, то программа… Читать далее »