Блог Александра Божко
Архивы
Рубрики

admin

Вчера Андрей Совцов провёл очень интересный вебинар с участием Ярослава Бровина.  Сейчас Ярослав работает над созданием новой платформы, предназначенной для мобильной разработки. Именно для мобильной. FGX Native.

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

Основная идея FGX Native заключается в создании нативных мобильных приложений. Именно нативных и именно мобильных. FGX приложения используют нативные контролы. Таким образом, приложения, написанные на Delphi избавятся от целого ряда ограничений. Вы сможете создать приложение, которое внешне ничем не будет отличаться от написанного на той же Android Studio. Использование FGX Native для создания настольных приложений не предполагается.

Здесь я позволю себе маленький комментарий. Да действительно, недостаток Firemonkey, в том, что с его помощью создаются мобильные копии десктопных приложений. И на мой взгляд это главный недостаток. Да, многочисленные солюшны и видеоролики рассказывают о том, как делать правильную логику и интерфейсы. Но всё-равно, выходит как в старом анекдоте про Жигули и BMW. Место проклятое… По крайней мере, в моём случае точно ;)

С другой стороны, это же является и главным преимуществом Firemonkey. В случае, когда нужно разработать мобильный клиент как часть некой существующей настольной системы – Firemonkey на высоте. В принципе, для корпоративного сектора ничего другого особо и не нужно. А трудозатраты сокращаются в разы.

Но целый ряд ограничений все же не позволяет делать с помощью Firemonkey всё, что хочется в плане интерфейса.

И здесь сразу возникает множество вопросов, связанных с возможностями нового продукта, состоянием его готовности и перспективами развития. Собственно, в ходе вебинара, который затянулся почти на два часа вместо запланированного часа, Ярослав демонстрировал FGX Native и отвечал на вопросы.

Перескажу вкратце.

Дизайнер форм мне очень понравился. Там реализован принцип Flexbox и выглядит это действительно впечатляюще.

Были продемонстрированы некоторые компоненты. В частности ListView. Насколько я понял, с ним можно работать так же легко как и с ListBox в FireMonkey, но при этом он работает так же шустро как ListView.

было запущено тестовое приложение.

Я еще раз советую посмотреть запись вебинара, лучше один раз увидеть.

Что касается информации о самом продукте (из того, что я запомнил).

  • FGX Native  не использует Firemonkey и является абсолютно независимой платформой.
  • FGX Native не запускаются и не отлаживаются под Windows.
  • Приложения работают довольно быстро, точные замеры будут проводиться позже.
  • Размер приложений меньше чем у приложений Firemonkey. Пока не понятно на сколько. Но не на порядок.
  • Структура классов компонентов приближена к структуре классов аналогичных VCL компонентов. насколько это возможно.
  • Сначала планируется поддержка Android, затем iOS.
  • К лету планируется закрытое бета-тестирование. К осени – релиз.
  • Распространятся будет по подписке. Цена точно не известна, но Ярослав обещает, что она будет демократична.
  • Lazarus поддерживаться не будет.

И всё же, является ли FGX Native конкурентом Firemonkey? Этот вопрос прозвучал напрямую. Ярослав на него ответил.

Я выскажу своё личное мнение. Да! Конечно, в определённой степени является. При чем это хорошо как для конечных пользователей, так и для Embarcadero. Дело даже не в “волшебной руке рынка”. Дело в том, что в Delphi изначально закладывалась концепция расширяемости за счет пользовательских решений. И подобное решение не только стимулирует развитие Firemonkey, но так или иначе способствует популярности Delphi.

Что касается непосредственно FGX Native, – нисколько не сомневаюсь, что у Ярослава получится отличный конкурентоспособный продукт.

P.S.

Чуть позже данный пост будет обновлен ссылками.

Сегодня вышло третье обновление Delphi Tokyo.

Компания Embarcadero выпустила обновление 10.2.3 для RAD Studio, Delphi и C++Builder, входящих в релиз Tokyo Update 3.
Официальное объявление: https://community.embarcadero.com/blogs/entry/announcing-rad-studio-10-2-3-release

Вводное видео:

Страница DocWiki – Что Нового: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/10.2_Tokyo_-_Release_3

Список из более чем 100 исправленных публично зарегистрированных ошибок: http://edn.embarcadero.com/article/44774

Одна из многих функций довольно примечательна:

«Включена поддержка мобильной разработки в Delphi и C++Builder Professional Edition». Если у Вас есть Delphi Pro с активной подпиской на обновления, то у вас так же появляется доступ к Android и iOS без каких-либо дополнительных затрат.

Сегодня, 12/12/2017 было выпущено второе обновление Delphi 10.2.

В этом обновлении появились новые возможности, а так же были исправлены около полутора сотен  ошибок (полный список приведен здесь).

