Прощай, Huawei и здравствуй TD Tech!

dbcbbdafd Новости

А что там по трудозатратам?

Разработка первой версии у нас заняла около 3,5 недель. Во второй раз мы потратили немного больше времени —  около пяти недель. Вы спросите: «Почему так долго?». Хоть за первый раз мы и победили львиную долю проблем, во второй раз они тоже все равно возникали (долго пытались пофиксить сборку, воевали с Huawei-плагином).

Также мы попутно отрефачили всю работу с push-уведомлении в приложениях и интегрировали поддержку HMS в приложение для работодателей. Аналитику мы в этот раз сделали правильно и теперь можем предоставить честные результаты.

С чего все началось?

Прощай, Huawei и здравствуй TD Tech!

Что случилось?

Президент США Дональд Трамп

, поставил китайскую компанию Huawei в сложную ситуацию. Она потеряла возможность работать с ОС Android, фирменными сервисами Google и контакты с американской корпорацией. Причем право использовать Android Huawei потеряли во всем мире, а не только США.

15 мая этого года Министерство торговли США внесло Huawei в Entity List, запретив ей закупать электронные компоненты и запчасти у американских компаний без одобрения правительства США. 21 мая ограничение было временно снято, ради «минимизации сбоев у клиентов», но с 19 августа оно будет действовать уже на постоянной основе.

В какой момент у huawei начались серьезные проблемы?


В марте 2021 года с китайцами прекратила сотрудничество крупнейшая ритейлерская сеть США Best Buy. Через несколько недель Пентагон запретил военным

. Конгресс «попросил» Google прекратить сотрудничество с Huawei.

Обвинения со стороны США в краже информации государственного значения привели к тому, что к Huawei стали с опаской относиться и другие страны. С ней перестали работать операторы связи Австралии, Японии и Великобритании.

В конце 2021 года арестовали финансового директора Huawei — Мэн Ванчжоу. Из Канады ей пришлось отправиться в США на, фактически, допрос. Там выяснилось, что Huawei обвиняют в нарушении эмбарго на поставку телекоммуникационного оборудования в Иран.

И что теперь?


США могут и отменить указ президента после того, как утихнет конфликт с Китаем. Но когда это случится и случится ли вообще, неясно.

Основатель Huawei Жэнь Чжэнфэй сообщил, что компания готова к ограничениям, введенным со стороны США. Внесение в черный список сильно не отразится на работе китайской корпорации. Жэнь уточнил, что темпы развития компании могут замедлиться, но «до отрицательного уровня дело не дойдет».

Что делать, если отключат магазин приложений для смартфонов huawei?

Если отключат Google Play для уже выпущенных телефонов, приложения можно будет загружать из альтернативных каталогов или напрямую с помощью файлов *.APK. Это неудобно, но если не останется иного выхода, то путь только такой.

Отняли android, отнимем процессоры и уничтожим их снова. акт второй

В Huawei все никак не умирали, что, безусловно, нервировало людей с дубинками. Следующим актом стал запрет на поставки оборудования для производства процессоров, программ для их разработки, а заодно и продаж готовой продукции, то есть тех самых чипсетов.

Сильный ход? Безусловно. Убивает он Huawei? Пожалуй, что нет, ведь компания повторяет ровно то, что сделала с Android. Начинает создавать свои решения. Это займет больше времени, это будет сложнее. Но у Huawei есть время, есть средства и поддержка государства, которое уже рассматривает частную компанию как жертву атаки США и обеспечивает защиту на всех уровнях. Но пока не предпринимает ничего в ответ.

Давайте поставим вопрос иначе, чтобы посмотреть на ситуацию. Может ли Америка действительно перекрыть поставки готовых процессоров для Huawei? На бумаге это выглядит именно так, ведь если кто-то поставит процессоры, то последуют санкции, и убытки будут огромны.

Но ведь санкции не работают или работают плохо, мы это знаем точно, ведь живем в стране, чья экономика “порвана в клочья”, по мнению президента США в 2021 году. А еще мы изолированы от всего мира. Примерно то же самое происходит с Huawei, только на другом уровне.

