По данным исследований (Data.ai, Sensor Tower, Statista), Android-приложения имеют на 10-30% более низкие оценки, чем iOS-аналоги. Например, приложение может получить 4,5 на iOS и 3,5-4,0 на Android.

Меня зовут Анастасия Симонова, я Android-разработчик в команде Домклик. Поделюсь нюансами разработки под Android и предложу некоторые решения для избежания проблем в будущем. Готовы? Приступим!

Важно понимать, что в крупных корпоративных приложениях рейтинг зачастую зависит не только от качества самого приложения, но и от общего уровня сервиса, предоставляемого пользователям. Если проанализировать отзывы, оставленные пользователями, становится очевидным, что многие из них касаются не функциональности приложения, а проблем с обслуживанием или недовольством работой компании в целом. Например, распространенные комментарии включают: "Менеджеры ничего не знают", "В чате не отвечают", "Заказал обратный звонок — 3 дня никто не перезванивает", "Ставка 25%, кто будет брать ипотеку?". Поэтому важно не только разрабатывать качественное приложение, но и обеспечивать высокий уровень сервиса. В этой статье мы сосредоточим внимание на корнеркейсы Android-разработки, которые могут повлиять на пользовательский опыт и, соответственно, на рейтинг приложения.

Оглавление

  1. Размер и производительность приложения

  2. Отсутствие поддержки стандартных API

  3. Качество и стабильность

  4. Безопасность данных

  5. UX

  6. Accessibility

  7. Отсутствие локализации

  8. Обновление и поддержка

Размер и производительность приложения

Проблема: неоптимизированные приложения для устройств с низкими характеристиками (1-2 ГБ ОЗУ) могут работать медленно и вызывать сбои, что приводит к негативным отзывам. Бюджетные устройства нередко страдают от недостатка объёма внутреннего хранилища для установки и обновления приложений, что также вызывает недовольство пользователей.

Актуальность: подавляющее большинство проданных смартфонов в 2023 году являются бюджетными, и большинство из них имеют менее 32 ГБ памяти. 60 % пользователей бюджетных смартфонов сталкиваются с проблемами её нехватки. Почти 70 % пользователей ожидают, что приложения будут работать быстро, даже на устройствах с ограниченными ресурсами, а медленная работа может увеличить количество негативных отзывов на 35 %.

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

Примеры решений и оптимизаций

Видео и аудио:

  • Используйте стандартные форматы и кодеки (H.264 для видео, AAC для аудио).

  • Предварительно конвертируйте видео в более совместимые форматы или применяйте облачные решения.

Анимации:

  • Используйте встроенный профайлер Android Studio для мониторинга производительности и уменьшения тяжёлых операций в UI-потоке.

  • Используйте легковесные векторные анимации с Lottie для улучшения отзывчивости.

Изображения:

  • Используйте библиотеки, такие как Glide или Coil, для автоматической обработки форматов и кеширования изображений.

  • Создавайте адаптивные ресурсы для различных плотностей экрана.

Системные ресурсы:

  • Оптимизируйте фоновую работу, избегая активных процессов, которые могут разряжать батарею (например, GPS).

  • Используйте WorkManager или JobScheduler для управления фоновыми процессами.

  • Анализируйте использование ресурсов (процессора, памяти, сети) с помощью Android Profiler.

Управление памятью:

  • Оптимизируйте данные, используя сжатие (например, WebP) и удаляя неиспользуемые компоненты.

  • Удаляйте неиспользуемый код для старых версий Android и поддерживайте только необходимые API. Применяйте ProGuard/R8 для уменьшения размера APK и используйте режим сборки release для финальных версий.

  • Используйте динамические модули и отложенную загрузку для больших ресурсов.

  • Минимизируйте зависимости от внешних библиотек и выбирайте лёгкие альтернативы.

  • Используйте apk analyzer и gradle profiler для выявления проблем с памятью. Также используйте Android App Bundle для оптимизации загрузки.