С новыми возможностями продукта вы можете ознакомится из статьи в DocWiki.

Так же на 14 декабря запланирован ознакомительный вебинар, посвящённый новой версии продукта.

 

Уважаемые коллеги!

Завтра, 07.12.2017 в 12:00 Мск состоится вебинар, посвящённый новым продуктам от Евгения Крюкова.

На вебинаре будут рассмотрены возможности FMXLinux и CrossVCL компании ksdev по созданию приложений под Linux и Mac OS.

Вы сможете составить общее представление о продуктах, а также узнаете о том, как легко можно трансформировать существующие и новые проекты, созданные как на основе FMX, так и на основе VCL.

Ведущий вебинара Всеволод Леонов. При участии Евгения Крюкова.

Предварительная регистрация – обязательная.

Сегодня была выпущена RAD Studio 10.2.1. Релиз содержит следующие новшества и исправления:

  • Повышена производительность Delphi Linux server, как для RAD Server так и для DataSnap.
  • Обновлены Delphi и C++ компилятор и  компоновщик, что  позволило решить задачу загрузки пакетов  (особенно в процессе отладки) с обновлениями Windows 10.
  • Поддержка последних версий iOS и Xcode (iOS 10.3 и XCode 8.3.2) при сборке для iOS App Store.
  • Поддержка FireDAC’ом  MSSQL 2012, 2014, 2016 и ODBC Driver 13.
  • Значительные улучшения компоновщика C ++, связанные со сборкой больших проектов.
  • Дополнительные улучшения для Android связанные с управлением рендерингом и производительностью и исправления проблем с TEdit в Android N.
  • Поддержка FireDAC’ом эксклюзивных уровней изоляции и времени ожидания транзакций в InterBase 2017.
  • Изменения в DataSize для полей типов ftInteger и ftLongWord, чтобы избежать использование платформозависмых типов LongInt и LongWord (изменения актуальны только для 64-bit Linux и 64-bit iOs платформ), и сопутствующие изменения в SetFieldData и GetFieldData.
  • Исправление 140 багов, о которых сообщили пользователи в Quality Portal.

Дополнительную информацию вы сможете найти в блоге Марко Канту.

Даже поражаюсь, насколько активно использую данную систему логгирования в своих проектах. Научился использовать её и в мобильных приложениях и даже в Delphi 7. Но об этом – в следующий раз. А сейчас небольшой солюшн.

Некоторое время назад заметил, что на машинах с Windows 10 или Windows 8 внезапно перестали отображаться CodeSite логи. При чем если программа запускается из-под IDE, то всё работает как часы, а вот если бинарник запускается отдельно, то логи не пишутся. Обычно, я стартую IDE от имени Администратора, и я сразу же подумал, что одна из возможных проблем – недостаток привилегий. Собственно говоря, догадка оказалась верна. После запуска скомпилированного приложения с повышенными привилегиями логи начали отображаться. Но такой вариант запуска приложения не всегда можно использовать. Например, при отладке dll или сервисов запуск от имени администратора будет сложно сделать.

Решение оказалось на удивление простым. Возможно оно вам тоже пригодится.

В каталоге. в котором установлен CodeSite вам следует найти папку Tools. В ней содержится пакет для установки на клиентских ПК. Просто установите этот пакет на своей машине. Переустановленный CodeSite Live Viewer будет работать корректно. Если через некоторое время проблема повторится – переустановите пакет ещё раз.

Сразу о двух новые книгах, посвящённых Delphi.

Первая – Delphi in Depth: FireDAC Керри Йенсена (Cary Jensen).

FireDAC_200  В свое время, когда я только начинал программировать и и, в принципе, еще не зарабатывал этим на жизнь, мне довелось сдавать допуск к экзамену по английскому. Те самые пресловутые тысячи. Выбор текста оставался за мной, и я решил совместить полезное с полезным ;). Интернета в его нынешнем виде тогда не было, но мне попалась подборка журналов Delphi Magazine. Несколько на мой взгляд наиболее интересных статей я прочел и перевел под запись. Среди них был и цикл статей, посвященных работе с наборами данных. Тогда для меня это послужило неким толчком. Фактически, я научился работать с БД.

Данная книга вполне может послужить чем-то подобным для начинающих разработчиков. Но и для тех, кто имеет опыт разработки DB-ориентированных приложений, она будет интересна. FireDAC – продукт достаточно мощный, и зачастую опыта использования других библиотек доступа к данным может быть не достаточно, что бы использовать весь спектр возможностей FireDAC. Тонкостей и нюансов хватает.

Ознакомиться с содержанием книги вы можете здесь: http://www.jensendatasystems.com/firedacbook/files/DelphiInDepth_FireDAC_CaryJensen_2017_TableOfContents.pdf.

