Jump to content

Search the Community

Showing results for tags 'ios'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Clients
    • Download Trial
    • Download Release
    • News
    • Questions of future users
    • Voitng for new features
    • FGX Native projects
    • Feedbacks
  • Private forum. For users with active subscription
    • Animations
    • Alignment (Flexbox)
    • Components
    • Assets
    • Database
    • Graphics
    • Demos
    • Logging
    • Systems permissions
    • Dialogs
    • Notifications
    • Virtual keyboard
    • Gestures
    • Application
    • Forms
    • Platform Questions
    • Localization (L11N)
    • Publishing
    • IDE Designer
    • Emulator
    • Debugging
    • Component development
    • Additional files
    • iOS (Alpha testing)
    • Other questions
  • Bug Reports
    • Opened
    • Closed
  • Organization of the work of this forum
    • Rules

Blogs

  • Product Updates
  • Events
  • Guides

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me

Found 5 results

  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.
  2. Название приложения: Tezeks экскурсии на русском языке Платформа: Android32, Android64, iOS64 (iPhone) Поддерживаемые версии ОС: Android 6.0 и новее; iOS 12 и новее Описание: Tezeks – это официальный сервис по бронированию групповых и индивидуальных экскурсий на русском языке от известного туристического бренда Tez Tour. Бронируйте экскурсии, входные билеты в музеи, аэропортовые трансферы и много другое в 40+ странах мира. Ссылки на приложения: Google Play и AppStore
  3. Здравствуйте. В этой статье мы поговорим об отладке приложений на iOS с помощью логирования (часть материала будет актуальна и для Android). Общие сведения. Логирование позволяет получать информацию о работе вашего приложении даже когда оно запущено без отладчика, при фатальных падениях приложения и тд. Особенно тема логирования актуальна для мобильных платформ, т.к. здесь, к сожалению, Delphi отладчик не может похвастаться такой же стабильностью и качеством, как отладчик для платформы Win32. Пошаговая отладка выливается в мучительное ожидание переходов, показываемые отладчиком значения могут не соответствовать действительности, либо вообще отсутствовать и тд. Важно! Логирование не заменяет полностью отладчик, а является вспомогательным инструментом. Условно механизм логирования можно разделить на источник логов и на утилиты для сборки и просмотра логов. Источники логов. Источником логов может быть как библиотека FGX Native, операционная система, так и само приложение (сообщения отправленные непосредственно разработчиком). На первые два варианта разработчик особо не может повлиять, поэтому более подробно остановимся на третьем варианте. Отправка сообщения в лог осуществляется с помощью кроссплатформенного класса TfgLog. Все методы TfgLog являются классовыми, а сам класс существует в единственном экземпляре - это означает, что для его использования нет необходимости создавать экземпляр класса. Основным методом класса является метод Log позволяющий отправить строку с указанным уровнем лога. /// <summary>Выводит в системный лог сообщение <c>AMessage</c> типа <c>ALogType</c>.</summary> class procedure Log(const ALevel: TfgLogLevel; const AMessage: string); Уровни лога определяют степень важности того или иного события. /// <summary>Уровень логирования.</summary> TfgLogLevel = (Trace, Debug, Info, Warning, Error, Fatal); Вы можете определить минимальный уровень лога с помощью свойства MinimumLevel, чтобы уменьшить количество выводимых в лог сообщений /// <summary> /// Указывает минимальный уровень лога, начиная с которого сообщение будет выводиться в системный лог. /// Порядок следования уровней: Debug, Info, Warning, Error, Fatal. Debug - самый низкий. /// </summary> /// <remarks> /// Для <c>DEBUG</c> конфигурации выводятся все типы сообщений по умолчанию. Для <c>RELEASE</c> сообщений выше /// <c>Info</c>. Если вы хотите видеть в релизной сборке вашего приложения и отладочные сообщения, то задайте /// значение <c>TfgLogLevel.Debug</c> в это свойство. Данная настройка распространяется только на этот класс. На /// логирование через сервис <c>IFGXLoggerService</c> она не действует. /// </remarks> class property MinimumLevel: TfgLogLevel read FMinimumLogLevel write FMinimumLogLevel; Для удобства у класса TfgLog есть набор одноименных методов, соответствующих каждому уровню лога. Например: /// <summary> /// Выводит в системный лог низкоуровневое отладочное сообщение <c>AMessage</c> для выполнения трассировки. /// </summary> class procedure Trace(const AMessage: string); overload; /// <summary>Выводит в системный лог отладочное сообщение <c>AMessage</c>.</summary> class procedure Debug(const AMessage: string); overload; В дополнение, у каждого такого метода существует перегруженная версия, принимающая во втором аргументе список параметров для отправки форматированной строки: /// <summary> /// Выводит в системный лог низкоуровневое отладочное сообщение <c>AMessage</c> с поддержкой форматирования <c>System.Format</c>. /// </summary> class procedure Trace(const AFormat: string; const Args: array of const); overload; /// <summary> /// Выводит в системный лог отладочное сообщение <c>AMessage</c> с поддержкой форматирования <c>System.Format</c>. /// </summary> class procedure Debug(const AFormat: string; const Args: array of const); overload; Сборка и просмотр логов. Для просмотра логов с iOS используется утилита, работающая на компьютере под управлением macOS под названием Console. Для просмотра логов с Android используется утилита работающая на компьютере под управлением Windows под названием logcat. Частично логирование в контексте Android было затронуто ранее в Уроке 1 «Настройка окружения, Hello World приложение и логирование». В данной статье мы сосредоточимся на утилите Console. Важно! Подразумевается, что вы имеете настроенную связку: компьютер под управлением macOS к которому подключено устройство с iOS. Исходные данные: на устройстве с iOS установлено приложение под названием TestLogging, которое имеет только две кнопки, при нажатии на которые отправляются сообщения в системный лог. Код выглядит следующим образом: 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; Теперь перейдем непосредственно к утилите сбора и просмотра логов. Запустите утилиту Console которая находится в Launchpad -> Other. Главное окно состоит из меню навигации в левой части (1), тулбара с органами управления вверху (2) и списка логов, который занимают остальную клиентскую область окна (3). Теперь выбираем в меню навигации слева устройство из списка Devices с которого мы хотим получать логи. В нашем случае это устройство с именем IPhone. Теперь запускаем сбор логов с помощью кнопки тулбара Start или кликнув по ссылке Start streaming находящейся в центре списка логов. После старта список логов будет быстро наполняться сообщениями. Список логов представляет собой таблицу с настраиваемыми колонками. Вы можете настроить видимость колонок по своему усмотрению с помощью контекстного меню, вызываемого по клику на заголовки таблицы. Самая полезная для нас информация находится в колонке Message - это непосредственно текстовое сообщение лога. Более удобно текстовое сообщение просматривать в окне детальной информации, которое можно открыть двойным кликом по строке списка логов, либо с помощью кнопки тулбара Info. Теперь запустим наше тестовое приложение и последовательно нажмем обе кнопки. Лог содежит тысячи записей, среди которых практически невозможно найти интересующие нас строки. Для решения этой задачи существуют фильтры, которые располагаются в правой части тулбара. Механизм фильтрация довольно гибкий и позволяет комбинировать несколько фильтров по разным колонкам с учетом выбранного способа сравнения (частичное или полное совпадение включая вариант с отрицанием). Важно! Фильтрация осуществляется без учета регистра. Есть несколько способов, как можно отобразить только те строки, которые относятся к нашему приложению. Самый простой вариант - отфильтровать по имени процесса. Вводим фразу TestLogging в окно Search и нажимаем клавишу Enter на клавиатуре. По-умолчанию создастся фильтр с типом Any и способом сравнения Containts. Теперь изменим тип фильтра с Any на Process, a Containts на Equal, что означает, что в списке логов останутся только те строки, текст которых в колоноке равен TestLogging. На скриншоте видно, как строки переданные самой библиотекой FGX Native, так и те, которые были отправлены после нажатия на кнопки (отмечены стрелками). Теперь вы можете изучать собранную информацию просматривая сообщения. При необходимости вы можете сохранить выделенные строки в буфер обмена, либо передать их в другое приложение к помощью кнопки тулбара Share. Логирование - мощный инструмент, который может пригодиться в самых трудных и запутанных ситуациях при поиске ошибок. Спасибо за внимание и удачной отладки!
  4. Выбираю опцию PullToRefresh, если данных нет или все элементы списка помещаются в коллекцию (т.е. когда нет скрола), то PullToRefresh не работает, элементы просто не двигаются, как только кол-во элементов превышает высоту коллекции(т.е. появляется скрол), PullToRefresh срабатывает. Сейчас как выход приходится добавлять пустые стили, чтобы заполнить коллекцию и появлялся скрол, чтобы пользователь мог обновить список. Неудобно! Могли бы исправить?
  5. Всем привет. Не понял в какой ветке создать тему. Но ближе показалось в этой. в рантайме создаю Page и в него пытаюсь затолкать и растянуть по размерам страницы TfgForm. На андроид работает верно. На iOS странное поведение. Подскажите что не так? testApp.7z
×
×
  • Create New...