Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE4

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Открыть новую тему     Написать ответ в эту тему

AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Печально будет, если Эмбаркадеро выберет тактику быстрого покрытия платформ при негодном качестве, а качественные решения будут отданы на откуп сторонним нативным реализациям.

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

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 11:57 01-06-2013
miwa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
это будет отлично. Все, что нам нужно от эмбы - это нормальный компилятор + отладчик  

+1
 
Если бы в лазаруса отладчик был удобнее, давно бы полностью на него перевел все дельфийские проекты.

Всего записей: 455 | Зарегистр. 10-10-2004 | Отправлено: 12:36 01-06-2013
valgreesh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlekXL

Цитата:
это будет отлично. Все, что нам нужно от эмбы - это нормальный компилятор + отладчик

Это будет ужас. О едином кодбейзе, хотя бы в рамках близких платформ, можно будет забыть. Разработчики компонентов либо будут вынуждены осваиваться на разных платформах, которые им могут быть вообще не интересны, либо забьют на все кроме винды, что вероятнее всего и произойдет. В результате получится, что на виндах будет богатый выбор компонентов, а на всех остальных ОС только стандартные контролы. П-ф-ф, я лучше на Lazarus уйду при таком раскладе.
 

Цитата:
И лучше платить за качественные(нативные) решения, чем за поделия FMX

В том то и дело, что платить придется и за кривую обезьяну и за решения под каждую платформу.

Всего записей: 292 | Зарегистр. 30-11-2011 | Отправлено: 13:55 01-06-2013
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sergionn
 
Вот чтобы не влетать на косяки технологии я настоятельно советую делать экспериментальные софтины! ) Причем, в контексте своих задач!) Я так закрыл для себя тему PhoneGap (раньше чем Facebook
 
А новая версия часиков - он туда вставил обертку над iAd от саймона. У нас iAd вроде бы не показывает ничего (как и в скайпе у нас рекламы нету), а за бугром баннеры крутят)
 
2 all
 
Хороший обзор Delphi for iOS от blong: _http://blog.blong.com/2013/05/delphi-for-ios-some-notes.html
 
Весьма предметно и здраво пишет, мало marketing, много тех деталей.

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 23:11 01-06-2013 | Исправлено: deks, 19:58 02-06-2013
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
обзорчик iCL
 
"Не корысти ради, а токомо по любопытству" посмотрел я в боевых условиях свежую поделку от TMS под зашифрованным именем "iCL". Что бы означало сие название мне неведомо, но скрывается под ним набор native components. Оч любопытно - поэтому решил установить и посмотреть. Ради этого специально залил на клон своей dev vm XE4 (в редакции lite - для экономии времени).  
 
Отдельно хочется сказать про IDE XE4 в целом. Поддержка on-device разработки в XE4 отстает от Oxygene for Cocoa. Во-первых, компилятор для ARM ПРЯМ ТОРМОЗНОЙ. Он реально медленнее раз в пять чем компилятор для iOS Симулятора. Во вторых, PA Server не имеет GUI, в отличие от аналогичного по функциям CrossBox. В тертьих, настройки для deploy приложения разбросаны по разным табам и окнам в опциях, поэтому если нету опыта фиг настроишь без вкуривания документации. В четвертых, система "унаследования" параметров проектов из опций среды глубоко глюкавая. Ну и следует быть готовым к ожиданию деплоя в минуту, неинтуитивным сообщениям об ошибках (например - "не могу скопировать пакет" означает что дивайс не добавлен как development в XCode organizer). Ну и опция developer certificate в настройках - это не dev profile name, это именно имя записи в связке ключей с установленным сертификатом. Выбрать ее из списка как в Oxygene нельзя.
 
Не копаясь глубоко во внутренностях самой библиотечки, скомпилировал и задеплоил на два дивайса файлы примеров Overview и CustomCells.
 
Во-первых, что бросается в глаза. В дизайнере дельфи вместо компонентов видны рамки с именами - почти как в XCode когда кастомные контролья дизайнишь) В целом после победы над глюками среды и настройками проект отправляется на дивайс. Софт сырой, падало пару раз. Впрочем - чья это проблема сложно сказать. Например, пока запущен paserver, instruments цепляется с процессу через раз (paserver держит программу хотя она выгружена в менеджере задач - как это можно сделать, хз, аналогичного эффекста с CrossBox мне никогда не удавалось достичь!).  
 
Теперь к результатам тестов под instruments. Все очень даже неплохо, особенно в сравнении с FMX! Расстраивает только вес приложений (15Mb), зато cpu/mem в порядке. Запускается 3-5 секунд. CPU обычно в пределах 10-15%, максимальные скачки до 35%. Эффекты transition стабильно в 7% cpu укладываются. Real mem не поднимается выше 45Mb в обоих приложениях, с 170Mb virtual mem. Это ок. В общем, картина похожа на Xamario.iOS, что не самый грустный вариант! Не понятны только периодические падения CustomCells но закономерности выявить не удалось.
 