Продается в этом мире все, и тут вопрос только в стоимости. Если Huawei будет платить за риск чуть больше, то кто-нибудь обязательно начнет поставлять процессоры для их устройств, в этом нет ни малейших сомнений. Будет ли это легально? С точки зрения США, нет.

И они попытаются остановить продажи таких процессоров. Смогут? Точно нет, так как в Китае они не имеют никакого влияния. Вне Китая множество стран не поддержат попытки США диктовать условия. И мир разделится, это происходит уже на примере инфраструктуры для 5G.

И пока теряют от этого только американские компании, так как они лишились крупного клиента. Но тут все намного сложнее. Ведь теперь Huawei создает свои средства разработки, свое оборудование для производства. И начинает делать это на старых техпроцессах (например, 28 нм), что вызывает улыбку. Да, это безусловный откат обратно, но он временный, компания уже доказала, что умеет быстро развиваться.

Но знаете, чего еще не сделала Huawei? Не дала сдачи. Ведь если санкции дойдут до ситуации, когда ограничения будут угрожать существованию компании, то она может формально запретить использование своих патентов в области 5G в США. Это действие того же уровня, что и действия политиков США.

И формально Америке ничего не останется, кроме как наплевать на международные договоренности, систему патентов и просто использовать чужие разработки. У Huawei около трети ключевых патентов для 5G, и компания может запретить их использование из-за недружественных действий США.

Все развитие ситуации идет в этом направлении, что в конечном счете приведет к разрушению текущего рынка. Например, внутри Китая кража технологий станет героическим поступком на благо развития страны, но ровно то же самое произойдет и в других уголках света.

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

Проблем Huawei создали массу и затормозили развитие компании, в этом нет никаких сомнений. Но уничтожить компанию за два года так и не смогли. Размер дубины каждые полгода увеличивается, а воздействие на Huawei при этом все слабее и слабее. Мне кажется, что пока американские политики не озаботятся изучением рынка и хотя бы минимальным пониманием того, как он работает, забег по граблям будет продолжаться.

Потери американских компаний в этой войне пока перевешивают все, что потеряла Huawei. Но зато можно повторять из раза в раз, что компания уничтожена, у нее нет шансов и она “порвана в клочья”. Обычно это означает, что все у компании в будущем станет хорошо.

Мы отняли у них android, и они уничтожены! акт первый

Первым серьезным проявлением санкций стал запрет американским компаниям-поставщикам IT-решений работать с Huawei. Удар был нанесен по рынку мобильных устройств и не только. Получилось так, что Google официально не смогла работать с Huawei, предоставлять новые версии Android и помогать в разработке софта для устройств.

Один из ключевых партнеров неожиданно испарился, а сотрудникам Google запретили любое, даже неформальное общение с теми, кто работает на Huawei. Тут же выяснилось, что американские чиновники выстрелили себе в ноги, так как многие небольшие операторы использовали оборудование Huawei, заменить его чем-то было невозможно.

Попытки американских компаний объяснить чиновникам, что эти санкции в первую очередь бьют по их бизнесу, по их интересам, не увенчались успехом. Политики и бизнесмены говорили на разных языках. Первые говорили: “Смотрите, какая у нас дубина, мы ей как вдарили, эта компания уже мертва, подождите немного”.

Вторые крутили пальцем у виска и утверждали, что пока ударили только по ним и лишили их денег. Ведь Huawei встроила себя в мировую цепочку поставок – компания всегда стремилась закупать компоненты у поставщиков по всему миру, до трети расходов приходилось на американские компании.

Кто-то из лобби Кремниевой долины нашел изящный выход. Чиновникам предложили бить по самому больному, отнять Android, без которого Huawei не сможет быть конкурентом в мобильных устройствах. Но при этом создаст что-то свое и будет продавать эту систему на родном рынке.

В 2021 году никто не мог представить, что Huawei сможет создать собственную альтернативу магазину приложений от Google, заменить их сервисы и сделать это под невероятным давлением извне. В короткие сроки компания на бесплатной версии Android создала свои устройства с Huawei Mobile Services (HMS).

Huawei мертва, смартфоны Huawei исчезают, 5G уничтожен – пепел торговой войны

