[Gradle, Kotlin, Разработка мобильных приложений, Разработка под Android] Знакомство с App Gallery. Создаем аккаунт разработчика
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Что происходит, кто виноват и что делать
Недавно Google прекратил сотрудничество с Huawei. Это привело к тому, что Huawei на своих новых девайсах уже не может использовать сервисы Google (магазин приложений, геолокация, карты, пуши, аналитика etc), что для пользователя превращает девайс в кирпич. Если бы это не была китайская компания, то, скорее всего, на этом её бизнес, связанный с Android, просто бы прекратился. Но компания китайская, большая и они пошли по пути импортозамещения, в кратчайшие сроки реализовав функционал, аналогичный Google сервисам.
В этой серии статей мы хотим поделиться своим опытом использования Huawei Mobile Services в уже готовом приложении, использующем Google Mobile Services для аналитики (Firebase Analytics), карт и геолокации. Текста получилось довольно много и о сильно разных сервисах, засим статей будет несколько. Начнём мы с основ — регистрации аккаунта разработчика и базовых вещей в коде.
- Создаём аккаунт разработчика, подключаем зависимости, подготавливаем код к внедрению. ← вы тут
- Встраиваем Huawei Analytics.
- Используем геолокацию от Huawei.
- Huawei maps. Используем вместо Google maps для AppGallery.
Если вам интересно узнать технических подробностей, посмотреть код и узнать про подводные камни — добро пожаловать под кат!
Что нужно для успешного внедрения
Всё было бы просто, если бы приложение писалось с нуля и не нужно было бы поддерживать как Google так и Huawei. Но мы живём в реальном мире и без сложностей не обойтись. Однако дело сильно упростится, если соблюдён ряд условий.
Но перед перечислением условий надо составить ТЗ. Оно у нас получилось такое:
- Нам нужно получить 2 версии APK — одну для Google Play, с библиотеками от Google, другую — для AppGallery, с библиотеками от Huawei.
- В приложении уже используется Firebase Analytics. Надо его заменить на аналог от Huawei.
- Есть определение местоположения пользователя. Аналогично заменяем на аналог.
- Есть карты. Нужно также заменить на аналог, по максимуму сохранив функционал, т.к. в реализации от Huawei некоторые вещи ещё не сделаны.
А вот что сильно сократит прикладываемые усилия:
- Код должен быть написан хорошо. И быть без багов (хотя это само собой разумеется – зачем код с багами писать?). Под хорошо будем подразумевать более-менее стандартную архитектуру, мимикрирующую под Clean.
- Если код из Google библиотек размазан ровным слоем по всему проекту, то у меня для вас плохие новости. Например у вас может не быть абстракции над аналитикой и/или над полученными от Google координатами. В этом случае придётся её завести, чтобы почистить код от импортов гугловых классов, которые будут недоступны, когда мы уберём их из сборки.
- Использование DI. Очень упрощает абстрагирование над аналитикой и геолокацией. Используем интерфейсы, через DI передавая нужную реализацию.
- Карты не слишком сильно кастомизированы. В частности, основная сложность будет с абстрагированием над кластеризацией маркеров.
Подготовка к внедрению
Как и в случае с Google, надо зарегистрироваться, создать проект приложения, получить файл конфигурации.
- Регистрируемся на https://developer.huawei.com. Тут понадобится паспорт/права + пластиковая карта. День-два вас будут проверять, потом аккаунт заработает. Если вдруг что-то пойдёт не так (забудете что-то указать или укажете неправильно) – вам напишут и подробно объяснят. После общения с Google Play всё выглядит очень круто – русскоязычная техподдержка отвечает быстро и по делу.
- Принимаем всякие соглашения об обработке персональных данных. Внимательно читая, конечно же)
- Создаём проект приложения, указывая пакет (он же ApplicationId).
- Если вам нужно ещё и встроенные покупки реализовать — то надо: а) Заполнить данные банковского счёта б) Распечатать и заполнить заявление о трансграничной передаче персональных данных в КНР в) Отправить скан оного вместе с данными из пункта а г) Отправить заявление из пункта б по почте в Москву. Когда заявление дойдёт — вам придёт e-mail и останется только активировать сервис в настройках проекта. На почте бывают накладки — возможно, придётся подождать. Я пару недель ждал, потом позвонил ответственному за это в Huawei — уверили, что проблему решат. И решили. На русском тоже всё общение — очень круто)
- Включаем сервис аналитики. В отличие от геолокации и карт, включённых по умолчанию, это нужно сделать вручную.
- Добавляем SHA-256 для всех ключей, которыми будет подписано приложение. Т.е. дебажные ключи и релизный ключ.
- Скачиваем аналог google-services.json, в случае Huawei называемый agconnect-services.json
- Создаём разные flavors для Google и Huawei. Наконец-то можно перейти к коду:
В build.gradle (module app) создаём flavors и указываем, что в папках src/google/kotlin, src/google/res, src/huawei/kotlin, src/huawei/res также находиться будет наш код.
android {
...
sourceSets {
google.java.srcDirs += 'src/google/kotlin'
google.res.srcDirs += 'src/google/res'
huawei.java.srcDirs += 'src/huawei/kotlin'
huawei.res.srcDirs += 'src/huawei/res'
}
flavorDimensions "store"
productFlavors {
google {
dimension "store"
}
huawei {
dimension "store"
}
}
}
Также создаём папки src/huaweiDebug и src/huaweiRelease. В них помещаем наш файл конфигурации agconnect-services.json
И добавляем apply plugin: 'com.huawei.agconnect' в конец build.gradle (module app).
И наконец, добавляем в build.gradle проекта:
buildscript {
...
repositories {
...
maven {url 'https://developer.huawei.com/repo/'}
}
dependencies {
...
classpath 'com.huawei.agconnect:agcp:1.2.1.301'
}
}
allprojects {
repositories {
...
maven {url 'https://developer.huawei.com/repo/'}
}
}
В следующей части – встраиваем аналитику
Теперь мы полностью готовы. У нас есть 2 разных варианта сборки – для Huawei и Google. У нас подключены необходимые зависимости. Созданы папки, где будет наш код. Создан аккаунт разработчика и выполнены необходимые действия по созданию проекта приложения. У нас даже какое-то ТЗ есть. И мы уже выполнили первый пункт из ТЗ! Отличный повод на этом статью закончить. И уже в следующей – встроить аналитику не от Google, а от Huawei.
Весь код, который есть в этом цикле статей вы можете посмотреть в репозитории на GitHub. Вот ссылка.
===========
Источник:
habr.com
===========
Похожие новости:
- [Программирование, Scala] Scala мертва?
- [Информационная безопасность, Разработка под Android, Разработка под Windows, Системы обмена сообщениями] Хакеры из Ирана годами воровали личные данные и прослушивали пользователей Telegram
- [Unity, Разработка мобильных приложений, Финансы в IT] Компания-разработчик движка Unity успешно вышла на IPO
- [Разработка мобильных приложений, Разработка под Android, Разработка под iOS] Как мы автоматизировали разработку WL-приложений
- [Разработка под Android, Разработка мобильных приложений, Информационная безопасность] Google запретила в Play Store «сталкерские приложения» для слежки за супругами
- [IT-инфраструктура, Информационная безопасность, Разработка под Android, Разработка под iOS] Особенности обновлений прошивки мобильных устройств
- [Разработка под Android, Машинное обучение] Как с помощью возможности распознавания текста HUAWEI ML Kit реализовать функцию автоматического ввода номеров
- [Swift, Программирование, Разработка мобильных приложений, Разработка под iOS] Виджеты в iOS 14 – возможности и ограничения
- [Программирование, Разработка под iOS, Разработка мобильных приложений] Формальные грамматики на службе мобильного клиента
- [Разработка мобильных приложений, Обработка изображений, Искусственный интеллект] Как документ на мобильнике распознается: от простого к сложному
Теги для поиска: #_gradle, #_kotlin, #_razrabotka_mobilnyh_prilozhenij (Разработка мобильных приложений), #_razrabotka_pod_android (Разработка под Android), #_android_development, #_huawei_mobile_services, #_google_mobile_services, #_kotlin, #_gradle, #_kotlin, #_razrabotka_mobilnyh_prilozhenij (
Разработка мобильных приложений
), #_razrabotka_pod_android (
Разработка под Android
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 23:40
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Что происходит, кто виноват и что делать Недавно Google прекратил сотрудничество с Huawei. Это привело к тому, что Huawei на своих новых девайсах уже не может использовать сервисы Google (магазин приложений, геолокация, карты, пуши, аналитика etc), что для пользователя превращает девайс в кирпич. Если бы это не была китайская компания, то, скорее всего, на этом её бизнес, связанный с Android, просто бы прекратился. Но компания китайская, большая и они пошли по пути импортозамещения, в кратчайшие сроки реализовав функционал, аналогичный Google сервисам. В этой серии статей мы хотим поделиться своим опытом использования Huawei Mobile Services в уже готовом приложении, использующем Google Mobile Services для аналитики (Firebase Analytics), карт и геолокации. Текста получилось довольно много и о сильно разных сервисах, засим статей будет несколько. Начнём мы с основ — регистрации аккаунта разработчика и базовых вещей в коде.
Если вам интересно узнать технических подробностей, посмотреть код и узнать про подводные камни — добро пожаловать под кат! Что нужно для успешного внедрения Всё было бы просто, если бы приложение писалось с нуля и не нужно было бы поддерживать как Google так и Huawei. Но мы живём в реальном мире и без сложностей не обойтись. Однако дело сильно упростится, если соблюдён ряд условий. Но перед перечислением условий надо составить ТЗ. Оно у нас получилось такое:
А вот что сильно сократит прикладываемые усилия:
Подготовка к внедрению Как и в случае с Google, надо зарегистрироваться, создать проект приложения, получить файл конфигурации.
В build.gradle (module app) создаём flavors и указываем, что в папках src/google/kotlin, src/google/res, src/huawei/kotlin, src/huawei/res также находиться будет наш код. android {
... sourceSets { google.java.srcDirs += 'src/google/kotlin' google.res.srcDirs += 'src/google/res' huawei.java.srcDirs += 'src/huawei/kotlin' huawei.res.srcDirs += 'src/huawei/res' } flavorDimensions "store" productFlavors { google { dimension "store" } huawei { dimension "store" } } } Также создаём папки src/huaweiDebug и src/huaweiRelease. В них помещаем наш файл конфигурации agconnect-services.json И добавляем apply plugin: 'com.huawei.agconnect' в конец build.gradle (module app). И наконец, добавляем в build.gradle проекта: buildscript {
... repositories { ... maven {url 'https://developer.huawei.com/repo/'} } dependencies { ... classpath 'com.huawei.agconnect:agcp:1.2.1.301' } } allprojects { repositories { ... maven {url 'https://developer.huawei.com/repo/'} } } В следующей части – встраиваем аналитику Теперь мы полностью готовы. У нас есть 2 разных варианта сборки – для Huawei и Google. У нас подключены необходимые зависимости. Созданы папки, где будет наш код. Создан аккаунт разработчика и выполнены необходимые действия по созданию проекта приложения. У нас даже какое-то ТЗ есть. И мы уже выполнили первый пункт из ТЗ! Отличный повод на этом статью закончить. И уже в следующей – встроить аналитику не от Google, а от Huawei. Весь код, который есть в этом цикле статей вы можете посмотреть в репозитории на GitHub. Вот ссылка. =========== Источник: habr.com =========== Похожие новости:
Разработка мобильных приложений ), #_razrabotka_pod_android ( Разработка под Android ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 23:40
Часовой пояс: UTC + 5