upd посмотрел потроха iCL. Представляет собой обертки над Objective-C контрольями. Все свойства дельфового компонента в геттерах-сеттерах транслируются в Objective-C контрол. Ничего особенно гениального. Вся фича, видимо, в том, что форма FMX является UIView (ну с поддержкой OpenGL), значит можно просто добавлять туда нативные контролья. Все что сделал iCL - это обертки над такими контрольями с понятными для дельфей свойствами. Еще не разобрался как решен вопрос с изменением размеров.  

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 13:27 03-06-2013 | Исправлено: deks, 13:40 03-06-2013
sergionn

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
deks
спасибо за обзорчик,
т.е. подитоживая, чтобы этот нативный гибрид сравнялся хотябы с xamarin.ios потребуется еще как минимум 1-2 релиза.....
печально, что и здесь никак не избавиться от 15мб наследия fmx,  - начальный размер конечно не большой по современным меркам, но при коммерческой эксплуатации отсечет определенное количество пользователей, остальных отсекут скудная функциональность  и возможные баги, вердикт - опять невозможно для ком.разработки.......

Всего записей: 472 | Зарегистр. 02-11-2011 | Отправлено: 13:57 03-06-2013
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sergionn
 
Не все так печально. Из плюсов: такой подход к UI значительно шустрее FMX контрольев. Выглядит и работает все стандартным образом.  
 
Из минусов: iCL это очередная песочница, то есть доступны только те возможности, которые поддерживает "обертка".  
 
В целом, убогость текущего подхода происходит из беды самих дельфей: в Delphi очень гемморройный interop с платформой - классы нужно оборачивать в Wrap, несовместимость при вызове с нативными типами и классами.. Все это можно победить, но геморройно.  
 
Вот и думай: лучше сохранить какой-то багаж legacy кода (и то не факт как он заведется под NextGen компилятором), но иметь геморрой с UI и сторонними библиотеками на платформе. Кстати, я так и не увидел ни одного реального примера программы, которая бы имела одинаковый интерфейс и на телефоне, и на desktop.  
 
По мне лучше как в оксиджене - имеешь реально простой доступ к сторонним компонентам платформы, но под платформу пишешь специальный клиент со своим UI.  
 
Посмотрим, что ЭМРО придумает для Андроида)) Пусть они покажут, как путем смены стиля "брюки превращаются..." (ц)

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 14:10 03-06-2013
DemonMetalist



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть способ победить tfloatanimation в firemonkey, который идёт рывками?

Всего записей: 147 | Зарегистр. 02-11-2006 | Отправлено: 15:50 03-06-2013
Eternal_Shield

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
deks

Цитата:
Из минусов: iCL это очередная песочница, то есть доступны только те возможности, которые поддерживает "обертка".  

Может тупость скажу, но разве VCL не те же ограничения? Например, если хочешь использовать ListView по полной, то придётся самому дописывать недописанное, т.к. описано в VCL только 40% функционала.
 
Честно, не понятно, в чём минус.
 

Всего записей: 767 | Зарегистр. 18-05-2009 | Отправлено: 15:59 03-06-2013
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DemonMetalist
 
Я не в курсе про такие способы. Возможно, есть способ задействовать "родные" анимации - по крайней мере slide transition с iCL работает не в пример шустрее того, что на FMX сделано.
 
Eternal_Shield
 
Не путайте Win32 которой сто лет в обед, и iOS. Delphi для Win32 был очень родным и нативным средством разработки - поддерживал компонентную модель "в языке" (COM), сообщения (message) и тп. Поэтому дописывание функционала в Delphi для Win32 привело к  появлению хороших компонентов, которые неплохо работали внутри Win32. Ну и win32 все ж не был таким объектно-ориентированным.
 
Под iOS диспозиция другая - если "импортировать" внутрь Delphi какой-то ObjC контрол еще можно, то  полноценно расширить его будет сложно. Я до сих пор не понял - можно ли унаследоваться от класса ObjC - походу, нет, так как ObjC классы вроде бы как интерфейсы отображаются в Дельфи. А это значит геморрой с кастомными ячейками для списков и тому подобные проблемы. Еще проблемы - дать библиотеке контейнер, который она заполнит (NSArray / NSDictionary). Для Дельфи это будет не нативный контейнер, который неудобно использовать (for in конструкция вроде как не будет с ними работать). И не путаем: CocoaTouch/Cocoa это вполне себе мощный объектно-ориентированный фреймворк. Беда в том, что его объектно-ориентированные возможности в дельфи задействовать можно довольно убого - типа, на чтение. Вот в этом и проблема!
 