Отсутствие поддержки стандартных API

Проблема: отсутствие поддержки стандартных API на некоторых устройствах (например, от Huawei) ограничивает функциональность приложений, что может вызывать недовольство пользователей из-за недостатка привычных возможностей.

Актуальность: в 2023 году более 25 % смартфонов работают без Google Services, что требует адаптации под них. Исследование AppFigures показало, что 30 % пользователей недовольны ограниченной функциональностью таких приложений.

Решение: разработчики могут использовать альтернативные решения и внедрять различные flavors для настройки приложений под разные магазины и API. Это поможет адаптировать функциональность под уникальные требования устройств.

Примеры: устройства без Google Services (например, Huawei) создают собственные экосистемы и API. Например, Huawei AppGallery и HMS предоставляют аналоги функций Google. Также на некоторых устройствах механизм WebView может работать некорректно или вовсе не работать.

Рекомендации:

  • Тестируйте на устройствах без Google Services для выявления проблем на ранней стадии.

  • Заменяйте зависимости от Google на альтернативные решения, например, Organic Maps для работы с картами.

  • Участвуйте в форумах и платформах разработчиков для получения актуальной информации и поддержки.

Качество и стабильность

Пример крашлитики Firebase
Пример крашлитики Firebase

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

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

Решения:

  • Используйте инструменты для отслеживания статистики падений приложения, такие как Firebase, AppMetrica или Sentry, и создавайте план регулярных обновлений приложения, чтобы исправлять замеченные баги.

  • Детально анализируйте текущие пользовательские пути, выявляя узкие места и точки, где пользователи сталкиваются с трудностями. Используйте методы прототипирования и тестирования, чтобы оптимизировать взаимодействие. Проводите А/Б-тестирование.

  • Проводите ревизию кода для улучшения структуры и качества, а также используйте современные паттерны проектирования, способствующие более стабильной работе приложения.

  • Проведите нагрузочное тестирование вашего приложения, чтобы убедиться в его способности справляться с большим количеством пользователей и запросов одновременно.

  • Следите за обновлениями зависимостей и библиотек, чтобы использовать последние версии, которые могут улучшить производительность и исправить известные ошибки.

  • Собирайте отзывы пользователей о производительности приложения и используйте их для выявления проблем и улучшения качества.

Безопасность данных

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

Актуальность: 70 % пользователей считают безопасность данных важным фактором при выборе приложения. В 2023 году утечки данных увеличились на 45 %, что ведёт к потере до 50 % рейтинга и удалению приложений 62 % пользователей.

Решение: разработчики должны использовать современные методы шифрования и безопасные протоколы (например, HTTPS), а также предоставлять прозрачные политики конфиденциальности.

Методы обеспечения безопасности:

  • Используйте для защиты информации современные алгоритмы, такие как AES.

  • Не допускайте передачу чувствительны данных без шифрования. Используйте HTTPS для безопасных запросов, например с помощью библиотеки OkHttp.

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

  • Внедрите двухфакторную аутентификацию, используя Google Authenticator или SMS-верификацию.

  • Обновляйте приложение и его зависимости для устранения уязвимостей.

  • Создайте понятную политику конфиденциальности о том, как используются данные пользователей.

UX

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

Актуальность: в 2023 году на рынке было много моделей с экранами от 5 до 7 дюймов. Около 60 % пользователей сталкивались с проблемами отображения интерфейса, и 85 % заявили, что неудобства заставляют их отказаться от приложения или оставить плохие отзывы.

Решение: используйте гибкие макеты и обеспечьте совместимость с интерфейсами различных вендоров.

Примеры проблем:

  • Кастомные шрифты. Учитывайте, что они могут быть не предустановлены. Различия могут повлиять на читабельность;

  • Кастомные элементы управления. Кнопки могут отображаться неправильно.

  • Темы. Оболочки, такие как MIUI от Xiaomi, могут изменять дизайн приложения.

  • Внешний вид уведомлений. Некоторые производители используют свои стили.

    Oppo
    Oppo

