Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 08/20/21 in all areas

  1. Всем хорошей рабочей недели! Год назад мы поделились руководством по подключению популярного сервиса платформы для аналитики и маркетинга приложения Yandex AppMetrica для Android. В этой статье с мы рассмотрим, как начать использовать этот же сервис для iOS платформы. Подключение FGX Native приложения для Android платформы рассмотрено в другой статье: Для того, чтобы начать использовать AppMetrica в вашем приложении нужно выполнить два шага: Зарегистрировать ваше приложение на стороне Yandex Подключить библиотеку Yandex AppMetrika и выполнить инициализацию ключом API. Регистрация приложения в Yandex AppMetrika 1. Создаем новый проект в учетной записи AppMetrika и даем ему название: Затем далее и добавить. По окончании добавления сервис отобразит ваш API ключ, который нужно запомнить. Он будет использовать для взаимодействия вашего приложения и сервиса Yandex AppMetrika. Теперь переходим к настройкам вашего проект, путем нажатия на кнопку настройки проекта в левой панели. Теперь нам необходимо связать наш проект с iOS приложением. Среди большого числа настроек нас интересует вкладка "Основное" -> "Universal Link". Нам необходимо заполнить поля Bundle ID и App Prefix на основании данных вашего iOS приложения, зарегистрированного в портале Apple Developer. AppPrefix - это уникальный префикс, выданный Apple при участии в программе iOS разработчиков. Он же добавляется к названию пакета iOS приложения, тем самым формируя уникальное название приложения. Его можно найти в личном кабинете Apple на вкладке Membership: Bundle ID - это идентификатор пакета вашего FGX Native приложения. Если приложение уже зарегистрировано, то вы можете найти название пакета на сайте Apple в разделе Identifiers. После того, как вы указали все данные, необходимо включить "Использовать Universal Link" - это специальная технология, которая призвана обезопасить передачу статики с устройств пользователя на сервера Yandex. Чтобы закончить настройку, необходимо включить поддержку Universal Link на стороне профиля разработчика Apple. Для этого необходимо открыть настройки приложения в консоли Apple и включить поддержку "Associated Domains". Теперь ваш профиль приложения сконфигурирован для приема статистики с вашего приложения. Переходим к подключению Yandex AppMetrica к FGX Native приложению. Подключение и инициализация Yandex AppMetrica в FGX Native приложении 1. Скачиваем статическую версию AppMetrica SDK. Yandex SDK 3.17.0.zip 2. Скачиваем заголовочные файлы для Delphi. Yandex.Api.MobileMetrica.iOS.pas 3. Скачиваем модуль регистрации и инициализации AppMetrica. Этот модуль содержит код по регистрации вашего приложения в сервисе Yandex для iOS и Android. Yandex.AppMetrica.pas 4. Добавляем модуль в ваш проект и в проектном файле вызываем метод инициализации InitYandexMetrika указанием API ключа, выданном на этапе регистрации проекта в Yandex. program YandexMetrika; uses FGX.Application, FGX.Forms, Form.Main in 'Form.Main.pas' {Form.Main: TfgForm}, Yandex.AppMetrica in 'Yandex.AppMetrica.pas'; {$R *.res} begin InitYandexMetrika('Ваш API ключ'); Application.Initialize; Application.CreateForm(TFormMain, FormMain); Application.Run; end. 5. Настраиваем линковку проекта с Yandex AppMetrica SDK. 5.1. Добавляем в настройках среды переменную окружения "YandexMetrica": "Tools" -> "Options" -> "IDE" -> "Environment Variables". Указываем путь к месту, где у вас распакован AppMetrica SDK. 5.2 В настройках проекта указываем пути для линковки. "Project" -> "Options..." -> "Building" -> "Delphi Compiler" -> "Search Path". Выбираем конфигурацию "All Configuration -> iOS Deice 64-bit platform" и указываем следующие пути в "Search Path": $(YandexMetrica)\YandexMobileMetrica.framework; $(YandexMetrica)\YandexMobileMetricaCrashes.framework 5.3 В настройках линковки передаем дополнительный ключ "-ObjC" линковки: "Project" -> "Options..." -> "Building" -> "Linking" -> "Options passed to the LD linker". 6. Все. Теперь выполняем сборку приложения и запуск на устройстве. В результате ваше приложение должно успешно стартовать, а через некоторое время вы увидите статистику в личном кабинете AppMetrica.
    8 points
  2. Скачать: setup_1.11.6.0_release.rus.zip Дата релиза: 4 сентября 2021 Внимание 🚨 Мы внесли изменение в логику работы события TfgEdit.OnChanged. Теперь на Андроиде это событие вызывается только при окончании ввода текста: потеря фокуса полем ввода или нажатие на кнопку ReturnKey. Если вам необходимо знать о любых изменения текста в поле ввода, вам необходимо использовать событие OnChanging. Новое ✨ FGX Android Log Viewer Появился встроенное средство просмотра логов устройства для Android (logcat). Для запуска выберите меню Project -> FGX Android Log Viewer. TfgDrawerLayout Добавлена поддержка расположения выдвигаемой панели TfgDrawer справа. Новое свойство TfgDrawer.Location позволяет указать расположение панели (Справа или слева). FGX-135 Добавить правое расположение панели для TfgDrawerLayout. Улучшения 🙌 TfgEdit Поле ввода TfgEdit предлагает два события OnChanging и OnChanged. Первое срабатывает при любом изменении текста пользователем. Второе же вызывается в конце ввода текста и предназначен для финальной валидации текста в поле. Однако, на Android событие OnChanged работало так же, как и событие OnChanging и вызывалось при любом изменении текста. В этом релизе мы исправили это, и теперь событие OnChanged работает одинаково на обеих платформах Android и iOS и вызывается в одном из двух случаев: Потеря фокуса; Нажатие кнопки ReturnKey на виртуальной клавиатуре. Помимо этого виртуальная клавиатура на платформе Android всегда имеет кнопку ReturnKey. Поэтому у пользователя всегда есть возможность подтвердить окончание ввода при помощи нажатия на эту кнопку. В iOS такая кнопка тоже есть, однако, она есть не на всех раскладках клавиатуры, что создает для пользователя проблему о том, как сообщить, что текст полностью введен. Для этой ситуации теперь компонент TfgEdit при открытии виртуальной клавиатуры отображает тулбар с кнопкой завершения текстового ввода. TfgVerticalScrollBox/TfgHorizontalScrollBox Добавлена перегруженная верcия метода ScrollTo(AControl), которая позволяет выполнить прокрутку содержимого скроллбокса к началу указанного дочернего компонента. TfgMap Теперь можно получить массив всех объектов карты через методы Markers.ToArray, Polylines.ToArray, Polygons.ToArray или Circles.ToArray. А так же узнать количество через свойства Count. Исправление ошибок 🐛 TfgCollectionView FGX-132 Некорректно работает TfgCollectionView.ScrollToItem (iOS). FGX-133 Некорректно работает TfgCollectionView.GetFirstVisibleItemIndex (iOS). При первом вызове события TfgCollectionView.OnBindItem для элемента, элемент содержал не актуальный размер элемента (iOS). TfgNavigationBar FGX-105 Увеличить область нажатия кнопки Navigation в панели TfgNavigationBar (iOS). FGX-114 Внутренние отступы у кнопок (iOS). При нажатии на пункт меню свернутых кнопок TfgNavigationBar.ActionButtons, выпадающее меню не закрывалось (iOS). TfgDrawerLayout При первом выдвигании панели TfgDrawer пальцем, панель совершала видимый визуальный скачок (iOS). TfgForm Иногда встроенные формы могли быть недоступны для касаний (iOS). FGX-130 TfgForm некорректное отображение размеров координат x и y при изменение ориентации экрана (Android). Прочее TfgScreenManager не учитывал угол поворота экрана при возвращении размера экрана, если телефон лежал на столе (iOS). Неправильно применялся правый отступ TfgEdit.ContentPadding (iOS).
    8 points
  3. Здравствуйте. В этой статье мы поговорим о новинке, которая появится в релизе 1.11.6.0, а именно о встроенном средстве просмотра логов устройств работающих под управлением операционной системы Android. Общие данные о том, что такое логи, их ценность при отладке и тд вы можете прочитать в статье касающейся логирования в контексте iOS Общие сведения. Для просмотра логов под Android используется утилита командной строки logcat. Вы можете использовать ее как напрямую, управляя через параметры командной строки, так и воспользоваться Android Studio в которой есть одноименное окно logcat. Второй вариант предпочтительней, т. к. имеет графический интерфейс, но, естественно, он требует установки самой Android Studio. Итак, новая утилита FGX Android Log Viewer (далее логвьювер) призвана упростить просмотр логов за счет удобной интеграции в IDE, графического интерфейса и гибкой системы фильтрации. Внешний вид. Запустить логвьювер можно из меню Project -> FGX Android Log Viewer. Левую горизонтальную часть окна занимает тулбар с основными органами управления, такими как: запуск/остановка захвата логов, очистка списка, экспорт и тд. Верхний тулбар содержит выбор активного устройства, выбор приложения, для которого будут собираться логи (либо для всех приложений) и быстрый фильтр. Основную часть окна занимает список логов, представленный в виде таблицы. Внизу располагается статус бар, отображающий количество элементов списка, в тч отфильтрованных, а так же, текущий статус захвата логов. Опциональное окно детальной информации о событии. Логвьювер поддерживает докинг форм, следовательно может быть как плавающим окном, так и быть закреплен в любом удобном для вас месте в IDE. Отправка сообщений в лог. Для начала работы выберите устройство в верхнем тулбаре (в нашем случае это Redmi Note 7) и нажмите кнопку старта захвата логов. Список будет постепенно наполняться записями. Для просмотра детальной информации о записи можно два раза кликнуть по самой записи в списке, либо выделить запись и нажать соответствующую кнопку в левом тулбаре. Теперь создадим тестовое приложение, запустим его и отправим несколько записей в лог. Для этого воспользуемся кодом из предыдущей статьи: uses System.SysUtils, FGX.Application, FGX.Dialogs, FGX.Log; procedure TFormMain.fgButton1Tap(Sender: TObject); begin TfgLog.Debug('Hello from TfgLog.Debug'); end; procedure TFormMain.fgButton2Tap(Sender: TObject); begin TfgLog.Info('Hello from TfgLog.Info'); end; Наши сообщения отправлены и встаёт вопрос, как их найти среди огромного списка других сообщений. Есть два варианта решения задачи: Изначально собирать сообщения только от нашего приложения, выбрав его перед захватом лога в верхнем тулбаре (в этом случае количество попадаемых в лог сообщений значительно сократится, но так можно пропустить важные сообщения, в т.ч. падения, от самой Android и/или её компонентов) Воспользоваться фильтрацией, которая представлена в логвьювере в двух вариантах: быстром и расширенном. Воспользуемся вариантом 2. Варианты фильтрации списка событий. Окно быстрой фильтрации находится в правой части верхнего тулбара (вариант по-умолчанию): Фильтрация осуществляется по всем столбцам списка без учёта регистра. Можно указывать несколько значений, разделённых пробелом. В итоговую выборку попадут события, которые соответствуют хотя бы одной подчасти фильтра (OR). Для включения расширенного фильтра воспользуйтесь кнопкой на левом тулбаре. После включения верхний тулбар приобретёт следующий вид: Каждое окно ввода "привязано" к одноименному столбцу списка. В итоговую выборку попадут события, которые соответствуют всем заполненным окнам фильтра (AND). Просмотр событий. Итак, чтобы найти отправленные ранее сообщения, для начала укажем в окне быстрого фильтра слово "FGX" - этим тегом помечаются все сообщения, отправленные с помощью TfgLog. Как видно на скриншоте, в списке остались только относящиеся к FGX записи, среди которых не составит труда увидеть и искомые записи. Альтернативный вариант - поиск по Process Id (PID), который можно узнать из окна IDE Events (в нашем случае 25505) В результате значений будет уже больше, т.к. в итоговую выборку попадают все сообщения, относящиеся к процессу, а не только сообщения, отправленные непосредственно FGX. Но, даже так, найти наши записи не составляет особого труда. Либо вы можете отфильтровать список непосредственно по части отправленной записи: Состав и количество фильтров огранивается только вашей фантазией. Надеемся, что вам понравится опыт работы с новым средством просмотра логов FGX Android Log Viewer. Спасибо за внимание и удачной отладки!
    7 points
  4. Скачать: setup_1.11.7.0_release.rus.zip Дата релиза: 18 сентября 2021 Новое ✨ TfgAutocompleteEdit Добавлена реализация TfgAutocompleteEdit для iOS. Помимо этого, теперь можно программно открывать и закрыть выпадающее окно на свое усмотрение при помощи новых методов DropDown и Close. Так же мы добавили новое свойство DropDownHeight, позволяющее указать фиксированную высоту выпадающего окна. Добавлено свойство BorderKind для возможности отключения рамки поля ввода. TfgSearchEdit Добавлена реализация TfgSearchEdit для iOS. Добавлено свойство BorderKind для возможности отключения рамки поля ввода. Улучшения 🙌 FGX Android Log Viewer Изменен принцип работы быстрого фильтра. Теперь он работает по принципу AND. Исходная фраза разбивается по символу пробела на отдельные слова. Для попадания в итоговую выборку строка лога должна содержать вхождения всех слов. Чтобы найти часть фразы, содержащую пробел, целиком, заключите её в кавычки. Добавлена возможность задать минимальный уровень лога для быстрого фильтра. Теперь при выборе приложения срабатывает быстрая фильтрация, а не перезапускается сбор логов для выбранного приложения. Иногда цвет некоторых элементов мог не соответствовать актуальной теме при старте средства просмотра логов. Иногда детальная информация о событии могла не отображаться при первом открытии. Теперь при старте средства просмотра логов показываются последние 2К предыдущих событий. Оптимизировано получение списка процессов. Переименован уровень лога Verbose->Trace. TfgControl Теперь можно легко получить корневую форму, в которую встроен компонент через свойство TfgControl.RootForm. Исправлена функция LocalToForm, которая раньше не учитывала наличие прокручиваемого содержимого у компонентов. TfgPath Улучшен разбор чисел. Теперь поддерживается чтение таких последовательности чисел "4.23-1.57l.27.28". Исправление ошибок 🐛 FGX-140 TfgLabel c HorzAlign <> Left не отображается, если TextType=HTML (Android). TfgCollectionView не заполнялся элементами, если создавать его программным способом (iOS). Исправлена небольшая утечка памяти в TfgPopup (iOS). Исправлена отрисовка путей в TfgSvgPath при использовании гладких кривых. Из Android API убрано несколько скрытых методов и констант.
    6 points
  5. Download: setup_1.11.6.0_release.eng.zip Release date: 4 September 2021 Attention 🚨 We introduced new changes in logic of TfgEdit.OnChanged event. The Android invoked this event on any text changes and this event worked the same as OnChanging. Now we fixed it and the OnChanged event is invoked only, when text entering is ended: TfgEdit losted focus or user pressed Return Key. If you need to track any process changes in text field, use the OnChanging event. New ✨ FGX Android Log Viewer A built-in viewer of device logs has appeared for Android (logcat). To start, select menu Project -> FGX Android Log Viewer. https://translate.yandex.ru/translate?lang=ru-en&url=https%3A%2F%2Fforum.fgx-native.com%2Fblogs%2Fentry%2F34-новое-средство-просмотра-android-логов-в-fgx-native%2F TfgDrawerLayout The supporting of right TfgDrawer location was added. The new property TfgDrawer.Location allows to set drawer position (Left or Right). FGX-135 Add right mode for TfgDrawerLayout. Improvements 🙌 TfgEdit The TfgEdit offers two events for tracking text changes OnChanging and OnChanged. The first is being invoked on any text changes and allows to observe text input process. The second is invoked when text input process is ended. However, the OnChanged event worked on Android the same way as OnChanging and was being invoked on any text changes. In this release, we fixed this, and now the OnChanged event works the same on both Android and iOS platforms and is called in one of two cases: Text input lost focus; User pressed ReturnKey on virtual keyboard. In addition, the virtual keyboard on the Android always has a ReturnKey button. Therefore, the user always has the way to confirm the end of the input by clicking on this button. iOS also has such a button, however, it is not available on all keyboard layouts, which creates a problem for the user about how to report that the text is fully entered. For this situation, the TfgEdit component now displays a toolbar with a text input completion button when opening the virtual keyboard. TfgVerticalScrollBox/TfgHorizontalScrollBox The new overloaded methods ScrollTo(AControl) was added. It allows to scroll content to specified child control. TfgMap Now you can get array of map's objects via Markers.ToArray, Polylines.ToArray, Polygons.ToArray or Circles.ToArray and take count via new property Count. Bug Fixes 🐛 TfgCollectionView FGX-132 Incorrect work TfgCollectionView.ScrollToItem (iOS). FGX-133 TfgCollectionView.GetFirstVisibleItemIndex could return icorrect value (iOS). The item in the first call of TfgCollectionView.OnBindItem didn't provide actual size value (iOS). TfgNavigationBar FGX-105 Increase touch area of Navigation button in TfgNavigationBar (iOS). When user taps on menu item of collapsed buttons TfgNavigationBar.ActionButtons, drop down menu wasn't being closed (iOS). FGX-114 Internal TfgButton padding (iOS). TfgDrawerLayout When user slides TfgDrawer first time by finger, drawer visually jumped (iOS). TfgForm Sometimes the embedded forms might not be available for touching (iOS). FGX-130 TfgScreen returns incorrect size for rotated device (Android). Other TfgScreenManager didn't account rotation angle for, if device is lay on a table (iOS). Wrong applying TfgEdit.ContentPadding (iOS).
    3 points
  6. Название приложения: Tezeks экскурсии на русском языке Платформа: Android32, Android64, iOS64 (iPhone) Поддерживаемые версии ОС: Android 6.0 и новее; iOS 12 и новее Описание: Tezeks – это официальный сервис по бронированию групповых и индивидуальных экскурсий на русском языке от известного туристического бренда Tez Tour. Бронируйте экскурсии, входные билеты в музеи, аэропортовые трансферы и много другое в 40+ странах мира. Ссылки на приложения: Google Play и AppStore
    3 points
  7. Download: setup_1.11.7.0_release.eng.zip Release date: 18 September 2021 New ✨ TfgAutocompleteEdit The new implementation of TfgAutocompleteEdit for iOS was added. In addition, you can now programmatically open and close the drop-down window at your discretion using the new DropDown and Close methods. We also added a new property DropDownSize, which allows you to specify a size of the drop-down window. The new property BorderKind was added for turning off control border TfgSearchEdit The new implementation of TfgSearchEdit for iOS was added. The new property BorderKind was added for turning off control border Improvements 🙌 FGX Android Log Viewer The principle of the quick filter has been changed. It now works on the AND principle. The original phrase is split by the space character into separate words. To be included in the final selection, the log line must contain occurrences of all words. To find the entire part of a phrase containing a space, enclose it in quotation marks. Added the ability to set the minimum log level for the quick filter. Now when you select an application, fast filtering is triggered, rather than restarting the collection of logs for the selected application. Sometimes the color of some elements may not match the theme when the logviewer starts. Sometimes the detailed information about an event might not be displayed when first opened. Now, when the logviewer starts, the last 2K previous events are shown. Optimized getting the list of processes. Renamed log level Verbose->Trace. TfgControl The new property TfgControl.RootForm was added for possibility take root form, which doesn't have parent. The LocalToForm method was fixed. It didn't account scrollable content offset. TfgPath The parsing of numbers was improved. Now it supports parsing the following numbers "4.23-1.57l.27.28". Bug Fixes 🐛 FGX-140 Label with HorzAlign different than Left is not displayed when TextType is HTML (Android). TfgCollectionView didn't fill items, if developer created control in runtime (iOS). The small memory leak were fixed in TfgPopup (iOS). The rendering smooth curve was fixed in TfgSvgPath. Some grey-listed API was removed from Android API (Android).
    2 points
  8. 2 points
  9. Ярослав, большое спасибо за подробную инструкцию! Отдельно хочу отметить, что при использовании в приложении компонента TFDConnection с драйвером SQLite (TFDConnection.DriverName=SQLite), по-умолчанию устанавливается режим статической привязки движка SQLite. Что в свою очередь, после интеграции YandexMetrica, приводит к падению iOS-приложения при запуске. Для исправления проблемы необходимо: 1. вместе с TFDConnection разместить компонент TFDPhysSQLiteDriverLink; 2. установить динамическую привязку SQLite: TFDPhysSQLiteDriverLink.EngineLinkage=slDynamic; 3. в модуле, который использует TFDConnection, из uses удалить FireDAC.Phys.SQLiteWrapper.Stat. Обратите внимание! Все вышеописанное справедливо ТОЛЬКО для iOS! Для Android необходима статическая привязка движка SQLite! Чтобы ваше приложение на Android смогло работать с БД, необходимо пойти по одному из вариантов: 1. для Android использовать отдельный модуль данных со статической привязкой SQLite; 2. перед сборкой Android-приложения вернуть значение TFDPhysSQLiteDriverLink.EngineLinkage=slStatic. Надеюсь, эта информация позволит избежать аналогичных ошибок 😉
    2 points
  10. Скачать: setup_1.11.5.0_release.rus.exe.zip Дата релиза: 18 августа 2021 Улучшения 🙌 TfgLabel Теперь при нажатии на ссылку в HTML в TfgLabel (TextType=HTML) ссылка открывается системой в приложении по умолчанию (Android). FGX-125 Перестали обрабатываться нажатия на гиперссылки (Android). Исправление ошибок 🐛 FGX-117 TfgSvgPath некорректное отображение некоторых изображений (Android). FGX-118 Длинные заголовки в TfgNavigationBar не обрезаются (iOS). FGX-119 Событие TfgEdit/TfgMemo.OnChanged может вызываться при закрытии формы (iOS). FGX-120 Не работает TfgCollectionView.Padding (iOS). FGX-121 Не работает Realign при обращении к элементам TfgCollectionView (iOS). FGX-122 Не отображается текст в TfgButton на iOS 12.5.4 (iOS). FGX-123 Дублирование классов в Android API (Android). FGX-124 Ошибка в отображении Font.Style (iOS). FGX-126 Не отображается текст гиперссылок (Android). Иногда стиль отображения шрифта Italic мог не применяться (iOS). Параметры тени не применялись к тексту на кнопке TfgButton (iOS). Исправлено использования отсечения текста по символам в TfgLabel при отсутствии переноса (iOS).
    2 points
  11. Здравствуйте. Окно просмотрщика поддерживает стандартный механиз доккинга IDE. Это значит, что вы можете встроить окно в любое удобное для вас место в IDE и сохранить раскладку окон (desktop). Чтобы окно просмотрщика автоматически открывалось при старте отладки, вы можете перезаписать стандартную раскладку Debug Layout. 1. Перемещаем окно просмотрщика в требуемое место. 2. Вызываем диалог Save Desktop->Debug Layout. 3. Подтверждаем перезапись раскладки.
    1 point
  12. 1 point
  13. Здравствуйте. Демо пример уже доступен, но только в закрытой клиентской зоне форума.
    1 point
  14. Спасибо, Ярослав, помогло. Действительно, пути к библиотекам не были прописаны, хотя я точно помню, что перед установкой FGX Native Trial я закрывал IDE. Скорее всего бага в установщике, проверьте. Ну или пропишите эти пути в инструкции по по настройке окружения
    1 point
  15. Download: setup_1.11.5.0_release.eng.exe.zip Release date: 18 August 2021 Improvements 🙌 TfgLabel Now when user taps on link in HTML in TfgLabel text (TextType=HTML), the link is opened by operation system (Android). FGX-125 Clicks on hyperlinks have stopped being processed (Android). Bug Fixes 🐛 FGX-117 TfgSvgPath incorrect display of some images (Android). FGX-118 Long titles and subtitles are not trimmed in TfgNavigationBar (iOS). FGX-119 The TfgEdit/TfgMemo.OnChanged event can be invoked when form is being closed (iOS). FGX-120 The TfgCollectionView.Padding doesn't work (iOS). FGX-121 Realign doesn't work in TfgCollectionView.OnBindItem (iOS). FGX-122 The text is not visible in TfgButton on iOS 12.5.4 (iOS). FGX-123 Duplicated Android API classes (Android). FGX-124 Bug in usage Font.Style (iOS). FGX-126 Hyperlinks are not rendered in TfgLabel (Android). The Italic style may not applied sometimes (iOS). The shadow parameters were not applied to the text on the TfgButton (iOS). Fixed the use of clipping text by characters in TfgLabel when there is no hyphenation (iOS).
    1 point
×
×
  • Create New...