Upd: сравните ситуацию со строками - для Win32 был введен специальный тип строк, который в COM использовался. А вот под iOS NSString и String - две большие разницы!
 
Upd2: перефразирую кратко. Для Win32 Дельфи обеспечивал отличное взаимодействие с платформой - и сообщения, и поддержка типов, и компонентной модели, и соглашений о вызовах. Для Cocoa современный дельфи не обеспечивает такого плотного взаимодействия - нет совместимой системы типов (NSString/String, NSNumber/Int, Float etc), нет прямого расширения клсссов Objective-C, сложности с поддержкой исключений и тп.  

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 16:41 03-06-2013 | Исправлено: deks, 17:35 03-06-2013
Eternal_Shield

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
deks

Цитата:
Не путайте Win32 которой сто лет в обед, и iOS.  

А я и не путаю, просто не знаю особенностей последней
 
В целом ситуация ясна. Не думал, что interop настолько плохой.

Всего записей: 767 | Зарегистр. 18-05-2009 | Отправлено: 19:03 03-06-2013
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Eternal_Shield
 
Вот вот. Мне потому и импонирует Oxygene, что там interop хороший!) А я прям хочу посмотреть как в дельфи будут выкручиваться с импортированными Objective-C методами, которые дают одинаковую сигнатуру для Дельфи и в Objective-C отличаются разными названиями частей. Ведь Дельфи отличает перегруженные методы только по типам, без учета имен параметров. В Оксиген ввели специальную поддержку таких составных имен. Похоже, другой альтернативы нету.  
 
Ну или вызывать через Objective-С runtime (это как через RTTI) - хотя это через Ж. Впрочем, пока интероп в Дельфи с Cocoa через нее и сделан!

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 11:25 04-06-2013 | Исправлено: deks, 13:27 04-06-2013
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Во-первых, компилятор для ARM ПРЯМ ТОРМОЗНОЙ. Он реально медленнее раз в пять чем компилятор для iOS Симулятора.
Где то читал, что компилятор для симулятора внутри построен на классической архитектуре, а для девайса - на LLVM. То есть тормоза от всех этих внутрених конвертаций и оптимизаций кода внутри LLVM. А значит это не лечится, и все новые компиляторы на LLVM будут тормозными.

Цитата:
А я прям хочу посмотреть как в дельфи будут выкручиваться с импортированными Objective-C методами, которые дают одинаковую сигнатуру для Дельфи и в Objective-C отличаются разными названиями частей.Ведь Дельфи отличает перегруженные методы только по типам, без учета имен параметров. ...
Ну или вызывать через Objective-С runtime (это как через RTTI) - хотя это через Ж.
Все как вы и пишете: http://blog.blong.com/2013/05/delphi-for-ios-some-notes.html
 
А вообще, если нативность и взаимодействие с платформой так важны, то почему не использовать FPC? У него вроде как уже все готово: http://wiki.freepascal.org/FPC_PasCocoa Еще и старый код можно будет заюзать благодаря похожей RTL.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 14:05 04-06-2013 | Исправлено: Frodo_Torbins, 14:07 04-06-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://docwiki.embarcadero.com/RADStudio/XE4/en/Conditional_compilation_(Delphi)
вообще да, судя по наличию ассемблера, под симулятор компилируется не через LLVM, а старым компилятором, вероятно наработки еще от Кайликса остались

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 17:30 04-06-2013
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
 
Я так понял, что NextGen компилятор сейчас генерирует только ARM код. собственно, LLVM то и нужен был, чтобы генерировать байткод для ARM, так как ЭМРО было бы дорого сделать приличный компилятор еще и для ARM.  
 
Беда в другом - сам по себе LLVM модульный. Но вот RAD Studio вообще не задействует его модульность. То есть, при переписывании ядра IDE с учетом возможностей LLVM все было бы прилично: парсер бы работал в фоне прямо в среде, а бэкэнд отрабатывал бы тоже фоном, а по нажатию кнопки Run только бы бандл приложения паковался б. Например, XCode который тот же LLVM использует - вообще ужастно быстрый, почти как/быстрее Delphi.  Сложно сравнивать кто именно быстрее - в последнее время (года 3-4) у меня win живет в vm, а все ж не корректно сравнивать нативно выполняющийся xcode и код внутри vm.  
 
По поводу FPC. Наверное, неплохое решение, кстати, есть даже IDE под OS X, но мне оно кажется менее элегантным, чем Oxygene. Поэтому у меня и подписка на оксиген
 