Рекомендации:

  • Придерживайтесь стандартов Material Design для лучшего отображения.

  • Тестируйте на реальных устройствах для проверки адаптивности интерфейса. Используйте бюджетные Xiaomi, Huawei, Oppo, не ограничивайтесь флагманскими устройствами.

  • Динамически изменяйте стили в зависимости от производителя. val isXiaomi = Build.MANUFACTURER.equals("Xiaomi", ignoreCase = true).

  • Создавайте отдельные макеты для портретной и альбомной ориентации, используя соответствующие папки. Требуйте от дизайнеров согласованные с бизнесом макеты под различные разрешения.

Accessibility

Проблема: приложения, игнорирующие потребности пользователей с ограниченными возможностями, могут стать недоступными для значительного сегмента аудитории, что ведёт к недовольству и снижению рейтинга.

Актуальность: более 1 миллиарда людей (15 % населения) живут с нарушениями здоровья, однако более 98 % веб-сайтов не соответствует стандартам доступности (WCAG), что также касается мобильных приложений. Это приводит к трудностям для пользователей с ограниченными возможностями и может снизить рейтинг приложения на 20-30 %.

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

Примеры:

  • Приложение для чтения книг без экранного чтения не сможет обслуживать пользователей с нарушениями зрения (не игнорируйте атрибут contentDescription для кнопок и изображений).

  • Приложение для управления задачами без интуитивной навигации может быть неудобным для пользователей с ограниченной подвижностью.

Отсутствие локализации

Проблема: многие приложения не поддерживают несколько языков и культурные особенности, что ограничивает их использование в разных регионах.

Актуальность: 70 % пользователей хотят использовать приложения на своём родном языке, а более 50 % удаляют приложения без необходимого языка или оставляют негативные отзывы. Приложения с поддержкой нескольких языков могут привлечь на 50 % больше пользователей на международных рынках.

Решение: разработчики должны с самого начала внедрять поддержку нескольких языков и адаптировать контент к различным культурным контекстам. Для этого следует использовать инструменты локализации и регулярно обновлять переводы, особенно если приложение предполагает использование в других странах.

Примеры:

  • Приложение для общения, доступное только на английском, потеряет пользователей в странах с другим основным языком.

  • Приложение для планирования путешествий без учёта местных привычек будет сложно воспринимаемо международной аудиторией.

Обновление и поддержка

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

Актуальность: 70 % пользователей ожидают обновлений, а 45 % сообщают, что проблемы с производительностью заставили их отключить уведомления или удалить приложение. 65 % пользователей считают приложение менее надёжным, если оно не обновляется более трёх месяцев, что может повлиять на его рейтинг.

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

Примеры:

  • Приложение для обмена сообщениями без обновлений безопасности может потерять доверие пользователей.

  • Игра без новых уровней и контента может снизить интерес и вовлечённость пользователей.

Регулярные обновления и поддержка важны для положительного пользовательского опыта и доверия к приложению.

Заключение

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

Ваши идеи и опыт крайне важны, поэтому делитесь в комментариях интересными и неочевидными корнеркейсами, решение которых поможет сделать приложение лучше, надежнее и успешнее!

