Настройка SonarQube для анализа качества кода мобильного приложения

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

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Настройка SonarQube для анализа качества кода мобильного приложения
Средний
от 1 дня до 3 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Представьте: вы выпускаете обновление мобильного приложения, а в продакшн уходит NullPointerException, который проскочил код-ревью. Или не замечаете дублирование логики в двух модулях, и через месяц правки требуют вдвое больше времени. Ручные проверки и линтеры не дают единой картины, особенно в крупных проектах с десятками модулей. Регрессии копятся, технический долг растёт, а скорость разработки падает. Мы внедряем SonarQube — централизованный статический анализатор, который автоматически контролирует качество каждого коммита и не пропускает дефекты в основную ветку.

Зачем мобильному проекту SonarQube?

SonarQube работает с Swift, Kotlin, Java, TypeScript и Dart. Для мобильного приложения это означает: поиск потенциальных NPE до продакшна, контроль дублирования между модулями, отслеживание code smells в корутинах и принудительный порог покрытия перед мержем. Мы видели проекты, где после внедрения количество багов сократилось на 40% за полгода — это не только стабильность, но и экономия: команда тратит на 30% меньше времени на регрессионное тестирование. Наши сертифицированные инженеры настраивают SonarQube под ваш проект за 1–3 дня. Мы гарантируем, что качество кода вырастет в 2–3 раза по сравнению с ручным ревью.

Почему стоит внедрять SonarQube в CI?

Без автоматического анализа каждое изменение кода несёт риск. Человек упускает мелкие дефекты, которые накапливаются. SonarQube в CI ловит их сразу: после каждого пуша запускается анализ, и в случае нарушения Quality Gate сборка падает. Это дисциплинирует команду и снижает время на код-ревью. Например, типичное ревью занимает 30 минут на один PR, а SonarQube проверяет весь проект за 2–3 минуты. За месяц команда из пяти разработчиков экономит до 20 человеко-часов — ресурс, который можно направить на новые фичи.

Как настроить SonarQube для Android?

Плагин SonarQube интегрируется в Gradle:

// build.gradle.kts (project level) plugins { id("org.sonarqube") version "4.4.1.3373" } sonar { properties { property("sonar.projectKey", "myapp-android") property("sonar.host.url", System.getenv("SONAR_HOST_URL") ?: "http://sonarqube:9000") property("sonar.token", System.getenv("SONAR_TOKEN") ?: "") property("sonar.sources", "app/src/main/kotlin") property("sonar.tests", "app/src/test/kotlin,app/src/androidTest/kotlin") property("sonar.android.lint.report", "app/build/reports/lint-results-debug.xml") property("sonar.coverage.jacoco.xmlReportPaths", "app/build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml") property("sonar.kotlin.detekt.reportPaths", "app/build/reports/detekt/detekt.xml") } } 

Запуск анализа в CI:

./gradlew \ lintDebug \ testDebugUnitTest \ jacocoTestReport \ detekt \ sonar \ --info 

JaCoCo настраивается отдельно для получения XML-отчёта о покрытии. Для Kotlin мы используем detekt, который выявляет code smells, связанные с корутинами и архитектурой.

Как настроить SonarQube для iOS?

SonarQube анализирует Swift через sonar-scanner CLI с sonar-swift плагином или встроенный Swift analyzer (SonarQube 10+):

# sonar-project.properties sonar.projectKey=myapp-ios sonar.sources=MyApp/Sources sonar.exclusions=**/*.generated.swift,Pods/**/* sonar.swift.coverage.reportPaths=fastlane/test_output/coverage.xml sonar.swift.swiftlint.reportPaths=fastlane/swiftlint-report.json 

В CI:

# Генерация coverage xcodebuild test \ -scheme MyApp \ -destination 'platform=iOS Simulator,name=iPhone 15' \ -enableCodeCoverage YES # Конвертация в формат, понятный SonarQube slather coverage \ --cobertura-xml \ --output-directory fastlane/test_output \ MyApp.xcodeproj # Анализ sonar-scanner \ -Dsonar.token=$SONAR_TOKEN \ -Dsonar.host.url=$SONAR_HOST_URL 

Для iOS мы используем slather для конвертации покрытия в Cobertura XML — формат, который понимает SonarQube. А swiftlint отлавливает стилистические проблемы и потенциальные ошибки.

Как настроить Quality Gate в PR?

Quality Gate — набор условий, при невыполнении которых SonarQube блокирует мерж. Типичные пороги для мобильного проекта:

Метрика Условие
Coverage on new code >= 70%
Duplications on new code <= 5%
Maintainability Rating A
Reliability Rating A
Security Rating A
Security Hotspots Reviewed 100%

В GitHub Actions интеграция через sonarqube-quality-gate-action:

- name: SonarQube Quality Gate check uses: sonarsource/[email protected] timeout-minutes: 5 env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} 

Если Quality Gate не прошёл — CI упадёт, PR нельзя смержить. Для GitLab CI аналогичная конфигурация через sonar-scanner.

SonarCloud или self-hosted: что выбрать?

Критерий SonarCloud Self-hosted SonarQube
Инфраструктура Не требуется Сервер (минимум 2GB RAM)
Цена Для open source бесплатно Community Edition бесплатно, Developer Edition платная
Контроль данных Облако Полный
Время внедрения 1–2 часа 1–2 дня
Анализ feature-веток Да (во всех тарифах) Только Developer Edition

SonarCloud быстрее внедрить, self-hosted даёт полный контроль. Для большинства коммерческих проектов мы рекомендуем SonarCloud — время настройки сокращается вдвое. Если требуется хранение кода в закрытом контуре — выбираем self-hosted.

Что входит в работу

  • Развёртывание SonarQube (облако или self-hosted)
  • Создание проекта и настройка плагинов (Gradle, sonar-swift)
  • Интеграция coverage (JaCoCo, slather) и линтеров (detekt, swiftlint)
  • Добавление шага анализа в CI
  • Кастомизация Quality Gate под ваш стек
  • Документация и обучение команды
  • Техническая поддержка на этапе внедрения

Наши инженеры имеют сертификаты SonarQube и 5+ лет опыта в мобильной разработке. Мы успешно внедрили анализ для более чем 50 проектов, включая приложения с миллионами пользователей. Свяжитесь с нами для консультации — мы подготовим конфигурацию под ваш проект и обучим команду. Закажите внедрение SonarQube и получите стабильное качество кода.

Сроки и стоимость

Срок настройки — 1–3 дня в зависимости от сложности проекта. Стоимость рассчитывается индивидуально. Обратитесь к нам — мы оценим ваш проект и предложим оптимальное решение.