Как устроен исходник официального приложения WooCommerce для Android
Когда нужно изучить архитектуру крупного e-commerce приложения для Android, найти подходящий пример бывает непросто. Большинство реальных проектов спрятаны в приватных репозиториях компаний, а публичные туториалы ограничиваются простыми списками дел. Мобильное приложение WooCommerce — приятное исключение. Команда Automattic держит исходный код клиента полностью открытым.
В репозитории лежит полноценное Kotlin-приложение, на котором ежедневно работают тысячи владельцев интернет-магазинов. Это отличная площадка для изучения практических архитектурных решений, подходов к тестированию и верстке.
Что внутри проекта
Приложение построено вокруг Kotlin и компонентов Android Jetpack. Раньше слой работы с данными жил в отдельной библиотеке FluxC. Позже разработчики перенесли эту логику прямо в основной репозиторий.
Интересная деталь: для сканирования штрихкодов и распознавания текста на упаковках товара используется Google ML Kit. Это одна из немногих проприетарных зависимостей в проекте. Если вы планируете собирать сборку без Google-сервисов, этот модуль придется заменить.
В документации репозитория можно найти гайды по следующим темам:
- Настройка OAuth2-авторизации для работы с WooCommerce REST API.
- Поддержка интерфейсов с написанием справа налево (RTL) и локализация.
- Адаптация экранов под планшеты и большие экраны.
- Использование фича-флагов для безопасного релиза новых функций.
Сборка и запуск
Поднять проект локально можно за несколько минут. Из базовых требований нужен только Android Studio и установленный SDK.
Сначала клонируем репозиторий:
git clone https://github.com/woocommerce/woocommerce-android.git
cd woocommerce-android
Далее скопируйте шаблон конфигурации в директорию с секретами:
cp defaults.properties ~/.configure/woocommerce-android/secrets/secrets.properties
После этого откройте папку в Android Studio. Графический интерфейс сам создаст local.properties с указанием путей к SDK. Собрать debug-версию или запустить тесты из терминала можно стандартными Gradle-командами:
./gradlew assembleVanillaDebug
./gradlew installVanillaDebug
./gradlew :WooCommerce:testVanillaDebugUnitTest
./gradlew :WooCommerce:connectedVanillaDebugAndroidTest
Почему стоит изучить этот репозиторий
В коде WooCommerce Android можно подсмотреть решения повседневных задач, с которыми сталкивается мидл или сеньор разработчик:
- Настроенный статический анализатор Detekt с готовым набором правил под стандарты команды.
- Автоматическая генерация скриншотов для Google Play через специальный тестовый прогон.
- Организация отслеживания событий аналитики отдельно для базового управления магазином и POS-терминала.
- Грамотное разделение стилей и тем оформления с использованием Material Design.
Кому пригодится проект
Репозиторий будет полезен Android-разработчикам, желающим посмотреть на устройство реального Kotlin-приложения с богатой историей. Здесь можно оценить, как инженерная команда Automattic справляется с техдолгом, структурирует модули и внедряет новые библиотеки Jetpack.
Если вы пишете собственный клиент для e-commerce или интеграцию с WordPress API, этот код сэкономит вам немало времени на этапе проектирования архитектуры.