Комментарии (10)


  1. zudwalex
    13.02.2025 11:19

    TL;DR: пользователи любят хорошие приложения и не любят плохие.


  1. radioxoma
    13.02.2025 11:19

    Отсутствие локализации лучше плохой локализации, которую нельзя переключить.


  1. dkfbm
    13.02.2025 11:19

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


    1. killyself
      13.02.2025 11:19

      Возможно дело не наличии платных функций, а в том, когда и как пользователь о них узнаёт, и насколько они критичны для использования приложения. Можно ожидать недовольств, если пользователь, только привыкший к приложению, натыкается на пейволл, особенно если его в лицо кидают раз в 15 минут. С другой стороны скромная плашка "поддержите разработчика за дополнительные плюшки и респект" в углу главного меню вызовет намного меньше зла.


      1. dkfbm
        13.02.2025 11:19

        насколько они критичны для использования приложения

        За функции, которые некритичны, никто платить не будет. Разумеется, для полноценного использования они нужны – без них фактически ознакомительный режим.


        1. achekalin
          13.02.2025 11:19

          Это бы Сберу в уши: от старой приложухи, которая

          • шустро ставилась,

          • работала на всём, и

          • с задачей перевести N рублей в рамках убогих лимитов Сбера справлялась отлично

          они «незаметно» (незаметно для себя, но не для людей; вон, все форумы полны, но «принимающие решения лица», очевидно, имеют чем заняться, чем чушь из интернета читать, да и просто понимают, что KPI — это бабки, а счастье юзеров — это «без платно») перешли к комбайну,

          • для которого не грех раз в два года свежий флагман покупать,

          • который на одном из лучших в индустрии процов стартует 5 секунд (5!!! Пять, Карл, за это время телефон может параметры первых атомных бомб рассчитать!),

          • который умеет всё, но в нём это всё регулярно нельзя найти, т.к. там даже разделы переезжают каждые 2–3 месяца,

          • при разработке которого, как кажется, мать‑мать, больше усилий на работу сторис тратится, чем на отладку банковские функции (в т.ч. и по UI), и

          • в котором можно купить симку, оплатить штраф, но нельзя узнать, когда точно снимется очередной платеж ипотеки (с точностью до часа, а не до дня),

          • где даже не сразу поймёшь, что старых добрых дебетовых карт в Сбере более нет, есть некие сберкарты, которые как бы привычные, а как бы нет (ну, как Фругурт не являлся Йогуртом), и что все отличия — в карман Сбера идут.

          Про работу кешбека и вовсе можно не искать инфу, в итоге тебя отправляет на сайт Сбера, который, тадааам — на телефоне в браузере без танцев не открывается, ибо серты... но эту инфу в приложение перенести нельзя! Пожилые пользователи просто зависают, когда раз в 2-3 месяца хотят перевести в приложении пару тысяч из своей невеликой пенсии в оплату за что-то - какое тут поле для мошенников, которые по телефонам диктуют "идите туда, жмите вот это", а ИБ Сбера такую UI-дыру просто игнорит...

          Понимаю, что «всё для блага человека», но я как‑то подсознательно жду оповещение «ваш телефон имеет всего 12 Гб ОЗУ и всего 256 Гб флешки, просьба обновить его до модели с 16/512, потому что через три обновления программа не сможет поместиться ни туда, ни туда».


        1. killyself
          13.02.2025 11:19

          За функции, которые некритичны, никто платить не будет

          Есть рычаги и помимо функциональности - комфорт, статус, косметика. Но, конечно, повышение продаж и повышение недовольства платными функциями - это две стороны одного клинка


          1. dkfbm
            13.02.2025 11:19

            Есть рычаги и помимо функциональности

            Это всё понятно. Собственно, мой первый комментарий был к тому, что "тайны рейтингов" отнюдь не исчерпываются перечисленным в статье.

            Вообще статья довольно странная: начинается с весьма спорного утверждения, что рейтинги на андроиде всегда ниже, чем на iOS (с чего бы вдруг?) и нам обещают рассказать, как с этим бороться; а потом следует набор довольно банальных рекомендаций крайне общего характера, одинаково применимых к обеим платформам.


  1. dsoastro
    13.02.2025 11:19

    такое могут позволить себе только корпоративные приложения, для инди-разработчиков это пустая трата времени, которая не приводит к монетизации


  1. achekalin
    13.02.2025 11:19

    А вот компания домклик как-то старается писать аппликухи для ОЗУ в 1-2 Гб?