Привет всем разработчикам! В этом разделе я собираю моменты, которые могут понадобиться при разработке других проектов, чтобы не забыть , да и вспомнить, как я решил когда то какой-то сложный момент. Возможно, это будет полезно кому то еще :) Этот раздел без дизайна, без воды, тут только те моменты, которые важны именно для разраба

Вопросы с токенами Huawei
HMS 

OAuth 2.0-based Authentication
get_token access
https://developer.huawei.com/consumer/en/doc/HMSCore-Guides/oauth2-0000001212610981

**************************
https://forums.developer.huawei.com/forumPortal/en/topic/0202810912208970010
send_push
push structure

{
    "validate_only": false,
    "message": {
        "android": {
            "notification": {
                "title": "test title",
                "body": "test body",
                "click_action": {
                    "type": 3
                }
            }
        },
        "token": ["pushtoken1"]
    }
}

token - array
****************************************
https://developer.huawei.com/consumer/en/doc/HMSCore-Guides/android-server-dev-0000001050040110
POST https://push-api.cloud.huawei.com/v1/[clientid]/messages:send

****************************************
https://masterixs.ru/lk/api/alternate/send_push_test_atata1_huawei.php
test

**********************************************
https://stackoverflow.com/questions/18913345/curl-posting-with-header-application-x-www-form-urlencoded
php curl send push HMS
//
// A very simple PHP example that sends a HTTP POST to a remote site
//

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"http://xxxxxxxx.xxx/xx/xx");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
            "dispnumber=567567567&extension=6");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));


// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server_output = curl_exec ($ch);

curl_close ($ch);

// further processing ....
if ($server_output == "OK") { ... } else { ... }

**********************************************
php json decode 
$json = '{"countryId":"84","productId":"1","status":"0","opId":"134"}';
$json = json_decode($json, true);
echo $json['countryId'];
echo $json['productId'];
echo $json['status'];
echo $json['opId'];
**********************************************
Встраиваем карты от Huawei в Android приложение
https://habr.com/ru/articles/521810/
**********************************************
Getting Started with Android
https://developer.huawei.com/consumer/en/doc/AppGallery-connect-Guides/agc-get-started-android-0000001058210705
**********************************************
com.huawei.agconnect plugin not found

https://stackoverflow.com/questions/71121109/com-huawei-agconnect-plugin-not-found

buildscript
{
   repositories
    {
     maven {url = uri("https://developer.huawei.com/repo/") }
    }
   dependencies
    {
      classpath('com.android.tools.build:gradle:8.1.1')
      classpath("com.huawei.agconnect:agcp:1.9.1.300")
    }
}
plugins 
{
  id 'com.android.application' version '8.1.1' apply false
  id 'com.android.library' version '8.1.1' apply false
}
build.gradle :app

plugins 
{
  id 'com.android.application'
  id 'com.huawei.agconnect'
}
android
{
 ...
}
dependencies 
{
  implementation 'com.huawei.agconnect:agconnect-core:1.9.1.300'
}
settings.gradle Project

pluginManagement {
repositories {
    google()
    mavenCentral()
    maven { url 'https://developer.huawei.com/repo/' }
    gradlePluginPortal()
 }
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
    google()
    mavenCentral()
    maven { url 'https://developer.huawei.com/repo/' }
 }
}
rootProject.name = "SomeProject"
include ':app'

**************************************************************
**********************************************
https://forums.developer.huawei.com/forumPortal/en/topic/0202798722342170172

https://stackoverflow.com/questions/36185774/release-debug-version-and-authorization-google

Ошибка, при релизном варианте не формируется токен HMS

What should I do if a 6003 error occurs when I try to connect to HMS Core?

get huawei hms push token failed, com.huawei.hms.common.ApiException: 6003: certificate fingerprint error https://stackoverflow.com/questions/36185774/release-debug-version-and-authorization-google Go to Build --- Select Build Variant -- On the left Side Select "Release" as build variant -- now go to module settings ( or try to run project , android studio will tell you about a error and click fix error button) --- Select Signing tab --- add your release key and passwords -- now goto build types -- select release -- on signing config select your release key config -- now run your project -- now run your signing report --- you can find SHA1 under release build -- enter that sha1 code on your developer console Вам необходимо найти код SHA1 для ключа выпуска и ввести его в консоли разработчика. (для меня консоль разработчика — это Firebase, некоторые люди могут использовать разные сервисы). Чтобы найти код SHA1. простой способ это Перейдите к сборке --- выберите вариант сборки -- слева выберите «Выпуск» в качестве варианта сборки – теперь перейдите к настройкам модуля (или попробуйте запустить проект, студия Android сообщит вам об ошибке и нажмите кнопку «Исправить ошибку») --- Выберите вкладку "Подписание" --- добавьте ключ выпуска и пароли -- теперь перейдите к типам сборки -- выберите выпуск -- при настройке подписи выберите конфигурацию ключа выпуска -- теперь запустите проект -- теперь запустите отчет о подписании -- - вы можете найти SHA1 в сборке выпуска - введите этот код sha1 на консоли разработчика. **********************************************

https://stackoverflow.com/questions/66875966/huawei-push-kit-com-huawei-hms-common-apiexception-6003-certificate-fingerpr

signingConfigs {


debug {
storeFile file(DEBUG_STORE_FILE)
storePassword DEBUG_STORE_PASSWORD
keyAlias DEBUG_KEY_ALIAS
keyPassword DEBUG_KEY_PASSWORD
}

release {
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
signingConfig signingConfigs.release
}
}

**************************************************************
OpenStreetMap

https://habr.com/ru/articles/143177/

Переход с Google Maps на OpenStreetMap osmdroid https://github.com/osmdroid/osmdroid/wiki https://github.com/osmdroid/osmdroid/wiki/How-to-use-the-osmdroid-library-(Kotlin) **************************************************************
Отправка пуш уведомлений в иос
https://developer.apple.com/account/resources/authkeys/list тут создаем ключ APNKey как создадастся, берем оттуда Key ID Team ID Все загружаем в консоль файрбасе Project settings - Cloud Messaging Отправка пуш такая же как и для андроид в принципе Документация https://firebase.google.com/docs/cloud-messaging/ios/client?hl=ru **************************************************************
ошибка токена Firebase Google
Вкратце: нужно заглянуть в Google Cloud Console > API и службы > Учетные данные > Ключи API и взять оттуда правильный ключ Android (нажмите «SHOW KEY» справа), а затем поместить его в файл Firebase google-services. .json — api_key — current_key (как показано на картинке ниже). Внезапно та же ошибка (FIS_AUTH_ERROR) появилась в одном из моих приложений, где я использую Firebase Cloud Messaging. Все работало без проблем, и вдруг приложение не смогло получить токен приложения/устройства с помощью getToken(). После нескольких часов исследований я обнаружил кое-что, что решило мою проблему. Я решил проверить значения в файле google-services.json, чтобы узнать, соответствуют ли они соответствующим параметрам в консоли Firebase в настройках моего проекта. Сначала я загрузил новый файл google-services.json, который сравнил с тем, который уже был у меня в папке моего приложения, и они оба были одинаковыми, без каких-либо различий. В консоли Firebase я проверял один за другим идентификатор проекта, номер проекта и т. д. Когда я добрался до ключа веб-API, его значение выглядело очень похоже на api_key из google-services.json, но оба значения были разными. Тогда я решил отредактировать файл и вместо api_key поставил значение из Web API Key. Потом я почистил проект и пересобрал, после чего все снова стало работать просто идеально. Источник: https://stackoverflow.com/questions/60698622/java-io-ioexception-fis-auth-error-in-android-firebase **************************************************************
scrollview in swift not scrolling
https://www.youtube.com/watch?v=WLwQE3f2ZYg **************************************************************
BottomNavigationView элементы навигации текст, отображаемый над значком
************************************************************** Я столкнулся с той же проблемой после обновления с 1.4.0 до 1.5.0, но в моем случае проблема была вызвана тем, что я использовал тему для BottomNavigationView, которая унаследована от Widget.Design.BottomNavigationView: Посмотрев на Widget.Design.BottomNavigationViewXML, я понял, что в версии 1.5.0 minHeightбыл добавлен атрибут, вызывающий проблему, с которой мы столкнулись. Поэтому я добавил 0dpк своему стилю следующее:

И проблема была решена! Источник **************************************************************