Jump to content

Yaroslav Brovin

Administrators
  • Posts

    2,552
  • Joined

  • Last visited

  • Days Won

    643

Everything posted by Yaroslav Brovin

  1. Hello dear Delphi developers, We are happy to share with you two new FGX Native courses in Italian, which Claudio Piffer @claudio.piffer designed and prepared for you. Claudio Piffer is strong Delphi Developer with wide knowledge of different technologies. He often speaks at various Delphi conferences and shares his knowledge with other developers. For us, he is known for two speeches at the DelphiDays conference in Italy (2020, 2022), on which he clearly showed and told the possibilities of FGX Native in the shortest possible time. Claudio has prepared two courses that can help you go into the world of mobile development with Delphi and FGX Native: Basic. Mobile developement with FGX Native. Advanced. Advanced concepts in FGX Native. You can find the course description, topics and lessons covered by clicking on the links above. Thank you, Yaroslav Brovin
  2. После долгих и упорных поисков удалось найти обходное решение, чтобы отобразить кнопку встраивания фрейма на форму. Поддержка фреймов добавлена в 1.15.3.0.
  3. Надо сравнивать с FMX. Сборка, запуск и отладка в принципе в делфи не шустрая. Она не сравниваться по скорости с Android Studio.
  4. Это очень странно... Проверьте тогда без виртуалки и дайте знать. Сколько времени занимает запуск FMX приложения?
  5. Добрый вечер, Только первый запуск выполняется долго. Последующие должны выполняться на порядок быстрее. Уточните, у вас каждый запуск одного и того же проекта занимает 3-5 минут?
  6. Добрый вечер, Начиная с FGX Native 1.15.3.0, появится новый компонент для сборка аналитики использования вашего приложения TfgFirebaseAnalytics. Данный компонент позволяет собрать информацию об использовании вашего приложения пользователями. Например, вы можете определить: Какую форму пользователи открывают чаще всего. Какие версии вашего приложения успешно запускаются. Сколько пользователей первый раз запустили приложение. Какие покупки чаще всего делают в вашем приложении. С какими компонентами чаще всего взаимодействуют. И многое другое. Подробности о Firebase Analytics: https://firebase.google.com/docs/analytics?authuser=0 Настройка использования Чтобы использовать новый компонент, необходимо выполнить общую регистрацию FGX Native приложения в Firebase консоли (Шаги такие же, как регистрация приложения для использования Push-уведомлений): Настройка Firebase для iOS. Настройка Firebase для Android. Дополнительно для Android нужно вручную добавить зависимость на библиотеку "com.google.firebase:firebase-analytics:21.2.0" https://forum.fgx-native.com/blogs/entry/56-интеграция-android-библиотек-просто-и-быстро-с-11520/ Если вы не выполните корректную настройку приложения, то на iOS запуск приложения закончится ошибкой старта, а в Android ни одна метрика не будет отправлена в облако Firebase. Отправка событий Чтобы начать отправку событий необходимо разместить новый компонент TfgFirebaseAnalytics. Рекомендуем разместить его на общем дата модуле, чтобы вы могли пользоваться одним экземпляром компонента в любом месте. Однако, вы можете использовать и несколько экземпляров данного компонента. Как только вы размещаете его в приложении, так сразу компонент начинает автоматический сбор базовых событий в вашем iOS/Android приложении, такие как: Определение первого запуска приложения Статистику использования разных версий вашего приложения. Сбор сессий использования. И тд. Такие события доступны в консоли Firebase в разделе Analytics -> Realtime. Помимо автоматического сбора событий, вы можете выполнять отправку своих событий. Каждое событие, происходящее в вашем приложении, характеризуется: Name - имя. Строковый код события. Firebase предлагает готовые коды событий. С ними можно познакомиться на этой странице. Вы можете использовать, как готовые коды, так и свои собственные. Например: событие select_content предназначено для информирования о том, что пользователь выбрал важный для вас контент (нажал на кнопку, открыл форму и тд). Parameters - параметры в формате - название параметра - значение. Каждое событие может сопровождаться соответствующими параметрами. Firebase описывает связанные с событиями параметрами, которые вы можете отправить. Например, событие select_content сопровождается двумя параметрами: content_type и item_id (документация) Для отправки события в компоненте есть два метода, позволяющие это сделать: /// <summary> /// Отправляет на сервер Firebase событие с именем <c>AName</c>, параметрами c именами <c>AKeys</c> и значениями /// <c>AValues</c>. /// </summary> procedure LogEvent(const AName: string; const AKeys: TArray<string>; const AValues: array of const); overload; /// <summary>Отправляет на сервер Firebase событие с именем <c>AName</c>.</summary> procedure LogEvent(const AName: string); overload; Чтобы узнать, что пользователь нажал на кнопку покупки в вашем приложении, необходимо добавить в обработчик вызов метода LogEvent: procedure TFormMain.fgButtonBuyTap(Sender: TObject); begin fbAnalytics.LogEvent('select_content', ['content_type', 'item_id'], ['Button', 'Buy subscription']); end; Определение открытых экранов/форм Помимо отправки любых событий, компонент TfgFirebaseAnalytics позволяет отправлять информацию о том, какие формы/экраны открывает пользователь. Чтобы воспользоваться данной возможностью, необходимо в момент отображения формы передавать на сервер Firebase информацию о текущей форме. /// <summary> /// Задает текущее название экрана, которое определяет текущий визуальный контекст в вашем приложении. /// Это помогает определить области в вашем приложении, где пользователи проводят свое время и как они /// взаимодействуют с вашим приложением. /// </summary> procedure SetCurrentScreen(const AScreenName: string; const AScreenClassName: string); Для удобства отслеживания, когда форма появляется на переднем плане, в FGX Native 1.15.3.0 для формы TfgForm добавлены два новых события: /// <summary>Вызывается, когда форма выходит на передний план на экране.</summary> /// <remarks>Не вызывается для встроенных форм-фреймов.</remarks> property OnActivate: TNotifyEvent read FOnActivate write FOnActivate; /// <summary>Вызывается, когда форма уходит с переднего плана на экране.</summary> /// <remarks>Не вызывается для встроенных форм-фреймов.</remarks> property OnDeactivate: TNotifyEvent read FOnDeactivate write FOnDeactivate; Именно их мы рекомендуем использовать для указания текущего экрана в Firebase Analytics. Например, код по отображению главной формы может выглядеть так: procedure TFormMain.fgFormActivate(Sender: TObject); begin Shared.fbAnalytics.SetCurrentScreen('Main form', ClassName); end; Первым параметром указывание название экрана, вторым - класс. Общие настройки Помимо главной задачи отправления статистики в Firebase Analyitcs, вы можете выполнять базовые настройки компонента: /// <summary> /// Удаляет все аналитические данные для этого приложения с устройства и сбрасывает идентификатор экземпляра приложения. /// </summary> procedure ResetAnalyticsData; /// <summary> /// Включен ли сбор аналитики для этого приложения на данном устройстве. Этот параметр сохраняется во всех сеансах /// приложения. По умолчанию он включен. /// </summary> property Enabled: Boolean read FEnabled write SetEnabled default DefaultEnabled; /// <summary>Уникальный идентификатор текущего пользователя.</summary> property UserId: string read FUserId write SetUserId; /// <summary>Задает продолжительность бездействия, которая завершает текущий сеанс.</summary> property SessionTimeoutDuration: Integer read FSessionTimeoutDuration write SetSessionTimeoutDuration default DefaultSessionTimeoutDuration; С остальными подробности использования вы можете ознакомиться в официальной документации Firebase: https://firebase.google.com/docs/analytics?authuser=0 Спасибо
  7. Download: The distributive is available by request only. Release date: 18 January 2023 New ✨ Firebase Push-notifications for iOS The Firebase implementation was added for Push-notificatino service. In case if you are using Firebase (FCM), iOS returns Firebase device token instead of APNS. So additional token conversion is not required. Details. Supporting Android Libraries Now you can easilier add any Android library only by full qualified name, without having to search for JAR/AAR files and all dependencies. To do this, use the Library management manager available from the main menu "'Project -> Android FGX Libraries". Details. Improvements 🙌 Android API USB The new Android API header was added for working with USB: Android.Api.Hardware.USB. Bug Fixes 🐛 Building apps for Android in Application Store mode could fail if the password contained some illegal characters (Android). If at least two services were used in the project: Push notifications, advertising or in-app purchases, then the application crashed at startup (Android). The displaying of FlexBox designer for AlignmentChildren property was improved for HiDPI screens. The demo sample was fixed: "Android API -> AlarmManager". In case of usage TfgPushNotificationService component with ServiceName <> default, Android application could crashed on stratup (Android).
  8. Скачать: Релиз доступен только по запросу. Дата релиза: 18 января 2023 Новое ✨ Firebase Push-уведомления для iOS Добавлена реализация сервиса push-уведомлений на базе Firebase. Теперь при использовании Firebase (FCM), iOS так же может возвращать Firebase токен устройства. Дополнительная конвертация APNS токена устройства в Firebase не требуется. Подробнее. Поддержка Android-библиотек Теперь вы можете с легкостью подключить любую Android-библиотеки только по имени, без необходимости искать файлы JAR/AAR и всех зависимостей. Для этого воспользуйтесь менеджером управления библиотеками доступный из главного меню Project -> FGX Android Libraries. Подробнее. Улучшения 🙌 Android API USB Добавлены новые заголовочные файлы для работы с USB под Android: Android.Api.Hardware.USB. Исправление ошибок 🐛 Сборка приложений под Android для конфигурации Application Store могла завершаться неудачей, если в пароле содержались некоторые запрещенные символы. Если в проекте использовались хотя бы два сервиса: Push-уведомления, реклама или встроенные покупки, то приложение при старте падало. Улучшено отображение FlexBox дизайнера для `AlignmentChildren` свойство на HiDPI экранах. Исправлен демонстрационный пример "Android API -> AlarmManager" При использовании компонента TfgPushNotificationService и названия ServiceName, отличного от 'default', могла наблюдаться ошибка Android приложения на старте (Android).
  9. Hm, Interesting questions. Supporting RTF doesn't mean, that it support RichEdit. The regular component cannot be used as a richedit, but it can display formatted output, as it is done with HTML. I mean RichEdit has more formats.
  10. Добрый вечер, уважаемые Delphi разработчики. Не секрет, что в Java/Kotlin мире огромное количество готовых и бесплатных к использованию Android библиотек, чего нельзя сказать о Delphi. Более того, если речь идет про внешние устройства для устройств на базе Android, то производитель всегда поставляет SDK в виде Android библиотеки. Будь то софт для работы с устройством по USB, промышленный сканер, медицинское оборудование или что-либо другое, все обычно имеет готовый SDK. Если же вы хотите воспользоваться облачными сервисами аналитики от Google или Yandex, то опять же самым удобным вариантом будет использование готового поставляемого SDK. К сожалению, надо отметить, что крайне редко производитель поставляет SDK для языка Delphi. Что в итоге делает процесс интеграции SDK на другом языке в Delphi не самой тривиальной задаче и требует специальных интеграции со стороны разработчиков. В этой статье мы рассмотрим о новых возможностях по интеграции библиотек для Android приложения на базе FGX Naitve. С радостью хотим с вами поделиться новыми возможностями в FGX Native в области интеграции сторонних Android библиотек в ваше приложение. Долгое время Delphi не позволяла и до сих пор не позволяет с легкостью добавлять существующие Android-библиотеки. Это значит, что весь мир использования существующих Java библиотек под Android для Delphi был практически недоступен. Почему это так, и в чем трудности, я затронул в статье в главе "Почему переход на AndroidX не был выполнен ранее?": И о чем я рассказал в статье (раздел "Поддержка сторонних Android-библиотек") Раньше вы могли добавлять только JAR библиотеки (стандартная возможность RAD Studio IDE). Чуть позже, мы добавили поддержку AAR библиотеки (FGX Native 1.15.0.0). А начиная с FGX Native 1.15.2.0 мы расширили эту поддержку и теперь вы можете просто указать название публичной библиотеки, без необходимости искать JAR/AAR и всех зависимостей. Андроид библиотека Андроид библиотека идентифицируется тремя параметрами: Группа - Уникальное название группы, в рамках которой могут находиться разные библиотеки. Обычно название группы отражает название компании и направление библиотек. Например: "com.yandex.android" Артефакт - короткое название библиотеки в рамках группы (1). Например: "mobmetricalib" Версия. Номер версии. Например: "5.2.0" Объединенные параметры, разделенные ":", квалифицируют библиотеку среди остальных: "com.yandex.android:mobmetricalib:5.2.0". Управление используемыми библиотеки в приложении FGX Native для Android осуществляется через наш менеджер, доступный через главное меню: "Project -> FGX Android Libraries". Существует два способа интеграции Андроид-библиотеки. 1. Старый. Долго, сложно и не поддерживает транзитивные зависимости. Добавление файла библиотеки и всех зависимостей вручную. Для этого вам надо: Cкачать физический файл библиотеки в JAR или AAR формате. Определить все используемые транзитивные зависимости и скачать их файлы так же. После чего вручную добавить их через мастер "FGX Android Libraries". Например, чтобы этим способом добавить поддержку Yandex AppMetrika версии 5.2.0 нужно найти и добавить в сумме 11 файлов библиотек: 2. Новый. Указание названия библиотеки для автоматического скачивания библиотеки и всех зависимостей и интеграция в FGX Native приложение. Начиная с 1.15.2.0 достаточно указать полное название библиотеки и все остальное произойдет автоматически. Чтобы добавить новую зависимость, нужно нажать на кнопку "+" и выбрать "Зависимость-библиотека". После чего указать полное имя зависимости или воспользоваться быстрым поиском для поиска интересуемой зависимости. Таким способом достаточно указать только полное наименование библиотеки. Например, та же Yandex AppMetrika добавляется путем добавления зависимости на "com.yandex.android:mobmetricalib:5.2.0". Репозитории Все публичные Android библиотеки обычно хранятся в репозиториях. Репозиторий - это центральное хранилище, где можно найти библиотеку нужной версии, нужного автора (пакет), узнать используемые зависимости (библиотеки часто используют другие для своей работы). Среди наиболее известных публичных репозиториев: Maven Central - https://mvnrepository.com/ Google Maven - https://maven.google.com/web/index.html Помимо общеизвестных, любой желающий может развернуть свой репозиторий и хранить там свои наработки. В таком репозитории можно получить информацию о любой библиотеке. Например, Яндекс предлагает библиотеку "mobmetricalib" для работы с AppMetrika. Библиотека называется "com.yandex.android » mobmetricalib" и может быть найдена в одном из таких репозиториев: А так же здесь вы можете узнать, какие другие библиотеки использует данная библиотека: FGX Native подключает два публичных репозитория по умолчанию (Maven Central, Google Maven). Вы можете управлять списком репозиториев и добавлять свои, открыв список кнопкой "Репозитории", если это требуется: Как использовать добавленные библиотеки в коде? После того, как вы интегрировали стороннюю библиотеку, встает вопрос о том, как вызвать API, которое она поставляет. Для этого вам нужно получить заголовочные файлы. Это можно сделать при помощи нашей утилиты Java2Delphi, входящей в поставку FGX Native. Описание работы утилиты описано в этой статье: Всем спасибо за внимание
  11. This error indicates that you have already used the trial and the expiration date has come to an end.
  12. Если я не ошибаюсь, то Firebase строится на основе GooglePlay. А Google Play не работает на Huawei OS, так что скорее всего нет, не будет. P.S. Проверил зависимости, на Huawei работать не будет .
  13. Да, по умолчанию используется APS на iOS и FCM на Android.
  14. Hello, Android native EditText and iOS TextView supports rich format. However, I cannot find information about export RTF format to internal for usage in EditText for example. We are using this internal format for supporting HTML fro example.
  15. Так код фреймов не выпущен. Поэтому сейчас даже если прописать, ничего не будет. Могу в принципе закончить текущий вариант и встроить его в либу, чтобы хотя бы руками можно было бы пока через dfm встраивать
  16. Добрый день, уважаемые разработчики. В этой статье мы рассмотрим настройку и использование сервиса Firebase Messaging (FCM)для приема push-уведомлений на платформе iOS. Начиная с версии FGX Native 1.15.2.0, вы можете использовать Firebase не только на Android, но теперь и на iOS. Тем самым не нужно выполнять дополнительные действия для конвертации токенов устройств из Apple Push Service (APS) в токен Firebase (FCM), сделав ваш код полностью кроссплатформенным. Перед тем, как приступить к работе с уведомлениями, необходимо выполнить регистрацию аккаунта Google. Регистрация приложения в Firebase для iOS 1. Откройте Firebase Console и выполните вход в учетную запись Google. 2. Нажмите кнопку "Создать проект" 3. Укажите название вашего проекта и нажмите кнопку "Continue". Вы можете использовать любое название. Например: "FGX Native project". 4. На текущей странице вы можете отключить поддержку Google Analytics. Вы можете ее отключить. Однако, рекомендуем ее оставить. Так в будущем вы сможете использовать аналитику для данного проекта. Нажмите кнопку "Continue". 5. Выберите или создайте аккаунт Google Analytics. Я взял созданные раннее, в который будет добавлена аналитика для нового проекта. Нажмите кнопку "Create Project". 6. Ожидаем окончания процесса создания проекта в Firebase. По окончании нажимаем "Continue". Когда проект будет создан, вы увидите главную страницу: 7. Теперь необходимо зарегистрировать ваше FGX Native iOS приложение для этого нажимаете на кнопку с логотипом iOS. 8. Указываете имя пакета вашего iOS приложения, такое же, как у вашего приложения (если оно есть), или такое, какое оно будет (его можно будет указать) Если у вас уже есть приложение, то узнать название пакета можно в настройках проекта: Project -> Options... -> Version Info > CFBundleIdentifier ". Если у вас еще нет приложения, то придумайте название пакета. Например: "ru.fgx.pushnotificationdemo". 9. Нажмите кнопку "Register app". 10. Скачиваем конфигурационный файл "GoogleService-Info.plist", нажав на кнопку "Download" и сохраняем файл в папку FGX Native проекта (можно сохранить в любое другое место). Этот файл содержит настройки для инициализации FGX Native приложения на iOS. 14. Заканчиваем добавление вашего приложения путем нажатия кнопок "Next" -> "Next" -> "Continue to console" 15. Теперь вы увидите ваше iOS приложение на главной странице. Теперь необходимо выполнить настройку FGX Native приложения в IDE. Настройка приложения 1. Откройте существующий проект или создайте новый. Если вы создаете новый проект, то в мастере создания проекта обязательно укажите (на основании шага 8 регистрации приложения в Firebase): Идентификатор организации. Например: "ru.fgx". Имя проекта. Например: "pushnotificationdemo". Если открываете существующий, то убедитесь, что название пакета в Project -> Options... -> Version Info > CFBundleIdentifier " соответствует названию из шага 8. 2. Откройте: "Главное меню" -> "Project -> Deployment". 2.1. В выпадающем списке конфигурации выберите "All Configurations -> iOS-Device 64-bit platform". Примечание: Если вы хотите разделять настройки для разных конфигураций, выберете соответствующую конфигурацию. 2.2. Добавьте ранее скаченный файл настроек "GoogleService-Info.plist" (на основании шага 10 регистрации приложения в Firebase). Примечание: Если этого не сделать, то при старте приложение упадет. 3. Откройте настройки проекта: "Project -> Options... -> Application > Services". 4. Перейдите к странице "Application -> Entitlment list". И поставьте галку напротив: "Receive push notification". 3. Сохраните изменения. 4. Откройте главную форму вашего приложения и подключите модуль FGX.PushNotification.FCM. Примечание: FGX Native использует Firebase по умолчанию на Android. Однако, на iOS мы используем Apple Push Service по умолчанию. Поэтому Firebase библиотека не линкуется по умолчанию. По этому важно подключить данный модуль. 5. Добавьте на форму компонент TfgPushNotificationService и укажите "ServiceNamne = FCM". Минимально необходимая настройка вашего приложения для получения пуш уведомлений выполнена. Если приложение будет свернуто или выгружено из памяти, то при отправке push-уведомление отобразиться в центре уведомлений устройства. Если же приложение активно, то пуш уведомление не будет попадать в центр уведомления устройства. Получение токена устройства При первом старте приложения, оно выполняет свою регистрацию в облаке Firebase. При этом облако выдает устройству уникальный токен DeviceToken. Перед тем, как отправить тестовое уведомление, необходимо узнать токен устройства. Для получения токена устройства нужно написать обработчик события "TfgPushNotificationService.OnDeviceTokenChanged". Данное событие вызывается каждый раз, когда выдается новый токен устройства. Токен устройства может меняться. Получив токен, вам необходимо передать его на ваш сервер, отправляющий Push-уведомления для будущих отправок сообщений. В данном примере, мы не будем его сохранять, а выведем в лог устройства. procedure TFormMain.PushServiceDeviceTokenChanged(Sender: TObject; const ADeviceToken: string); begin TfgLog.Info('Device token changed: deviceToken="%s"', [ADeviceToken]); end; Получение push-уведомления Для получения токена устройства нужно написать обработчик события "TfgPushNotificationService.OnPushNotificationReceived". Данное событие вызывается, когда устройство принимает push-уведомление. Примечание: В зависимости от реализации, событие может вызываться в разные моменты времени. Например, если приложение не в памяти или в фоне, то событие вызовется в момент нажатия пользователем на уведомление в Центре локальных уведомлений. Пример вывода в лог полученного push-уведомления: procedure TFormMain.PushServicePushNotificationReceived(Sender: TObject; const ANotification: TfgPushNotification); begin TfgLog.Info('Notification received: notification="%s"', [ANotification.ToString]); end; Запустите приложение и запомните токен устройства из консоли. О том, как пользоваться Console для просмотра логов устройства, читайте в статье: Отправка тестового сообщения Чтобы отправить тестовое сообщение на конкретное устройство, можно воспользоваться Firebase консолью. 1. Откройте консоль: https://console.firebase.google.com 2. Перейдите в меню навигации к разделу: "Engage -> Messaging" 3. Нажмите кнопку "Create your first campaign". 4. Выберите тип "Firebase Notification Messages". 4. Заполните данные уведомления. Например так: 5. Нажмите кнопку "Send test message". Консоль предложит указать на какие устройства необходимо отправить данное уведомление. 6. Укажите в поле токен устройства (раздел "Получение токена устройства") и нажмите кнопку "+". 7. Выполните отправку уведомления, путем нажатия на кнопку "Протестировать" и наблюдайте появление вашего уведомления в центре локального уведомления на устройстве: Получение данных уведомления при старте приложения Если пользователь нажимает на push-уведомление в центре уведомлений, то система запустит ваше приложение. В любой момент времени можно получить данные стартового уведомления напрямую из локального Firebase сервиса (Раздел "Получение Push-уведомлений"). var Notifications: TArray<TfgPushNotification>; begin Notifications := fgPushNotificationService1.StartupNotifications; end;
  17. Добрый вечер, Мои пять копеек на счет фреймов. Я согласен, что фреймы нужны и полезны. Да, можно встраивать формы, но куда проще кинуть фрейм, чем кодом встраивать форму. Более того, у меня уже почти реализованный вариант фреймов. Однако, все уперлось в то, что RAD Studio не дает API для добавления фреймов для сторонних фреймворков. Поэтому на текущий момент, я научил ее создавать фреймы и работать с ними в дизайнере. Однако, кинуть фрейм на форум через палитру компонентов нельзя. Единственный способ, это руками прописать класс фрейма в dfm файле формы, что для публичного релиза не годится. Чтобы не быть голословным:
  18. На здоровье 🙂 В данном случае подтверждение никакое не требуется. Мы вам верим 🙂
  19. Я увеличил вам доступное количество активаций. Пробуйте еще разок.
  20. Добрый день, Да, смена железа влияет на выданную лицензию. Удалите файл лицензии в каталоге "C:\ProgramData\FGXNative\License" соответствующий вашей версии FGX Native и перезапустите Delphi. После этого выполните активацию продукта еще раз при помощи выданного ранее кода активации. P.S. Переустановка не поможет. Спасибо.
  21. Просто ждать бесполезно. Мы обсуждали вашу проблему с вами, что требуется завести репорт и какие-нибудь шаги для воспроизведения. В результате - ничего. Со своей стороны мы независимо от вас, проверили возможность падения компонента лотти, которые проигрывает анимацию при закрытии формы. Однако, все работает штатно без каких-либо видимых проблем. Отсюда либо проблема реально у нас или в вашем коде. Понять это гаданием, к сожалению, не возможно. Поэтому от вас требуется минимальное, описать проблему и шаги для воспроизведения. А дальше мы ее оперативно поправим, если проблема в библиотеке.
  22. Сейчас идет работа над: 1. Поддержкой Firebase Push-notificatio для iOS. 2. Возможность добавлять Android библиотеки по наименованию пакета и версии. 3. Разработка нового визуального компонента TfgBottomNavigationBar по Material Design. video_2023-01-04_20-55-15.mp4 Дальше есть планы по реализации сервисов идентификации для Android и добавление новых кроссплатформенных решений для сторонних сервисов типа Yandex AppMetrika, Google Analytics и тд.
  23. All foreign clients pay via PayPro, which directly sells my software. Or if you have any doubts about the potential payment problems. You can purchase software directly from Italy shop: https://www.wintech-italia.it/ In this case, these are your monetary agreements with the Italian store. And at the moment I am not aware of any problems with paying foreign persons wishing to purchase the English version of the library.
  24. Кнопка Back или для полноэкранного телефона можно использовать жест свайпа с левого края экрана.
×
×
  • Create New...