Brovin Yaroslav

[Вебинар] FGX Native. Новейшая кроссплатформенная платформа для мобильной разработки на Delphi

В теме 38 сообщений

  • Тема: FGX Native. Новейшая кроссплатформенная платформа для мобильной разработки на Delphi
  • Дата и время: 27 марта 2018 года в 12:00
  • Участники: @Brovin Yaroslav, Андрей Совцов
  • Регистрация: ссылка
  • Ссылка на официальный телеграмм канал: https://t.me/fgx_native
  • Участие бесплатное

На вебинаре познакомимся с текущей разработкой новой кроссплатформенной платформы, позволяющей создавать нативные приложения с быстрым откликом, плавной анимацией, продвинутой системой выраванивания, поддержкой RTL языков, оптимизированной работой с изображениями, быстрой канвой и многим другим. RAD Studio, Android/iOS В вебинаре принимает участие автор разработки Ярослав Бровин

 

2018-01-26_03-21-36.png

2018-01-26_03-26-48.png

2018-03-13_00-58-09.png

2018-03-15_03-31-46.png

device-2018-01-26-043318.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, kiz35196 сказал:

Запись вебинара будет?

Да, но естественно позже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте. Это исключительно для Дельфи или можно использовать и в С++ Builder? Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, Ingalime сказал:

Здравствуйте. Это исключительно для Дельфи или можно использовать и в С++ Builder? Спасибо.

Добрый день,

Пока только в Делфи. Но в будущем планирую добавить поддержку Builder C++.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересно как FGX будут уживаться с текущей FMX, и какова была необходимость в создании именно новой платформы, а не дорабатывать FMX в том же функционале?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

FGX Native полностью независимый от FMX фреймворк на мобильных платформах. Однако, все невизуальные компоненты будут доступны (уведомления, работа с БД, REST API и тд). Прежде всего это сделано, поскольку архитектура FMX не рассчитана для производительной работы с нативными контролами. Под этим я подразумеваю ряд взаимодействий с системой, которые жестко сидят в ядре FMX (работа с текстом, система событий OnMouseXXX, принцип отрисовки, завязка на старое API и многое другое). Помимо этого, разработка мобильного приложения кардинально отличается от разработки приложения для настольных платформ из-за разных подходов к проектированию интерфейсов и заканчивая принципиально разными и специфичными компонентами. 

Кстати, первая экспериментальная версия FGX Native (которая так и осталась не опубликованной) была построена мною на базе FMX. Однако эксперименты на практике показали, что такой подход тупиковый и ведет к значительному усложнению системы без адекватной выгоды для пользователей. А большая зависимость от FMX является для меня потенциальным риском быть связанным по рукам от ошибок. Поэтому было принято решение сделать FGX Native полностью независимым. За год работы была реализована (и продолжает реализовываться) платформа и совершенно новый и дизайнер форм с нуля. Это дает мне большую гибкость в расширение функционала, как самой библиотеки, так и дизайнера. Имея свой дизайнер, я могу реализовать любую идею, которая повысит удобство пользователя при работе с библиотекой.

А вообще это тема интересная и я постараюсь немного рассказать про это на вебинаре.

Частично информация освещается на официальном телеграмм канале https://t.me/cross_delphi, где я с недавнего времени стал публиковать процесс текущий разработок по библиотеке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сколько будет стоить и будет ли совместимость с vcl по методам и параметрам? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  1. Распространение будет по подписке. Цена вначале релиза будет не большой и будет зависеть от того, что вошло в библиотеку в первую версию и что она позволяет делать. Порядок цены пока не могу назвать. Я вижу в подписке хороший потенциал для сопровождения и частого релизного цикла. 
  2. Перед тем, как начинать делать компоненты я долго сравнивал апи VCL и FMX и пришел к выводу, что однозначно сохранить совместимость не получиться. Уж больно много методов, которые специфичны для мобильных платформ и работа с ними. Но стараюсь, удачные наименования методов использовать и у меня. Смотрю и сравниваю апи VCL, FMX, Android и iOS и стараюсь выбрать наиболее удачные моменты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А есть какие-нибудь демки? Главное, что бы хеловорд apk не весил 5-10Мб и не тормозил на старых аппаратах безбожно, как FMX. И что с сервисами под андроид?
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
45 минут назад, Akad сказал:

А есть какие-нибудь демки? Главное, что бы хеловорд apk не весил 5-10Мб и не тормозил на старых аппаратах безбожно, как FMX. И что с сервисами под андроид?
 

Размер apk/ipa как раз не главное, пусть хелловорд хоть 50 мб весит. Главное чтобы все быстро и надежно работало.

Ждем вебинара.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
54 минуты назад, Tumaso сказал:

Размер apk/ipa как раз не главное, пусть хелловорд хоть 50 мб весит. Главное чтобы все быстро и надежно работало.

Во-первых это очень важно людям с 4Гб флешкой на борту. А во-вторых не может 50Мб программа быстро стартонуть. Физически не может.

