Обновить
128K+

Android *

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

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

Автоматизация тестирования мобильной игры с помощью Airtest IDE и других решений

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

Автоматизация мобильной игры с помощью Airtest IDE и других решений

Доброго дня всем! Меня зовут Роман Мелкумов, я тестировщик в студии IT Territory. И вот уже более года тестирую мобильную игру Castle Duels, которая сочетает в себе многопользовательские бои и коллекционирование персонажей. 

Читать далее

Улучшаем производительность android-приложения с помощью Baseline profiles

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


Производительность важна для формирования положительного пользовательского опыта использования приложения, поэтому разработчики стремятся ускорить работу своих программ. Для приложений в области безопасности важно время инициализации: пара секунд может стать роковой для пользователя. Поэтому в «Лаборатории Касперского» мы пристально следим за производительностью наших приложений, анализируем влияние новых доработок на ключевые метрики и регулярно улучшаем их.

В большинстве случаев работа над производительностью сводится к оптимизации исходного кода: сперва находят узкие места при помощи метрик, утилит и инструментов, затем разработчик обращается к коду для поиска и устранения проблем. Иногда Google предоставляет дополнительные возможности для оптимизации. Baseline profile стал одной из таких возможностей и был анонсирован совсем недавно. Безусловно, такие доработки очень приятны для разработчиков и полезны для приложений, поэтому мы с огромным интересом знакомимся с новой возможностью и начинаем применять ее к нашему проекту.

В этой статье я хочу поделиться нашим опытом и результатами. Сперва мы коротко вспомним виды компиляции в Android, поймем принцип, на котором основывается данная оптимизация. Затем ознакомимся с пошаговой инструкцией по интеграции в свой проект и посмотрим на полученные результаты. В конце я расскажу о наших дальнейших шагах и планах.
Читать дальше →

Изображения. Минификация на максималках

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

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

Читать далее

Jetpack Compose для тех, кто в танке

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

Приблизительно три года назад на Google I/O 2019 была анонсирована новая перспективная библиотека для разработки Android-приложений под названием compose. С тех пор он рос все больше и больше и становился все лучше и лучше. Многие люди даже говорят, что он знаменует собой конец использования XML в разработке Android-приложений. С тех пор, как Google выпустил первую стабильную версию, была написана куча учебных пособий, выпущено множество курсов и разработано большое количество библиотек для поддержки экосистемы.

Читать далее

Аналитика в декларативном стиле с поддержкой многомодульности

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

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

Читать далее

Android 13: какие изменения нас ожидают

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

Работа с разрешениями, загадочный TARE, изменения UI. Разбираемся, какие изменения несёт грядущее обновление Android 13.

Читать далее

От LiveData к Flow…

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

Мы Дима и Настя, Android-разработчики в компании СберЗдоровье. В этой статье мы хотим рассказать о том, как мы перевели весь наш проект с LiveData на Flow, с какими трудностями столкнулись и что полезного узнали. Эта статья будет полезна тем, кто работает с LiveData, уже пробовал / хочет попробовать Flow для хранения состояний во ViewModel, а также командам, которые планируют миграцию всего проекта на новый инструмент. 

Читать далее

Дайджест интересных материалов для мобильного разработчика #447 (13 — 19 июня)

Время на прочтение3 мин
Охват и читатели2.9K
В новом выпуске вопросы MVI и модульности, ада зависимостей и рефакторинга Музыки, собеседований, математики, персон, пользователей, ARPDAU, рынка приложений 2026 и много другого. Подключайтесь!

Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

Читать дальше →

Линтинг в Kotlin: полное руководство по настройке и эксплуатации

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

Среди множества редакторов для разработки приложений под Android особенно выделяется Android Studio — это очевидный выбор большинства разработчиков не только потому, что это основной нативный редактор для разработки приложений, но и потому, что он предоставляет обширную оффлайн поддержку.

Этот набор фич гарантирует, что код, который мы пишем для нашего Android-приложения, будет эффективным и полнофункциональным. Одним из инструментов, цель которого заключается в оказании такого рода поддержки, является Lint.

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

Читать далее

Рефакторинг приложения с десятилетним легаси за три месяца. Опыт Яндекс Музыки

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


Однажды ты просыпаешься и понимаешь: избыточность компонентов и рассинхронизация в твоём приложении начинают вредить пользователям. Однажды ты смотришь на написанное давным-давно ядро, плачешь горькими слезами, и приходит это некомфортное, но вместе с тем немного соблазнительное ощущение — что рефакторинг назрел. Добро пожаловать на экскурсию по рефакторингу Музыки, начиная с ресёрча и заканчивая эксплуатацией! Я покажу вам реальный код и постараюсь в деталях вспомнить, как мы формировали требования к механизмам и разрабатывали их, рисовали у себя в голове и в коде границы ядра, по одной переделывали очереди и внедряли то, что получилось, в SDK.
Читать дальше →

Как сделать Android-приложение тестируемым? Часть 2 — MVI

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

В первой части статьи мы последовательно рассмотрели шаги по созданию и преобразования приложения для Android, необходимыми для реализации тестов, начиная от Unit-тестирования и заканчивая E2E-тестами. Сегодня мы рассмотрим архитектурные подходы Model-View-Intent (MVI), создадим собственную реализацию MVI и на ее примере разберем особенности разработки и тестирования приложений на MVI и подготовимся к обсуждению разработки тестируемых реактивных интерфейсов на Jetpack Compose в следующей части статьи.

Читать далее

Сборка Android приложения без Studio

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

В данном руководстве я актуализировал разрозненные инструкции на текущий момент (май 2022 года). Если совсем коротко, то собрать приложение можно командой

gradlew assembleDebug  или  gradlew assembleRelease

Но как всегда есть нюанс ;)  Что нужно минимально поставить на ноутбук или компьютер, а главное, где это скачать?

Читать далее

Дайджест интересных материалов для мобильного разработчика #446 (6 — 12 июня)

Время на прочтение3 мин
Охват и читатели2.7K
В нашем новом дайджесте новости с WWDC, многомодульный BDSM и стабильный Android 13, Flutter для Web (который все еще отстой), паттерны и практики написания кода, коварные фильтры и многое другое!

Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

Читать дальше →

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

Многомодульный BDSM: как связать Gradle модули и как с ними общаться после этого?

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

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

Читать далее

Объектно-ориентированный Gradle. Настраиваем Build types в Android, используя Kotlin DSL

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

В этой статье мы поговорим о том, как наша команда перешла на Kotlin DSL для описания Gradle файлов, и как в итоге мы получили типы сборок, описанные классами и имеющие общий интерфейс.

Читать далее

Как создать мобильную ферму, или Вжух! И ты мобильный фермер

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

Привет, «Хабр»! Мы — Даня и Ксюша, разработчик и тестировщик команды мобильных приложений в компании ATI.SU. Сегодня хотим рассказать удивительную историю о том, как наши системные администраторы помогли нам развернуть мобильную ферму Android-девайсов, и с чем мы столкнулись. Опишем технические детали, чтобы вы могли повторить наш опыт. Однажды и ваша команда сможет отлаживать и тестировать удалённо на большом парке девайсов.

Читать далее

Как сделать Android-приложение тестируемым? Часть 1 — MVP и MVVM

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

Хорошее мобильное приложение должно быть не только создано с использованием современных архитектурных шаблонов, но и быть подготовленным к реализации автоматических тестов. Мы рассмотрим с вами на практическом примере как создается приложение с учетом возможностей тестирования, чем отличаются архитектуры и соответствующие подходы к созданию тестов и как создать полный спектр тестов от unit-тестирования бизнес-логики до End-to-End тестов приложения как единого целого. В первой части статьи мы поговорим про разработку интерфейсов без использования реактивной модели, последовательно создадим (и доработаем) приложение на архитектурах MVP и MVVM и разработаем тесты (с использованием виртуального времени на тестовом диспетчере, моков и Hilt для подстановки тестовых объектов). Во второй части статьи речь пойдет о MVI и о тестировании приложений для Jetpack Compose (включая анимацию и передачу данных через LocalComposition-объекты). Всех, кому интересна мобильная разработка, приглашаю под кат.

Читать далее

Дайджест интересных материалов для мобильного разработчика #445 (30 мая — 5 июня)

Время на прочтение4 мин
Охват и читатели3.3K
В нашем новом выпуске лучший дизайн приложений в Apple Design Awards 2022, гибкая навигация и первый взгляд на песочницу конфиденциальности, Flutter в разработке игр, «ретро» в Майнкрафт и многое другое. Всего 95 материалов!

Подключайтесь к нашему Telegram-каналу Mobile Insights, где подборки статей и новостей выходят каждый день.

Читать дальше →

Перформанс мониторинг по-взрослому: выкладываем запись Mobile Meetup

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

Привет! Как и обещали, возвращаемся с записью второго митапа для мобильных разработчиков от Ozon Tech и сообщества Coffee&Code. В анонсе я уже рассказал о нашем стеке, что у нас 150+ мобильных инженеров и подход Backend-Driven UI — повторяться не буду. Вместо тысячи слов — просто посмотрите запись:)

Читать далее

Введение в Jetpack Compose

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

Привет, меня зовут Саша, я Android-разработчик команды разработки мобильного приложения Банка РНКБ. Сегодня хочу поделиться своим опытом использования Compose.

В июле прошлого года Google анонсировал первую стабильную версию Jetpack Compose, а на момент написания статьи уже вышла версия 1.1. Несмотря на то, что использовать данный инструмент можно было задолго до фактического релиза, сейчас метаморфозы API завершились(хотя некоторые его части всё ещё помечены аннотацией @Experimental*Api). Сам Compose как инструмент для разработки теперь точно стал production ready (ну так обещают).

Читать далее