Это не просто титанический труд, а то, что сложно представить. Сравнить можно только с космической гонкой на заре полетов в космос. Путем напряжения всех ресурсов в Huawei создали рабочую альтернативу Android c GMS. Широкие продажи смартфонов с HMS в России начались этой весной, и они показали, что альтернатива устраивает покупателей, те не видят большой разницы.

Действия американских чиновников создали гиганта, который теперь не зависит от Google, более того, создает собственную систему. Фактически США лишились своего главного инструмента по сбору информации о жителях других стран. В Huawei ничего не передают в Америку о своих пользователях, да и сам сбор информации устроен иначе, ее банально меньше.

Можно утверждать, что Huawei не только выстояла, но создала альтернативу Android с GMS-сервисами. И это уже огромное достижение.

Теперь пара слов про громкие заголовки и статьи о том, что Google лишила Huawei обновлений безопасности для Android и теперь смартфоны компании станут дырявыми, их можно будет взломать. Ни один смартфон с HMS и так не получал обновления безопасности Android, компания создавала их самостоятельно.

Для смартфонов, созданных в рамках GMS, такие обновления приходили от Google, но теперь их не стало. Что это значит? Да ровным счетом ничего, в Huawei продолжат выпускать обновления и отправлять их на пользовательские устройства. Их можно найти в массе источников, и запретить компании это делать невозможно.

Серьезнее звучит угроза о том, что SafetyNet API не увидит обновления безопасности и поэтому банковские приложения перестанут работать на тех смартфонах, что выпущены с сервисами Google. Как бы помягче выразиться? Это дичь!

Почитайте про этот API вот тут.

В теории, Google может использовать этот или любой иной инструмент для того, чтобы затруднить работу смартфонов Huawei/Honor, что вышли на GMS до 2020 года. Но зачем и как? Юридически для этого нет ни одной предпосылки. Наличие патчей безопасности никак не сказывается на тех или иных услугах.

Например, Android Pay, в теории, не должен работать без последних обновлений безопасности. На практике у меня он работает на смартфоне 2021 года, где нет ни одного обновления за это время. Двойственный подход не принесет компании ничего хорошего, а только затруднит для Google работу с партнерами.

Карта Google в игре против Huawei уже разыграна, и выжать что-то еще из нее невозможно. В данный момент Америка проиграла в этом, Huawei смогла создать альтернативу Google. Тяжело, небыстро, но развитие идет в правильном направлении, и оно не останавливается. Повторюсь, вопрос времени, когда Huawei начнет распространять HMS для других игроков.

Huawei share

Чтобы экосистема разворачивалась максимально удобно, компания придумала функцию HUAWEI Share. Работает это так: подносите мобильник к ноутбуку, гаджеты мгновенно друг друга узнают, после чего вы разрешаете соединение. Теперь экран смартфона проецируется на лэптоп.

Такая фишка есть и в других устройствах бренда. Аналогичным образом можно связать телефон с планшетом и монитором. Или наоборот. Всё происходит бесшовно, нужно лишь положить один аппарат рядом с другим. Важный нюанс: у всех устройств будет один интерфейс. Даже если это телевизор HUAWEI Vision S или оболочка для смарт-системы автомобиля.

Архитектура решения и ключевые моменты в коде

Мы выделили отдельный модуль platform-services:common, где мы описали абстракции над платформенными сервисами. И эти абстракции не зависят ни от GMS, ни от HMS напрямую.

В отдельном модуле platform-services: integration мы описали логику, как должны сопоставляться интерфейсы из common-модуля с их конкретными платформенными реализациями. Сами реализации под каждую платформу мы поместили тоже в отдельные модули. Получились два платформозависимых модуля GMS и HMS.

Еще есть модуль fallback с заглушечными реализациями сервисов. Он нужен на тот случай, когда на девайсе пользователя вообще, например, нет никаких мобильных сервисов. Или когда у пользователя HMS-девайс, и он в приложении встречает фичу, которая пока что доступна только для GMS-девайсов.

Рассмотрим, как это работает на примере пушей. Вот так выглядит платформонезависимый интерфейс для получения PushToken, который описан в нашем platform-services:common  модуле.

interface PushTokenSource {
    fun getPushTokenSingle(): Single<String>
}

Его платформенная реализация через Huawei Mobile Services. 

@InjectConstructor
class HuaweiPushTokenSource(
    private val context: Context,
    private val schedulersProvider: SchedulersProvider,
) : PushTokenSource {
    companion object {
        private const val TOKEN_SCOPE = "HCM"
    }
    override fun getPushTokenSingle(): Single<String> {
        return Single.fromCallable {
            val options = AGConnectInstance.getInstance().options.getString("client/app_id")
            val instanceId = HmsInstanceId.getInstance(context)
            val token = instanceId.getToken(appId, TOKEN_SCOPE)
            if (token.isNullOrEmpty()) throw PushTokenException("Push token is null")
            token
        }.subscribeOn(schedulersProvider.backgroundScheduler)
    }
}

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

@InjectConstructor
class HuaweiPlatformServicesDetector(
    private val context: Context,
) : PlatformServicesDetector {
    override fun isAvailable(): Boolean {
        val huaweiApiAvailability = HuaweiApiAvailability.getInstance()
        val result = huaweiApiAvailability.isHuaweiMobileServicesAvailable(context)
        return result == ConnectionResult.SUCCESS
    }
}

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

@InjectConstructor
class PushTokenSourceProvider(
    private val firebasePushTokenSource: FirebasePushTokenSource,
    private val huaweiPushTokenSource: HuaweiPushTokenSource,
    private val fallbackPushTokenSource: FallbackPushTokenSource,
    private val platformServices: PlatformServices,
) : Provider<PushTokenSource> {
    override fun get(): PushTokenSource {
        return when (platformServices.getPreferredPlatformServices()) {
            Type.GOOGLE -> firebasePushTokenSource
            Type.HUAWEI -> huaweiPushTokenSource
            null -> fallbackPushTokenSource
        }
    }
}

Ну и по месту использования мы просто инжектим общий платформонезависимый интерфейс из модуля common.

@InjectConstructor
internal class PushTokenManagerImpl(
    private val pushTokenSource: PushTokenSource,
    /*...*/
) : PushTokenManager {
    /*...*/
   private fun getTokenSingle(): Single<String> {
        return pushTokenSource.getPushTokenSingle()
            .doOnError {
                clearPushState()
                Timber.tag(LOG_TAG).e(it.asNonFatal())
            }
            .doOnSuccess { token ->
                saveToken(token)
                Timber.tag(LOG_TAG).d("Push token is $token")
            }
    }
}

Если мы по какой-то причине в будущем решим отказаться от единой для всех платформ сборки, то мы не будем рефакторить большую часть приложения, а лишь изменим детали реализации integration-модуля, который сопоставляет интерфейс с их реализациями и переделаем связывание в нем из runtime в compile time.

Еще надо отметить, что если у Huawei какие-то сервисы будут работать лучше, или они будут дешевле. Или будет такая ситуация, когда у Huawei эта реализация есть, а у Google ее еще нет (или вообще нет), то можем использовать для Huawei пользователей именно Huawei-реализацию.

Будут ли обновления для уже выпущенных моделей huawei под android?

Если прошивки уже выпущенных моделей и перестанут обновляться, то телефоны все равно останутся работоспособными. Установленные приложения продолжат работать и, вероятно, получать апдейты.

В крайнем случае можно установить альтернативную прошивку, например, LineageOS. Она разработана для таких моделей смартфонов Huawei как Honor View 10, Honor 4/4X, Honor 5X и Huawei P20 Pro.

Где это может пригодиться?

Сценариев эксплуатации много. Допустим, вы сделали презентацию на смартфоне, но показывать её на 7-дюймовом дисплее неудобно. Гораздо лучше использовать для этого ноутбук или монитор, подключённый к проектору. Кладёте телефон рядом с нужным устройством, они соединяются, и можно смело транслировать презентацию на любую аудиторию.