По поводу "заюзать старый код". Я тут (года два назад) делал свои прикидки - а чего мне реально нужно тянуть в кросс-платформу? Для этого пару имевшихся проектов (я назвал их "экспериментальными") перешерстили на предмет, разложить "по кучкам" собственно логику приложения, вспомогательные UI-штуки (типа, главная форма с "браузером" формочек, кнопки back, history посещенных форм и тп), вспомогательные платформенно-зависимые штучки (типа, сохранение параметров конфигурации в ini/реестр), вспомогательные штуки для работы с сервисами (rest/собственные сервера приложений), компоненты (отчеты, парсеры всяких XML, JSON, Markdown, YAML, etc).  
 
В общем, оценивая размер кучек пришли к невеселому выводу - большая часть кода она не к приложению относится. Само приложение - это процентов 10-15! Это такой "клей", который сторонние "крипичи" склеивает в некую конструкцию.
 
Потом глянули, как дела с "кирпичами" в Objective-C (да, были планы миграции/экспансии). Вы знаете, неплохо. Я бы сказал, что с библиотеками отдельных типов там ГОРАЗДО лучше чем в Дельфи. Беда в том, что это именно библиотеки, а не компоненты. Впрочем, особенной трагедии нету - терпимо, я по дизайнеру форм не особо скучаю. Благо значительная часть формочек все равно на лету делается, в коде. И библиотеки есть на любой вкус - и для сервисов, и визуальные компоненты всякие хитрые.  
 
Есть некоторая беда с доступом к базам данных, особенно из iOS. Но все решается веб сервисом. Наверное, даже правильнее такие решать веб-сервисом и кэшированием на клиенте. А это лишний раз говорит о необходимости переделывания приложения под мобильный мир: нельзя вот как в десктопе держать постоянное "живое" подключение к БД. Да и какой админ вам даст выставить БД "в интернет".  
 
Такая же беда с отчетами (reports) - ну нету их как класса под ObjC. Полностью испортило программистов под Cocoa возможность нативно делать PDF. Так что печать документов - ручками. Это не сложно, но визуального дизайнера как в FastReport не предвидится. Не понимаю, почему ушлые фастрепортовцы не сделают Objective-C библиотеку сабжа. Видимо, который год выпускают FR5!
 
В общем, к чему я это все? Нафиг не нужен "старый код". Хитрые куски алгоритмов перенести не проблема. А вся остальная обвязка делается "по месту". Да и Оксиген то нужен в основном из-за муторного синтаксиса ObjC)
 

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 18:49 04-06-2013
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кому пригодится
Примеры fibplus для firemonkey http://devrace.com/files/fibplus_examples_fmx.zip

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 00:05 05-06-2013
LadyOfWood

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Для Win32 Дельфи обеспечивал отличное взаимодействие с платформой - и сообщения, и поддержка типов, и компонентной модели, и соглашений о вызовах. Для Cocoa современный дельфи не обеспечивает такого плотного взаимодействия - нет совместимой системы типов (NSString/String, NSNumber/Int, Float etc), нет прямого расширения клсссов Objective-C, сложности с поддержкой исключений и тп.

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

Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 12:14 05-06-2013
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LadyOfWood
 
Подобная задача не просто решаема, она фактически решена в Oxygene for Cocoa. И ресурсы у RemObjects - это 2,5 разработчика!  
 
P.S. Разработчики на самом деле хорошие! Они в свое время уделали Borland/CodeGear с поддержкой .NET компилятора, а теперь Cocoa.. У них, кстати, и Java давно работает! "никогда такого не было, и вот снова!" (ц)

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 12:54 05-06-2013 | Исправлено: deks, 13:08 05-06-2013
valgreesh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
deks

Цитата:
Они в свое время уделали Borland/CodeGear с поддержкой .NET компилятора

Не уделать словившего шизу  и решившего закопать дельфу Борланда было бы странно. На самом деле Delphi for .NET была совсем даже не плохой, просто в плане языка сильно отстала от моды и кодгиру было бы тяжко тянуть два компилятора да еще и адаптировать RTL + VCL. В общем ремобжектцы годно угадали с моментом. Но что они предлагают? Голый компилятор. Ни собственной RTL, ни чего-то вроде VCL. Ну правда, FPC + Lazarus выглядит куда как интереснее.

Всего записей: 292 | Зарегистр. 30-11-2011 | Отправлено: 14:11 05-06-2013
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
valgreesh

Цитата:
FPC + Lazarus выглядит куда как интереснее

 
Дело вкуса. По мне - так FCL/RTL от FPC довольно скромные в сравнении с .NET/Cocoa. С Java особенно не упражнялся, но там то вообще все в порядке с фреймвоком!))
 
Вопрос в построении приложений - не верю, что можно переносить код без переписывания программы чуть меньше чем полностью! Хотел бы посмотреть на пример таких приложений, которые и на телефоне, и на десктопном компе работают

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 16:05 05-06-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE4


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru