Будут ли реагировать нативные работы без сервисов Google на телефоне Huawei? - PullRequest
2 голосов
/ 30 октября 2019

Скоро новые телефоны Huawei перестанут поддерживать Google Play и Google Mobile Services.

Huawei готовит собственную экосистему под названием HMS https://developer.huawei.com/consumer/en/service/hms/developer.html

Их магазин приложений называется "Галерея приложений Huawei" и имеет свою документацию здесь: https://developer.huawei.com/consumer/en/doc/30202

Они теперь отправляют сообщения разработчикам (включая меня), которые побуждают их выпустить приложение в свой магазин. Они утверждают, что им нужен только APK-файл, и никаких изменений в приложении не требуется.

Мои вопросы:

  • Является ли приложение, реагирующее на род, работающее без изменений кода?
  • Будет ли работать Firebase SDK?
  • Какова реальная скрытая стоимость поддержки приложения в другой экосистеме Android?

1 Ответ

0 голосов
/ 08 ноября 2019

Huawei уже выпустила свои мобильные сервисы Huawei и в настоящее время постепенно обновляет свои сервисы, чтобы соответствовать Google и Apple. Что касается вопросов, которые вы спрашиваете

  1. Будет ли работать реагирующее приложение без изменений кода?

Да , пока вы можетесоздать apk для загрузки в свою галерею приложений Huawei. Вам не нужно вносить какие-либо изменения в код.

Будет ли работать Firebase SDK?

Это зависит от типа сервиса, который вы пытаетесь включить в свое приложение, например, если вы пытаетесь использовать Google Login с использованием модуля аутентификации, предоставленного Firebaseтогда он не будет поддерживаться только на телефонах, которые не включают GMS (Google Mobile Services), которая является Huawei Mate 30 Pro.

Однако, если вы просматриваете уведомления. У Google есть Firebase Cloud Messaging, а у Huawei есть push-уведомление Huawei. Вы можете использовать любой из них, так как это зависит от архитектуры внутренних служб и будет поддерживаться на всех устройствах Android.

Какова реальная скрытая стоимость поддержки приложения в другой экосистеме Android?

Это полностью зависит от того, как вы спроектируете систему и службы, необходимые для вашего приложения. Допустим, вы хотите включить учетную запись Huawei для включения в свое приложение, а также включить HMS, но вы должны сохранить ее в Галерее приложений Huawei, а для Google у вас есть FCM и Google Login и Карты, тогда вам нужноподдерживать две разные ветви, которые имеют общую базовую функциональность, которая требует много времени и средств.

Если приложение просто собирается использовать только голые функциональные возможности, которые полностью зависят от логики и очень мало или вообще не имеют GMS / HMS, то вам не нужно поддерживать отдельные ветки для вашего проекта, достаточно одного,Вам просто нужно отправить версию в свою галерею приложений Google Play Publish и Huawei.

Если вы хотите использовать один репозиторий как для GMS, так и для HMS, то вам нужно проверить доступную службу, чтобы включить эту функцию.

Для GMS

val gmsAvailable = GooglePlayServicesUtil.getInstance().isGooglePlayServicesAvailable(mContext)

Для HMS

val hmsAvailable = HuaweiApiAvailability.getInstance().isHuaweiMobileServicesAvailable(mContext)

Так что при попытке использовать Google Login или Huawei Login или любые другие службы, это будет.

if gmsAvailable {
   // execute GMS Code
} else if hmsAvailable {
   // execute HMS Code
}

Примечание * Код выше приведен на Kotlin

...