Вебинар интересен только в случае, если FGX Native позволит продукт в продакшен пускать. Я вчера начал своё курьерское приложение на котлине переписывать, так как FMX мобильный - это просто ужас, который Эмба в какое-то адекватное состояние выводить не собирается, судя по последним 5 версиям студии. Так что хочется понимания, что это за продукт, а не очередную презенташку, в которой всё шикарно. Понятно, что на вебенаре будут обсуждаться только плюсы. Так что он не интересен по определению.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, Akad сказал:

Во-первых это очень важно людям с 4Гб флешкой на борту. А во-вторых не может 50Мб программа быстро стартонуть. Физически не может.

Вебинар интересен только в случае, если FGX Native позволит продукт в продакшен пускать. Я вчера начал своё курьерское приложение на котлине переписывать, так как FMX мобильный - это просто ужас, который Эмба в какое-то адекватное состояние выводить не собирается, судя по последним 5 версиям студии. Так что хочется понимания, что это за продукт, а не очередную презенташку, в которой всё шикарно. Понятно, что на вебенаре будут обсуждаться только плюсы. Так что он не интересен по определению.
 

Какие конкретно есть у вас проблемы блокирующие публикацию в продакшн? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, FREEFAR сказал:

Какие конкретно есть у вас проблемы блокирующие публикацию в продакшн?

1. Тормоза. Старт до логина, т.е. до первого практически пустого экрана от 3 сек. на телефоне типа S8 до 10-12...сек на менее "крутых". На вёдрах с 512 оперативки и параллельным существованием какого-нибудь монстра типа whatsapp программу можно даже не пытаться запускать. Там каждое действие обрабатывается секунд по 3-5.

2. Бесконечные глюки UI. Даже на тестовом асусе периодически ловлю просто белый экран, который не оживает. А уж на китайцах курьеров ТАКОЕ происходит, что вообще...

3. ОЧЕНЬ странная работа сервиса, который банально отсылает на сервер текущее местоположение курьера. Даже переписав его почти полностью на яве - работает через пень-колоду.

Ну и стандартные глюки: не работа некоторых компонент, которые приходится заменять другими, глюки событий тача и т.д. Я тоже пока не начал внедрение, думал что как всё круто сейчас на базе существующего кода для win клиента заделаю приложение для курьеров. Писал я его действительно дня 2-3. А потом началась отладка.... Потеряв недели 3+ я понял, что быстрее с нуля написать на чём-то нативном, чем заставить работать ЭТО. Следующем, судя по всему, будет замена FMX на VCL в win клиенте. Причём на что-то стабильное типа XE2-XE4. Но это пока обсуждается.

Поэтому конечно  FGX Native интересен, но я как-то скептично настроен. Надеюсь, что я ошибаюсь, и продукт выйдет классный.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не в качестве спора, просто мысли по поводу на основании своего опыта

1. тормоза при старте скорее ваши, чем FMX. Моя программа стартовала абсолютно сравнимо с любыми приложениями на этом же телефоне.

Первая форма была простой как мычание. Картинка и кнопка на ней. 

2. Наверное, многое зависит от конкретики. Я на берлине добился вполне адекватного поведения. Охватом китайцев похвастаться не могу, но в основном все работало как минимум предсказуемо.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда еще одни вопрос. FMX для мобильных кто-то будет дальше развивать или в связи с выпуском FGX   FMX в конце концов умрет как устаревшая платформа?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

FMX будет развивать Embarcadero т.к. это и есть их продукт

FGX будет жить отдельно, пока эмро не сочтет его "убийцей айфонов" и не перекупит на корню. А до этого еще ох как далеко

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 часов назад, Brovin Yaroslav сказал:

Перед тем, как начинать делать компоненты я долго сравнивал апи VCL и FMX и пришел к выводу, что однозначно сохранить совместимость не получиться. Уж больно много методов, которые специфичны для мобильных платформ и работа с ними. Но стараюсь, удачные наименования методов использовать и у меня. Смотрю и сравниваю апи VCL, FMX, Android и iOS и стараюсь выбрать наиболее удачные моменты.

то есть еще один фреймворк ни с чем не совместимый для которого с нуля придется все писать. при этом если захочешь отказаться то заново переписывать программу надо будет. 

все таки crossvcl мне как то по описанию и рекламе больше нравиться. не тестировал его сам. но то что у него есть базовая совместимость с vcl это большой плюс для него. 

54 минуты назад, krapotkin сказал:

FGX будет жить отдельно, пока эмро не сочтет его "убийцей айфонов" и не перекупит на корню. А до этого еще ох как далеко

я большой скептик ) сомневаюсь я в этом. я сомневался в fmx когда он только появился, что не взлетит. не взлетел. компонентов мало. все глючит. в каждой версии что то да ломают. 

А вот что реально бы меня заинтересовало, очень причем, это фреймворк, который смог бы все что ты налабал на делфи, переводить в нативный код и потом этот код можно было бы собрать уже нативными студиями. например написал прогу на делфи, делаешь сборку для андроида и тадам, появляется папка java а в ней проект для android studio, который там же собирается и работает так как ты задумывал это в делфи. или собираешь а там папка apple а там проект для XCode и все собиралось бы для ios и macos. ВОТ!! где было бы счастье 

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

да и это не реклама crossvcl )

а вообще что можно сказать, поживем увидим ) 