Единственное, чего в книге не хватает, на мой взгляд – описание работы с DataSnap.

Книга относительно не дешевая. $44.99. Но на мой взгляд она стоит того, что бы ее купить.

Книга, как сейчас популярно, персонализирована. Т. е. после покупка она верстается в .pdf формате с вашими реквизитами.

Рекомендую.

 

Автор второй книги – Paweł Głowacki. Сотрудник Embarcadero, известный большим количеством технических статей, посвященных Delphi.

MasteringDelphi_200 Mastering Delphi – рабочее название. Вероятно, окончательный вариант названия будет другим. Что бы не возникало ассоциаций с книгами Marco Cantu. Выход книги ожидается в сентябре этого года.

Сейчас можно сделать предзаказ.

Акцент в книге, судя по аннотации, будет сделан на мультиплатформенную разработку.

Стоимость книги по предзаказу – $32,59.

Думаю, в качестве книги сомневаться не придётся. К слову, Павел как раз известен как автор целого ряда материалов, посвящённых DataSnap.

 

С тех пор как FireDAC стал частью RAD Studio, и в моём блоге появилось несколько постов, посвященных данному продукту, меня время от времени спрашивают как сделать с помощью FireDAC те или иные вещи. При чем, в большинстве случаев вопрошающие пытаются переложить свой опыт использования других компонентов доступа к данным (что вполне логично). К сожалению, описывать многочисленные нюансы работы с FireDAC просто не хватает времени. Да и опыт работы с FireDAC ограничен в основном созданием мобильных приложений.

Буквально вчера я наткнулся на весьма не плохой туториал от Дениса Симонова.

Создание приложений для СУБД Firebird с использованием различных компонент и драйверов: FireDac.

Рекомендую.

Сегодня компания Embarcadero официально объявила о выходе RAD Studio 10.2 Tokio, с поддержкой разработки для Linux.

Что нового в RAD Studio 10.2: https://www.embarcadero.com/products/rad-studio/whats-new-in-10-2-tokyo

Анонс продукта: https://delphiaball.co.uk/2017/03/22/rad-studio-10-2-available-today-linux-delphi/

Главная страница DocWiki: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/What%27s_New

Список исправленных багов (более 500): http://edn.embarcadero.com/article/44747

Видео, иллюстрирующее поддержку Delphi Linux Server: https://youtu.be/2wiD3F-nGZ8

​The Feature Matrix: https://www.embarcadero.com/docs/rad-studio-feature-matrix.pdf

Официальный вебинар, посвященный запуску продукта: https://community.embarcadero.com/blogs/entry/launch-webinar-10-2-tokyo

Иногда, в процессе отладки приложения при работе с наборами данных бывает необходимо отобразить содержимое набора.  Это не всегда просто сделать, особенно, если DataSet формируется динамически в коде программы. Для того, что бы упростить задачу я написал специальную функцию, которая использует систему логгирования CodeSite.

procedure SendDataSet(aDataSet: TDataSet; aFields: TStrings = nil);
var
  I: Integer;+-
  sLogFldType, sLog: string;
  bm: TBookmark;
  bln: Boolean;
begin
  if not aDataSet.Active then
    Exit;

  sLog := '';
  sLogFldType := '';

  for I := 0 to aDataSet.Fields.Count - 1 do
  begin
    if not Assigned(aFields) then
      bln := True
    else
      bln := aFields.IndexOf(aDataSet.Fields[I].FieldName) > -1;

    if bln then
    begin
      sLog := sLog + Format('%s', [aDataSet.Fields[I].FieldName]) + ' | ';
      sLogFldType := sLogFldType + GetEnumName(TypeInfo(TFieldType),
        Ord(aDataSet.Fields[I].DataType)) + ' | ';
    end;
  end;

  CodeSite.SendNote(aDataSet.Name);
  CodeSite.Send('sLog', sLog);
  CodeSite.Send('sLogFldType', sLogFldType);

  bm := aDataSet.GetBookmark;
  aDataSet.DisableControls;

  aDataSet.First;

  while not aDataSet.Eof do
  begin
    sLog := '';
    for I := 0 to aDataSet.Fields.Count - 1 do
    begin
      if not Assigned(aFields) then
      begin
        sLog := sLog + ' | ' + aDataSet.Fields[I].AsString;
      end
      else
      begin
        if aFields.IndexOf(aDataSet.Fields[I].FieldName) > -1 then
          sLog := sLog + ' | ' + aDataSet.Fields[I].AsString;
      end;
    end;

    CodeSite.Send('sLog', sLog);
    aDataSet.Next;
  end;

  try
    if aDataSet.BookmarkValid(bm) then
      aDataSet.GotoBookMark(bm); //
  finally
    aDataSet.FreeBookMark(bm);
    aDataSet.EnableControls;
  end;

end;

Читать далее

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика