Huawei уже выпустила свои мобильные сервисы Huawei и в настоящее время постепенно обновляет свои сервисы, чтобы соответствовать Google и Apple. Что касается вопросов, которые вы спрашиваете
- Будет ли работать реагирующее приложение без изменений кода?
Да , пока вы можетесоздать 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