Изменено пользователем haword

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, haword сказал:

А вот что реально бы меня заинтересовало, очень причем, это фреймворк, который смог бы все что ты налабал на делфи, переводить в нативный код и потом этот код можно было бы собрать уже нативными студиями. например написал прогу на делфи, делаешь сборку для андроида и тадам, появляется папка java а в ней проект для android studio, который там же собирается и работает так как ты задумывал это в делфи. или собираешь а там папка apple а там проект для XCode и все собиралось бы для ios и macos. ВОТ!! где было бы счастье 

Тогда учи Яву и ХуКод

 

1 час назад, haword сказал:

а это очередной клон который будет так же глючить как и fmx.

Клон чего? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, haword сказал:

...хотя их и на fmx мало...

Мало компонентов для FMX? Странно.... их полно! причем очень полно!

Не буду перечислять, дабы не зачли за рекламу!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, wamaco сказал:

Мало компонентов для FMX? Странно.... их полно! причем очень полно!

Где? Есть только куча однотипной дряни, типа расширенного 10 разными людьми ListView, глючащих по разному у разных авторов. Где девэкспресс или альфаконтроллс, где хотя бы простейший ричедит? Пока только 1 серьёзный производитель выпустил что-то под fmx, на сколько мне известно.

P.S. Смысл crossvcl без мобильных платформ не понятен. На линуксе и маке есть вайн. Точка.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, haword сказал:

А вот что реально бы меня заинтересовало, очень причем, это фреймворк, который смог бы все что ты налабал на делфи, переводить в нативный код и потом этот код можно было бы собрать уже нативными студиями. например написал прогу на делфи, делаешь сборку для андроида и тадам, появляется папка java а в ней проект для android studio, который там же собирается и работает так как ты задумывал это в делфи. или собираешь а там папка apple а там проект для XCode и все собиралось бы для ios и macos. ВОТ!! где было бы счастье 

Вроде программист, а всё мечтаешь о большой зелёной кнопке ;-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, Akad сказал:

Где? Есть только куча однотипной дряни, типа расширенного 10 разными людьми ListView, глючащих по разному у разных авторов. Где девэкспресс или альфаконтроллс, где хотя бы простейший ричедит? Пока только 1 серьёзный производитель выпустил что-то под fmx, на сколько мне известно.


 

TMS

https://www.devart.com

https://www.delphihtmlcomponents.com

альфаконтроллс? это говно вообще надо убрать!

девэкспресс пилят... информация есть...

 

Цитата

P.S. Смысл crossvcl без мобильных платформ не понятен. На линуксе и маке есть вайн. Точка.

Чушь 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кроме TMS - всё мимо. devart - это работа с бд напрямую, что само посебе является шизофренией. HTML - это ну очень узкая область применения.

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

По остальным - как допилят - можно будет что-то говорить. Сейчас этого нет.

11 минут назад, wamaco сказал:

Чушь