Другой вариант. У вас есть ультрабук MateBook 14. Хорошее офисное устройство, но иногда 14-дюймовой диагонали не хватает. Через HUAWEI Share вы подсоединяете лэптоп к монитору и получаете внушительный дисплей. Между экранами легко перетаскивать приложения, копировать текст и так далее.

Ещё экосистема пригодится в тех случаях, когда нужны сенсорный дисплей и стилус, но возможностей планшета маловато. Например, вы запускаете на ноутбуке мощный фоторедактор. Затем перетаскиваете окошко на HUAWEI MatePad. Далее можно редактировать снимки стилусом — так комфортнее и быстрее. Но у планшета не очень большой дисплей. Как его увеличить?

Очень просто: подсоединить MatePad к монитору. Теперь у вас на просторном экране запущен фоторедактор, в котором можно работать электронным пером. Ещё один немаловажный момент: настройка подобной связки занимает минимум времени. Достаточно нажать пару кнопок и положить гаджеты рядом.

HUAWEI связала между собой все значимые устройства бренда. Теперь можно бесшовно переключаться между гаджетами, выполняя задачи на разных аппаратах.

Динамика доли hms-only устройств

С горем пополам мы победили все трудности и отправили эту сборку в свободное плавание. Мы периодически проверяли, сколько же там пользователей HMS-only устройств. На самом деле, здесь мы совершили небольшую ошибку. Она не такая уж страшная, но довольно неприятная: мы не добавили аналитику конфигурации сервисов на устройстве — только HMS или  GMS HMS.

Таким образом, мы анализировали тренд HMS-only устройств по нашим подпискам на пуши. Мы брали слепок базы и смотрели, какой процент подписан на Huawei push. К сожалению, этот слепок базы долго не хранится, поэтому те данные я показать не могу. Однако мне очень хотелось показать вам тренд, поэтому я вам продемонстрирую другой график: сколько было пользователей у той самой версии, которую мы отправили в свободное плавание.

Можно заметить, что пользователей потихоньку становится всё больше и больше:

Почему эта статистика не до конца честная? Потому что пользователям ничего не мешало поставить сборку на любом устройстве из Huawei магазина. Но на самом деле, этот показатель очень близкий к реальному, так как обычно пользователи предпочитают более новую версию из Google Play.

Как устроена система

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

Скажем, у вас есть лэптоп, дисплей и планшет, причём все модели от HUAWEI. Вы включаете на ноутбуке какую-нибудь программу, перетягиваете окно на планшет, а его цепляете к монитору. Благодаря этому изображение выводится на большой экран, которым можно управлять через сенсорную панель планшета. И это при том, что изначально программа запускалась на ноутбуке.

Моя попытка номер 2

За прошедший год над приложением для соискателей у нас работало три с половиной команды разработки. Получилось, что приложение ушло вперед уже очень далеко: у него заметно улучшился пользовательский опыт и существенно подросли целевые метрики. Это являлось достаточным обоснованием для бизнеса для запуска второй кампании по интеграции HMS.

На этот раз пришло время интегрировать HMS основательно: с архитектурой, правильно и на века. Вспоминая проблему белого экрана, мы приняли безоговорочное решение создавать единую сборку на оба магазина приложений, не делать никаких изолированных веток, не заниматься ерундой и делать сразу через архитектурное разруливание двух мобильных сервисов в runtime. Также поддерживаемых сервисов стало еще меньше чем в пилотке — мы отпилили еще и работу с картой.

Почему мы вообще решили сделать единую сборку? Во-первых, это проще в инфраструктурном плане. Не нужно отдельно собирать и тестировать сразу две сборки, и одну сборку проще поставлять в Store. Во-вторых, появляется возможность смешанно предоставлять фичи приложения для пользователей, у которых доступны как Huawei-сервисы, так и Google-сервисы.

Не только смартфоны, но и носимые гаджеты, планшеты и телевизоры сменят логотип huawei на td tech

Думаю, все хорошо осведомлены, в какой ситуации сейчас находится Huawei. Из-за того, что власти США признали компанию угрозой национальной безопасности, ей запретили использовать технологии и комплектующие, созданные американскими компаниями. Чтобы как-то удержаться на плаву и обойти блокаду, Huawei прибегнула к разного рода уловкам. Одна из последних — выпуск собственных устройств под другим брендом.

Нести в массы продукты компании доверили TD Tech, а обставили все так, что она получила лицензию на использование наработок Huawei. На данный момент в активе компании только один «переобутый» смартфон — TD Tech N8 Pro, который по сути является ничем иным как Huawei Nova 8 Pro. Перевыпустит компания под своей маркой и Huawei Mate 40E 5G.

На этом ребрендинг не завершится. Под брендом TD Tech выйдут все актуальные смартфоны Huawei серий Mate, P, Nova и Enjoy. А также под новой маркой выйдут смарт-часы, планшеты, смарт-телевизоры и фитнес-браслеты. Нейминг устройств должны изменить. В какой срок будет перевыпущены устройства Huawei под брендом TD Tech, информации нет.

Но ведь смартфоны huawei продавались в сша?

Все так. Спустя пару лет компания стала поставлять на мировой рынок мобильные устройства. Дела шли настолько успешно, что Google в 2021 году даже заказала у них создание смартфона Nexus 6P. Телефон появился в американской рознице, однако операторы его не продавали, а без их поддержки заметного роста не получилось. Через пару лет Huawei планировала продавать в США смартфон Mate 10 Pro,

— насколько можно понять, на отказ операторов сотрудничать с китайской компанией повлияло правительство США.

Несмотря на сложности, в 2021 году объем продаж мобильных устройств Huawei вырос до 200 миллионов единиц.

Но как же huawei дальше без android?

image

Представители компании уже заявили, что готовы к запретным мерам со стороны США. Осенью Huawei представит собственную операционную систему. Исполнительный директор по потребительскому сектору Юй Чэндун (также известен как Ричард Юй) сообщил, что ОС собственной разработки «позволит объединить в единое целое смартфоны, компьютеры, планшеты, телевизоры, автомобили, «умные» носимые приборы и другие устройства». «ОС Huawei будет совмещать в себе все необходимое из Android и сети Интернет», — рассказал Юй.

Первый пошёл!

Для максимальной скорости и минимизации рисков, на тот случай, если всё-таки мобильные сервисы от Huawei не выстрелят, мы приняли решение:

HMS-фичи, которые мы представили в нашей пилотной версии – это карты, пуши, гео-локации, аналитика крашей, которую, как потом оказалось, можно было не делать, потому что на HMS-девайсах нормально работает Firebase Crashlytics. Ну и всякое по мелочи. 

Остальные фичи Google мы просто отключили без HMS-аналога. У нас получилась довольно урезанная версия приложения, да еще и ревизия отставала от актуальной, на тот момент, версии нашего приложения в Google Play и не имела перспектив ближайших обновлений. При таком подходе, естественно, что-то пошло не так.

Проблемы первой итерации: tooling

Отдельно следует сказать про HMS Tooling для разработки. На момент разработки нашей пилотной версии он был далек от идеала, и мы столкнулись с рядом проблем. 

Одна из них – это аномальное увеличение времени синк проекта, когда ты добавляешь всё больше и больше HMS-зависимостей к своим Gradle-модулям.

Другая проблема заключалась в конфликте между версиями некоторых библиотек при подключении к одному и тому же модулю. 

Уже во второй итерации у нас была проблема с тем, что сборки падали из-за Gradle-плагина AG Connect. 

Но со всеми проблемами нам очень оперативно помогали ребята из Huawei, которым мы всё репортили. На данный момент все эти проблемы уже пофикшены. Здесь прям отдельный респект комрадам из Huawei, которые сопровождают платформу. У вас очень здорово получается.

Проблемы первой итерации: подпись и релиз

Кроме проблем с разработками, на самом деле, еще были вопросы и с тем, как релизить. Самое первое, что нам нужно было решить — это какой вообще подписью подписывать. Было два варианта — сгенерить новую подпись и использовать ту которой у нас подписывались приложения в Google Play Store.

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

Таким образом, если вы выбрали одинаковую подпись, то:

Мы решили выбрать этот вариант, как более гибкий. Также мы хотели для пользователей, у которых установлены оба типа мобильных сервисов, отдавать именно GMS-сборку из App Gallery, поскольку у таких пользователей GMS-сборка в нашем случае была более полноценной. Для этого мы использовали фичу App Gallery для совместных релизов нескольких APK.

Здесь нас поджидала проблема конфликтов version code. Дело в том, что App Gallery не позволяет загружать артефакты с меньшей версией, чем были загружены. Это вызывало неудобство при перевыпуске —мы несколько раз пересобирали APK только ради того, чтобы поднять version code до нужного.

Проблемы первой итерации: устройства и эмуляторы

Наш первый челлендж был связан с девайсами. HMS и AppGallery можно поставить на любой девайс, но это покрывает не все случаи для отладки. Например, при работе с гео-локацией и push-уведомлениями вам необходим телефон с EMUI, то есть с Huawei надстройкой над Android.

Мы попробовали облачные девайсы через только что появившийся на тот момент Huawei Cloud Debugging, но, к сожалению, устройства там были достаточно нестабильными и периодически отключались. Стабильно отлаживать на них было тяжело. Я надеюсь, сейчас ситуация с ними улучшилась, так как появилась возможность подключаться к девайсам из фермы напрямую из Android Studio по ADB. Если вы недавно пробовали Huawei Cloud Debugging, то, пожалуйста, расскажите об этом в комментариях.

Кроме того, отсутствие Huawei эмуляторов исключает возможность запуска End-to-end тестов, что неплохо ломает флоу релизов.

Однако стоит отметить, что ребята из Huawei прислали нам несколько реальных устройств. Одно из них получил разработчик, который тогда занимался интеграцией HMS, другое — наш тестировщик, а третий мы решили пошарить сразу на всех разработчиков, поместив его в ферму устройств Open STF.

Лайфхак по фермам

Ссылки по теме

Поделиться: 

Мы в социальных сетях:

Честная динамика доли hms-only устройств

С момента нашего релиза уже прошло больше двух месяцев и можно посмотреть статистику по установкам/обновлениям на эту версию и выше.

От месяца к месяцу наблюдается рост доли HMS-only устройств на фоне падения доли HMS GMS устройств и сохранения доли GMS-only девайсов. Побочное интересное наблюдение — это доля HMS-only устройств Huawei: она достаточно бодро растёт.

Итоги

Считаем ли мы, что интеграция в два этапа была ошибкой? В умных книжках пишут, что такой подход называется прототип и решение воспользоваться именно им было абсолютно правильным. Если бы мы навернули на первом этапе нормальную архитектуру, то потратили бы сильно больше времени и создали слой лишних абстракций, от которых нам возможно пришлось бы потом избавляться.

Окупится ли разработка и интеграция с Huawei сейчас? На этот вопрос вам нужно ответить самим. Я постарался дать максимально полные данные, чтобы на основании их вы могли принять решение. Я показал вам текущую статистику и динамику за последний год. Тренд достаточно ровный — можете пофантазировать, что будет через месяцок-другой.

Стоит ли сразу делать хорошую архитектуру, если вы пойдете в интеграцию Huawei сейчас? На мой взгляд, да. Вот сейчас как раз тот момент, когда уже не стоит клепать что-то на коленке, потому что лучше сразу сделать правильно и потом уже с этим жить. Потому что проблемы, которые у вас возникнут дальше с интеграцией на коленке в отдельной ветке, они реально не стоят того, сейчас вы проиграете, потому что HMS сервисы стали реальностью.

Делать реализацию с нуля или есть готовое решение? Как видите, реализация довольно простая, но если хотите библиотеку, то рекомендую посмотреть на UniversalMobileServices  от @kirich1409. 

Надеюсь, наша история поможет вам понять, нужна ли интеграция HMS прямо сейчас, и подобрать правильную реализацию, избежав наших ошибок. 

Маленький опрос для большого исследования

Мы проводим ежегодное исследование технобренда крупнейших IT-компаний России. Нам очень нужно знать, что вы думаете про популярных (и не очень) работодателей. Опрос займет всего 10 минут, а результаты мы по традиции опубликуем на хабре!

Расскажи, что ты думаешь здесь. 

Оцените статью
Huawei Devices