Чушь, что есть wine, под которым даже некоторые игры требующие DX11 идут без проблем, а уж поделка на win api из 90-х и подавно? Ну-ну.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Brovin Yaroslav
      Как вы уже могли заметить, уже давно не было никаких новостей о ходе разработке библиотеки FGX Native. Однако, несмотря на это, работа ни на секунду не прекращалась и продолжалась с еще более быстрым темпом. И в этой новости я хочу познакомить вас со всеми новостями, которые произошли за эти 3-4 месяца.
      И начну я с самой важной для меня новости – это
      0. Запущено закрытое альфа тестирование
      Запуск закрытого альфа тестирования – это очень ответственный для меня момент, потому что он впервые связывает меня и мою разработку с реальными людьми. Поэтому он требует не просто что-то делать, но и определенного процесса разработки и релизов. Кроме того, альфа тестирование – это необходимость решения вопроса распространения библиотеки. Именно поэтому была проведена работа по организации сборки и доставки библиотеки до пользователя. Был собран полноценный инсталлятор FGX Native библиотеки для RAD Studio CE или RAD Studio Tokyo и теперь в несколько простых кликов можно развернуть FGX Native прямо у вас в IDE и приступить к разработке ваших приожений.
      Альфа тестирование началось 7 августа и до сих пор продолжается.  Тестирование закрытое и осуществляется маленькой группой разработчиков, помогающих мне понять, что можно и нужно улучшить, какой функционал добавить и какое API расширить. А также просто поделиться со мной своими любыми впечатлениями. Ведь основная цель – это сделать удобный продукт для разработчиков.

      1. Дизайнер:
      1.1 Новый дизайнер ресурсов
      Безусловно идея с выделением всех графических ресурсов вашего приложения из контролов в отдельное хранилище является классной, позволяющая ускорить загрузку форм из ресурсов, за счет не хранения больших картинок прямо в ресурсах формы. Помимо этого, такой подход позволяет избежать копирования одного и тоже изображения в нескольких контролах, а позволяет использовать только один экземпляр картинки в рамках всего вашего приложения. Однако, я решил не останавливаться на достигнутом и пойти дальше, расширив типы хранимых ресурсов. Что привело к полной переработке существующего АПИ по хранению ресурсов в FGX Native и разработке нового дизайнера ресурсов. Теперь они называются Assets, по-русски просто ресурсы. И могут быть разных типов. В текущей версии поддерживаются два типа ресурсов, но существующие абстракции позволяют добавлять и другие типы:
      Ресурс цвет – хранит информацию о ARGB цвете  Сет картинок – хранит версии одного и того же изображения в разных масштабах для качественного отображения картинок на экранах устройств в разных масштабах.
      Если раньше все картинки задавались по имени. То сейчас идея задания картинки расширена и позволяет задавать не только картинку, но и цвет. Например, раньше задний фон контролов задавался как-то так:

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


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

      Безусловно такая идея хранения ресурсов не является новой, однако в данном случае она дает массу преимуществ. Идея будет развиваться и в ближайшее время будут добавлены новые типы ресурсов для переводов интерфейсов, локализации строк и создания цветовых схем вашего приложения.
      1.2 Дизайнер управления порядком контролов
      С чего все началось?
      Исторически сложилось в Delphi, что при выравнивании контролов между собой используется приоритет позиции контрола на экране. И при выравнивании трех кнопок по левому краю, порядок следования контролов друг за другом будет определяться их положением на форме. Другими словами, тот контрол, который находится левее, займет первую позицию.

      Безусловно это дает большие удобства по манипуляции выравнивания контролов в дизайнере, так как смена порядка контролов осуществляется простым перетаскиванием контролов между собой. Но с другой стороны это имеет и побочный эффект в рантайме. Если ваше приложение управляет видимостью выравненных контролов, то очередное скрытии и повторное отображение контрола может привести к смене позиции контрола. Именно поэтому иногда приходится использовать трюк со сменой позиции контрола в рантайме, чтобы вернуть скрытый контрол на место. Типичный пример это добавление контролов в скролл бокс, выравненных по верхнему краю.
      Чем закончилось?
      В библиотеке FGX Native я решил отказаться от классического старого подхода и перейти к современной модели выравнивания – порядок выравнивания задается порядком следования контролов у родителя, который отлично себя зарекомендовал во многих UI библиотеках. Другими словами, на порядок выравнивания влияет не позиция компонента на форме, а его порядковый номер в рамках своего родителя. Именно этот подход и был разработан с добавлением нового дизайнера.

      1.3 Режим блокировки контролов на экране форме
      Данный режим не представляет из себя что-то новое. Обычно при проектировании приложения вы используете большое количество компонентов. Среди которых присутствуют контролы, используемые только для выравнивания или группировки визуальных компонентов (линии, картинки, контейнеры). Это приводит к тому, что ваша форма перегружена визуальными контролами. И порой выделить среди этого количества нужный компонент становится все сложнее и сложнее. А если взять во внимание, что вы разрабатываете мобильное приложение с ограниченными размерами экрана устройства, то концентрация контролов может доставлять вам неудобство в проектировании вашего приложения.
      Именно режим блокировки контролов и позволяет вам упростить выделение “важных” компонентов за счет блокировании “побочных” контролов.

      У каждого компонента появилось свойство Locked, позволяющее заблокировать контрол в дизайнере от выделения. Контрол, у которого стоит Locked = True, нельзя выделить в дизайнере нажатием мышки. Единственный способ – это выбрать его в выпадающем списке инспектора свойств объекта.
      1.4 Добавлен новый режим в дизайнере по отображению границ контролов
      Данный режим позволяет вам визуально отобразить области, занимаемые каждым контролом на форме, за счет легкой подсветки каждого контрола. Такой режим позволяет наглядно продемонстировать границы контролов и какие отступы они используют (внутренние padding или внешние margins).

      1.5 Сплеш скрины
      Теперь поддерживаются сплеш скрины с поддержкой 9-patch изображений. Если приложение запускается очень быстро, то сплеш скрин не отображается. Если же запуск приложения занимает больше времени, то отображается сплеш скрин.

      1.6 Минорные улучшения
      Задание иконки приложения Теперь при двойном нажатии на контрол для автоматической генерации обработчиков предпочтение отдается следующим событиям в порядке возрастания приоритета: 'ONCREATE', 'ONTOUCH', 'ONTAP', 'ONCHANGE',  'ONCHANGED'. А для формы всегда выбирается OnCreate. Теперь контролы можно бросать с палитры прямо на форму. Раньше можно было кидать только двойным кликом Улучшено перемещение не визуальных компонентов по форме 2. Платформенные сервисы:
      2.1 Получение информации о текущей локали устройства
      Возвращает информацию о текущей локали устройства:
      Код текущего языка Первый день недели Код страны 2.2 Открытие документов в сторонних приложениях.
      Поддерживает открытие ссылок в системном браузере
      2.3 Тоаst
      Добавлен сервис по отображению тостов "Toast" и он реализован для Андроид платформы.
      2.4 Виртуальная клавиатура
      Возможность скрыть виртуальную клавиатуру.
      2.4 Хелпер для централизованного получения информации о системе TfgSystemInfo
      Пока возвращает только информацию о локале. В будущем будет расширен.
      2.5 Менеджер по управлению историей отображения форм.
      Появился менеджер форм TfgFormManager, позволяющий организовывать простую навигацию по истории открытии форм.
      3. Выравнивание (Yoga и FlexBox):
      3.1 Конец эпохе якорей
      Убраны якоря Anchors и вместо них добавлено свойство RelativePosition. В первых версиях FGX Native была поддержка якорей, как это сделано в FMX и VCL, однако, после анализа работы с системой выравнивания стало очевидно, что якоря устарели из-за их главного недостатка – это невозможность легко задавать конкретное значение отступа контрола относительно родителя. Например, если требуется расположить компонент в правом нижнем углу с отступом от угла в 10 пикселей с двух сторон, то это крайне тяжело сделать с концепцией якорей. Поскольку требуется вычислить координаты правого нижнего угла компонента и только потом постепенно пододвигать компонент для выставления желаемых значений отступов.
      Вместо этого используется подход, как в CSS. Введено свойство RelativePosition, которое позволяет задать положение контрола относительно всех четырех сторон родителя вместе или частично.  Достаточно указать значение расстояния от нижнего и правого краев, и контрол автоматически буде т прижат к правому нижнему углу на указанном расстоянии.

      Помимо этого, в новой системе выравнивания, данное свойство позволяет реализовать накладывание контролов друг на друга в стеке.
      3.2 Обновление Yoga
      Обновление йоги до последней актуальной версии с исправлением ошибок.
      3.3 Абстракции для системы выравнивания
      Несмотря на то, что система выравнивания FlexBox внедрена в библиотеку на нижнем уровне, это не означает, что все контролы должны ее использовать. Совершенно допустимо реализовать свой кастомный вариант выравнивания для вашего специфичного компонента. Для этих целей были выделены интерфейсы для маркировки, какие компоненты должны использовать автоматом встроенную систему выравниванию.

      4. Графика:
      Реализована возможность задавать скейл для битмапа, отвечающего за то, как изображение будет выводиться на экране.
      5. Расширение возможностей компонентов
      5.1 TfgDrawer
      Новые события: OnBeginOpen, OnOpened, OnBeginClose, OnClosed, OnStateChanged, OnSlideChanged;
      5.2 TfgApplicationEvents
      Добавлены новые события компонента мониторинга основных событий приложения
      OnSaveApplicationState - Срабатывает, когда приложению нужно сохранить свое состояние, так как оно может быть закрыто OnRestoreApplicationState - Срабатывает, когда приложению нужно восстановить свое состояние после запуска. 5.3 TfgCollectionView
      Один из ключевых компонентов построения интерфейса мобильного приложения. За последнее время разработаны функционалы:
      выделению элементов в списке Мультиселект Тинт Глоуэффект, отображаемый при прокручивании списка за границы контрола Методы по скроллингу контента Возможность динамически менять высоту элементов в рантайме

      Screenrecorder-2018-10-03-01-54-40-72.mp4
      5.4 TEdit
      Задание цвета оттенка поля ввода (тинт)
      5.6. TSwitch
      Добавлен тинт эффект.
       5.7. TfgForm
       OnKey – новое событие по обработки нажатия кнопок
      6. И просто баг фиксинг
      История изменений
      [0.1.0.0] - Alpha 02.10.2018
      ВАЖНО:
        - Теряется обратная совместимость!
      * Глобальная работа концепцией ресурсов:
        - Полностью переработана концепция ресурсов и приведена к единой терминологии. 
        - TfgAsset - это абстрактный ресурс, предназначенный для указанного класса устройств и платформы. 
        - Ассет может быть любым. В текущей версии поддерживается два типа: цветовой TfgAssetColor 
          и набор картинок TfgAssetBitmapSet.
        - TfgAssetColor - ресурс, содержащий цвет в ARGB формате.
        - TfgAssetBitmapSet - ресурс, содержащий версии одной картинки в разных масштабах.
        - TfgAssetBitmapSet - поддерживает указание правил нарезки изображения аналог 9-patch для возможности 
          "натягивать" картинку на контрол любого размера. (TfgBitmapInfo.CapInsets)
        - Центром управления всех ассетов является TfgAssetManager. Имеено через него можно добавить,  
          найти или удалить ассет и многое другое.
        - Заменено свойство TfgControl.Background на TfgControl.BackgroundName. И теперь здесь достаточно 
          указать название графического ресурса, которое будет использовано для заполнения заднего фона 
          (цвет или изображение).
        - Удалено свойство TfgImage.CapInsets. Теперь оно является частью картинки и должно задаваться 
          именно там.
        - TfgImage поддерживает не только задание ассета с картинками, но и цветового ассета. В этом случае 
          контрол будет полностью заполнен цветом.
        - Изменен формат хранения информации об ассетах в config.json файле. Теперь формат поддерживает 
          расширение ресурсов и позволяет добавлять свои кастомные типы.
        - Если раньше дизайнер развертывал файл config.json целиком, включая даже пустые ресурсы и ресурсы для ios. 
          То теперь IDE собирает специальную сокращенную версию config.json, вырезает от туда пустые ресурсы. 
          Благодаря этому немного уменьшается время запуска приложения.
        - Полностью переработан дизайнер ассетов для IDE. Теперь он поддерживает работу с ассетами разных типов.
        
      * #12 [TfgImage, TfgLayout] Заполнение изображением с CapInsets
      * #28 [Designer] [FGX Assets manager] Ошибка с одинаковыми именами картинок в различных папках
      * #39 [Designer] GFX Assets manager - вылеты
      * #67 [Designer] Добавить в дизайнер новый режим отображения границ контролов.
      * Исправлено отображение иконки блокировки контрола Locked для иконки невизуального компонента.
      [0.0.6.0] - Alpha 05.09.2018
      * #66 [Designer] Адаптировать автоматическое создание обработчиков для компонентов при двойном клике
        Теперь при двойном нажатии на контрол для автоматической генерации обработчиков для событий предпочтение 
        отдается следующим событям в порядке возрастания приоритета: 'ONCREATE', 'ONTOUCH', 'ONTAP', 'ONCHANGE', 
        'ONCHANGED'. А для формы всегда выбирается OnCreate.
      * #29 [Designer][Assets Manager] Продублировать открытие дизайнера из главного меню в менеджере проекта
      * #38 [Designer] Автоматическое открытие GFX Assets manager
      * #62 Создание новой формы в демо-проекте дает ошибку project already contains a form or module named TForm1
      * #63 Баг при выделении контрола
      * #64 [TfgWebBrowser] При повторном показе html-страницы содержимое сильно увеличивается
      * #65 [Lolipop] [Java bridge] Поддержка загрузки приложения на андроиде 5.Х
      * Исправлена ошибка дизайнера, не позволяющая загрузить IDE под Windows 7.
      [0.0.5.1] - Alpha - Hotfix 28.08.2018
      * Правка подхода к изменению порядка контролов. К сожалению пришлось отказаться от решения смены порядка, основанного на работе панели Structure, 
        по скольку в ней содержится баг, который периодически сбивает сортировку узлов по индексу. Вместо этого в этом релизе сделано отдельное 
        диалоговое окно смены порядка контролов на подобии "Tab order...", "Create order...". 
        Открыть окно можно:
          - через главное меню "Edit->Alignment Order..."
          - через контекстное локальное меню дезайнера.
        При этом если в дизайнере формы был выделен контрол, то для удобства пользования дерево иерархии контролов разворачивается до него, чтобы 
        сэкономить время пользователя на поиск интересуемого контрола. Помимо этого в окне менять порядок можно комбинацией клавиш Ctrl + Up, Ctrl + Down.
      * Реализованы методы TfgControl.BringToFront и TfgControlSendToBack;
      * В панель структуры добавлено отображение индекса для контролов, чтобы визуально можно было увидить порядок следования контролов. 
      * Подчищено контекстное локальное меню формы. Убраны пункты меню, которые не актуальны.
      * Исправлена ошибка неверного положения рамки выделения первого компонента. При первом добавлении компонента на форму рамка выделения всегда 
        находилась в левом верхнем углу. 
      * Исправлено неверное расположение текста на кнопке в дизайн тайме, если у кнопки нету картинки.
      * Добавлено отображение картинки замка в верхнем правом углу контрола, если он залочен при помощи свойства TfgControl.Locked. 
        Если контрол очень маленький, то замок не рисуется  
        
      [0.0.5.0] - Alpha 25.08.2018
      * Отключена регистрация TfgListView, TfgScrollBox, TfgTabBar, TfgToolBar до момента, когда они будут готовы.
      * #2 Не открывается дизайнер формы при создании нового проекта
      * #22 Не перемещаются положенные на форму не визуальные компоненты
      * #53 [Android] Предложение: сделать помошника для перехода по URL
        Application.OpenUrl
      * #55 [TfgWebBrowser] Не скроллится содержимое TfgWebBrowser
      * #56 [TfgRadioButton] Не работает VertAlign для текста
      * #58 [Feature] [Designer] Реализовать смену порядка контролов через панель структуры
        
        - Теперь панель "Structure" сортирует контролы не по имени, как это принято, а по индексу.
        - Чтобы поменять порядок контрола в рамках родителя нужно воспользоваться стрелками на панели "Structure".
        - Чтобы программно задать порядковый номер контрола, можно воспользоваться свойство TfgControl.Index.
      * #59 [Designer] [TfgControl] Реализовать свойство Locked
      * #60 [Designer] Реализовать добавление компонента на форму с палитры путем перетаскивания Drag and Drop
        
      [0.0.4.0] - Alpha 31.07.2018
      * Глобальное обновление функционала TfgCollectionView:
        
        - Добавлен функционал выделения элементов.
        - Добавлены русскоязычные описания всех методов, событий и свойств в FGX.CollectionView.
        - Добавлено демо CollectionViewSelectionDemo, демонстрирующее работу выделения.
        - Рефакторинг реализации под Андроид с дальнейшей целью сделать TfgListView и TfgListMenu на базе TfgCollectionView.
        - TfgCollectionView.SelectionColor - цвет выделения по умолчанию.
        - TfgCollectionViewStyle.SelectionColor - цвет выделения для элементов одного стиля.
        - TfgCollectionViewStyle.Selectable - поддерживают ли элементы данного стиля выделение.
        - TfgCollectionViewStyle.Clickable - Поддерживает ли элемент нажатие. Влияет на работу событий OnTapItem.
        - TfgCollectionView.SelectionMode - Режим выделения.
        - TfgCollectionView.SelectionMode - Режим выделения.
        - TfgCollectionView.OnSelectionChanged - выделение изменилось. Получает на вход список всех выделенных элементов
        - TfgCollectionView.OnItemSelectionChanged - выделение у элемента поменялось. Срабатывает для одного элемента при изменении его состояния выделения.
        - TfgCollectionView.ResetSelection - сбросить выделение
        - TfgCollectionView.ResetSelection - сбросить выделение для одного итема
        - TfgCollectionView.SelectItem - выделить указанный элемент
        - TfgCollectionView.SelectAllItems - выделить все элементы
        - TfgCollectionView.Selection - Список индексов выделенных элментов.
        - TfgCollectionView.ReloadItem - Метод обновления данных для указанного элемента
        - TfgCollectionView.Count - возвращает количество элементов в списке
        - TfgCollectionView.GetStyle - Возвращает стиль по его имени
        - TfgCollectionView.GetStyleForItemIndex - Возвращает стиль указанного элемента
        - TfgCollectionView.CreateStyle - создает новый стиль с уникальным именем
        - TfgCollectionView.ScrollToItem - Прокручивает список к элменту с указанным индексом.
        - Теперь при нажатии на TfgCollectionView не выделяется контейнер стилей, а выделяется TfgCollectionView.
        - Теперь можно добавить новый стиль через контекстное меню дизайнера при нажатии на TfgCollectionView.
        - Исправлены ошибки с перетаскиванием элементов стиля.
        - Исправлена ошибка неверной генерации названия нового стиля.
        - Исправлена ошибка, из-за которой новый добавленный стиль не появлялся в структуре и не мог быть выделени.
        
      * #16 [Deploy] Реализовать статичные картинки для сплеш скрина.
      * #21 [TfgCollectionView] Предложение: Реализовать возможность отображения выбранного элемента
      * #37 [Designer] Вложенные компоненты
      * #51 [fgCheckBox] отсутствует событие OnChanged
      * #52 [TfgCollectionView | Предложение] Добавить ScrollTo
      * Добавлено событие OnChanged для TfgRadioButton
      * Опубликовано свойство GroupName для TfgRadioButton
      * Пофикшены дефолтный размеры TfgRadioButton из-за чего раньше компонент не помещался в размеры и обрезался.
        
      [0.0.3.1] - Alpha 29.07.2018
      * #50 [FMX | Manifest] В новом FMX-проекте создается неправильный манифест
      [0.0.3.0] - Alpha 28.07.2018
      * #19 [Platform] Добавить хелпер для работы с сервисом локали IFGXLocaleService
      * #23 [Device skins] Не открываются разные шкурки устройств в дизайнере
      * #26 [Yoga FlexBox] Убрать якоря и ввести свойство RelativePosition
      * #31 [Designer] Ошибка при выборе класс устройства из выпадающего списка в дизайнере формы
      * #32 [Designer] Хинт кнопки переворота
      * #33 [Designer] Для кнопки увеличения масштаба не верно указана иконка
      * #34 [Designer] Не меняются цифры при изменении размера
      * #41 [Designer] Не работает кнопка поворота устройства для Universal класса
      * #44 [TfgRadioButton] При добавлении компонента приложение зависает при загрузке
      * #45 [Deploy] Неправильный деплой иконок в новых проектах
      * #46 Проблема манифестом при создании FGX проекта
      * #49 [Designer][Assets Manager] Сделать сохранение локального пути к картинкам относительно папки проекта
      * Пофикшена проблема с невозможностью использовать TfgCheckBox
      * Исправлена проблема, из-за которой FGX подменял список файлов деплоя для FMX приложений из-за чего FMX приложения крашились на старте
      * Теперь, если у проекта еще не было манифеста или файла со стилем, то они автоматически создаются перед компиляцией.
      * Исправлена ошибка, которая могла отключать из деплоя файл classes.dex, если в проекте использовалось более одной конфигурации сборки.
      [0.0.2.0] - Alpha 25.07.2018
      * #2 Не выделяется компонент, если у него или родителей стоит HitTest=False
      * #3 [NavigationBar] Ошибка в названии события OnNavicationIconTap
      * #4 [NavigationBar] Надпись в дизайнере TITLE при пустом свойстве 
      * #7 [FGX Assets manager] Проверка допустимых символов
      * #9 [Project Options] Не меняется иконка проекта
      * #14 [Designer] Добавить иконку библиотеки FGX на сплеш скрин студии с указанием загружаемой версии FGX
      * #15 [FGX Assets manager] Если переименовать картинку, то картинка со старым именем физически остается в папке Assets
    • От Brovin Yaroslav
      Приступил к работе над большим демо-проектом, который призван продемонстрировать работу каждого компонента в библиотеке FGX Native. Работа будет продолжаться по мере добавления новых компонентов.
      Данный демо проект нужен не только показать возможности библиотеки, но он так же станет своеобразным наглядным руководством по настройкам компонентов. Ниже представлен пример страницы приложения, посвященный компоненту TfgLabel.

    • От Brovin Yaroslav
      О чем эти слова?!?!
      Да все о том же, о гибкой системе выравнивания FlexBox и об используемой реализации этой системы Yoga.
      На этот раз решаем задачу сохранения пропорций в размерах контролов. Представьте себе. что ваши встраиваемые изображения должны всегда сохранять соотношение сторон 16 к 9. Чтобы такого добиться в VCL и частично в FMX, вам придется написать код. Хоть он и простой, но написать его придется. в FGX Native введено новое свойство AspectRatio для Size. Его основная идея задать соотношение ширины к высоте контрола. А дальше система выравнивания сама все сделает за вас и при изменении ширины или высоты контрола (в зависимости от других настроек) автоматически вычислит высоту или ширину и сохранит пропорцию.
       


    • От Brovin Yaroslav
      Расширяем границы возможностей одного из самых базовых контролов после кнопки ;-) - TfgEdit.
      Большое количество нововведений, среди которых ряд гибких настроек:
      Правила автоматической расстановки заглавных букв AutocapitalizationType. Настройки типа используемой клавиатуры KeyboardType. Правила автоматической коррекции опечаток в словах AutocorrectionType. Настройки шрифтов Font. Настройки цвета текста Color. TextPrompt - текст подсказка. Настройки пароля IsPassword. Ограничение длины вводимого текста MaxLength. Настройки проверки правописания и выделения ошибок SpellCheckingType. Режим только чтения ReadOnly. ReturnKeyType. А еще было добавлено событие OnTap для всех контролов, которое позволяет отследить именно нажатие на контрол. 
       

    • От Brovin Yaroslav
      Работа над API продолжается. В этот раз руки дошли до асинхронной реализации ShowMessage.
      Впереди еще диалоговые формы ввода строковых данных и классический MessageDlg.
       



    • От Brovin Yaroslav
      Добавлен новый компонент - TfgTimer таймер ⏰🕰⌛️
      В отличии от VCL и FMX реализации таймера в FGX по мимо обычных настроек имеет ряд дополнительных, которые расширяют возможностииспользования компонента:
      Возможность выбирать вариант реализации таймера, который будет сказываться на точности работы таймера и принципах его работы (потоковый таймер, системный, на петле событий и тд). В каждой системе существует несколько реализаций таймера, которые между собой отличаются по точности и принципам работы. TfgTimer позволяет выбирать реализацию таймера в зависимости от ваших нужд. Пока реализован стандартный потоковый таймер с синхронизацией с UI потоком. Отсрочка до первого срабатывания таймера Delay.
    • От Brovin Yaroslav
      Добавлен новый компонент TfgCardPanel. 
      Панель из Material Design, добавляющая возможности по настройки внешнего вида согласно стиля https://material.io/guidelines/material-design/elevation-shadows.html#elevation-shadows-elevation-android 
      Данный контрол используется во многих сценариях мобильной разработки, от использования в прокручиваемых списках и заканчивая сложными разметками, где требуется эффектно показать полученную информацию пользователю приложения.
      Компонент позволяет настроить уровень (elevation) по оси Z, радиусы скругления и цвет заднего фона. 
      На скриншотах ниже вы можете видеть, как легко можно составить эффектное отображение информации в виде карточки при помощи нового компонента.



    • От Brovin Yaroslav
      Время улучшения дизайнера форм пришло! 🚀
      Как часто вы, выбирая компонент в дизайнере формы, ищите среди свойств компонента значения размеров, позиции, внешних и внутренних отступов?
      Мы посчитали, что очень часто, и решили сэкономить ваше время, чтобы вы могли потратить его на решение других более важных задач.
      Поэтому представляем вам новую информационную панель с параметрами позиционирования и выравнивания компонента. Она уже умеет показывать текущие значения выделенных компонентов и скрывать не нужные. 
      P.S. А еще в будущем она научится визуально показывать области отступов и границы контролов прямо в дизайнере.


    • От Brovin Yaroslav
      Новый компонент TfgApplicationEvents для централизованного мониторинга вашего мобильного приложения.
      Отслеживает изменение системных событий вашего приложения и предоставляет эти данные в одном месте.
      1. OnApplicationStateChanged - Произошла смена состояния приложения
      2. OnException - произошла ошибка в приложении
      3. OnLowMemory - мало оперативной памяти
      4. OnScreenOrientationChanged - изменилась ориентация экрана
      P.S. События будут пополняться.


    • От Brovin Yaroslav
      Новые обновления компонентов TfgProgressBar и TfgActivityIndicator.
      В вашем приложении нужно отобразить выполнение длительных операций? ⏱⌛️ Тогда эти два компонента то, что вам нужно. Первый позволяет отобразить прогресс выполнения вашей задачи, когда вы можете ее оценить. Второй - когда не известно, через какое время закончится ваша фоновая задача. Оба компонента имеют ряд опций по настройки внешнего вида. 
      Смотрим видео работы демки с компонентами. (Видео снизу 👇)
       
      Screenrecorder-2018-03-31-01-03-42-314.mp4



  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу