Рубрика «Delphi» - 19

imageПри написании мобильной игры немаловажной частою разработки является написание графического интерфейса. Если выбранный для разработки игры инструментарий уже имеет все необходимое — это просто чудесно. В обратном случае придется потратить довольно много времени на разработку кода ответственного за GUI. Особенно это отягощается необходимостью проектировать под разные девайсы с разным dpi, разрешениями и пропорциями экранов. Рассмотрим один из подходов для решения этой проблемы.
Читать полностью »

Создание мобильной игры и программирование ее интерфейсаПредставим себе что вы захотели написать свою первую игру. Более того, представим что вы захотели написать ее для смартфонов и планшетов. Уже представили или действительно захотели? Что ж, в таком случае рассмотрим трудности с которыми придется столкнуться, на примере моего пути.
Читать полностью »

в 9:14, , рубрики: Delphi, jqgrid, jquery, метки: ,

Целью данной статьи не является введение в технологии или инструменты разработчика, которые в ней так или иначе упоминаются, основная цель — это дать небольшой толчок тем, кто этими технологиями или инструментами только начинает интересоваться и хотел бы понять, будут ли они полезны и покроют ли они все текущие потребности. Однако, несмотря на это, я хотел бы сказать несколько вступительных слов о Raudus.

Сталкивались ли вы с задачей переписать код достаточно успешного и уже давно используемого Windows приложения, написанного на Delphi, с тем, чтобы превратить его в Web приложение, но при этом ограничиться минимальным числом изменений исходного кода? Если да, то эта статья для вас. Есть несколько способов решить данную задачу, однако я хотел бы остановится на одном из них. Имя ему — Raudus.

Raudus — это web-framework и набор компонентов для Delphi, позволяющий создавать Rich Internet Applications (RIA). При этом сам процесс разработки мало чем отличается от разработки обычного desktop приложения. Предоставляемый при этом набор визуальных компонентов содержит аналоги большинства стандартных для Delphi компонентов — так называемый Raudus VCL. Вы используете эти визуальные компоненты, а также привычные вам невизуальные (например, компоненты прямого доступа к СУБД), и компилируете консольное приложение, которое выполняется как HTTP-сервер. По сути вся логика вашего приложения остаётся на стороне этого сервера, а визуальная часть, то бишь GUI, переносится в браузер пользователя. Потребности общения визуальной клиентской части и серверной части при этом полностью покрываются возможностями AJAX. Более подробно останавливаться на описании данного решения я не буду. На сайте Raudus есть небольшие примеры, также вы можете свободно скачать библиотеку компонентов Raudus, установить её и попробовать запустить примеры, которые идут в комплекте.

И всё же в моём случае стандартного набора компонентов оказалось недостаточно.Читать полностью »

Запуск новой RAD Studio в Москве, Санкт Петербурге и Астане

Уважаемые разработчики!

Традиционно в сентябре мы запускаем новую версию RAD Studio, этот год был для нас исключением, так как мы запускали RAD Studio XE4 в которую мы добавили поддержку iOS в апреле и получили много пожеланий и вопросов по поводу поддержки Android, так как это одна из самых популярных платформ для мобильной разработки.

В этом сентябре мы покажем вам новую версию RAD Studio в которую мы добавили долгожданную поддержку Android. С поддержкой Android вы можете создавать приложения для всех популярных платформ включая Windows, Mac OS X, iOS, Android из единой кодовой базы.

Первым городом тура мы выбрали неслучайно Санкт-Петербург, в который мы приедем за день до вашего профессионального праздника, 11 сентября. Именно в нем находится один из наших самых больших центров разработки. У вас будет возможность напрямую пообщаться и задать свои вопросы реальным разработчикам.

Следующим пунктом будет самый молодой город Казахстана, Астана, 18 сентября. Завершение тура будет в Москве 24 сентября.

Читать полностью »

Всеволод Леонов – менеджер по продуктам, «Embarcadero».
Александр Люлин – ведущий разработчик, «Гарант»
Максим Крылов – руководитель проекта, «Гарант»

Компания «Гарант» известна многим российским IT-специалистам благодаря своему ключевому продукту – системе ИПО ГАРАНТ. Большая часть сотрудников компании заняты производством ПО, а сама система имеет 23-летнюю историю развития и насчитывает десятки миллионов строк кода, написанных на различных языках программирования. При таком масштабе, языковой и технологической неоднородностях, высоких темпах производства, очень жёстких требованиях к стабильности только применение самых передовых технологий может обеспечить качество эволюционирующей системы. UML как средство моделирования, бесспорно, является одним из таких «продвинутых» подходов, применение которого в компании «Гарант» отличается высоким уровнем автоматизации со значительной долей усиления его системной роли. Сегодня своим опытом делятся ведущий разработчик системы ГАРАНТ Александр Люлин и руководитель проекта Максим Крылов.

Всеволод: Расскажите, был ли изначально использование UML принято в качестве одной из составляющей процесса разработки?

Максим: Нет, конечно, когда мы пришли в «Гарант», его еще попросту не было. Но, кажется, уже в 97-м году наш молодой и талантливый коллега (хотя в ту пору мы все были молоды) принёс дискету с одним из первых инструментов UML-моделирования. Примерно с этого момента можно считать, что внедрение UML в стенах «Гаранта» началось. Однако, до его использования в основных наших проектах, так сказать в промышленных масштабах, прошли еще годы.

Александр: Более того, использование UML внедрялось долго и в несколько этапов. По мере роста наших разработок и понимания, что без этого инструмента есть риск не справиться с всё усложняющейся структурой кода и внутренней архитектурой проектов.

Всеволод: Не было ли «идеологических разногласий»? Есть разные стили кодирования, не получалось ли так, что «у каждого свой UML»? Или UML «причёсывает всех под одну гребёнку»?

Александр: Конечно, были разногласия. И как раз в идеологической основе внедрения и было стремление все «причесать» и унифицировать имеющиеся подходы.

Максим: К тому моменту, когда использование UML из экспериментов одного-двух энтузиастов перешло в стадию проектного внедрения, у нас уже было довольно четкое понимание что это и зачем и как сделать так, чтобы не было «разных UML-ей».

Всеволод: В какой момент было принято решение посмотреть в сторону UML?

Александр: Когда появилось осознание того, что проекты сложные. Что в них задействовано много людей. Что надо как-то «договариваться». И что надо как-то «видеть» общую архитектуру проектов.

Максим: Долгое время его использование ограничивалось личными набросками для потребления узкой группой «посвященных». В какой-то момент пытались начать генерировать из него CORBA IDL. В итоге, пришли к выводу, что это почти невозможно и написали свой простенький генератор. Собственно, это и было точкой невозврата. После этого UML стал применяться в большинстве проектов, и что главное, переродился в нечто существенно большее, чем просто набор картинок, мы об этом потом чуть подробнее расскажем. Но в начале, да — просто как возможность быстрее и эффективнее договориться.

Читать полностью »

Выкладываю данную инструкцию, т.к. самому пришлось искать необходимую информацию по крупинкам. Инструкция рассчитана на людей, имеющих мало опыта в web технологиях и web разработке. Все программные комплексы настроены на выделенном под программистские нужды «сервере» под управлением Windows 7 Pro 32 bit.
Что имеем:

  • Visual SVN Server 2.6.0 (Apache Subversion 1.8.0 + Apache HTTP Server 2.2.25)
  • доступ к SVN уже настроен через ssl на порт 8443
  • Jira 6.0 с установленным плагином JIRA Subversion plugin
  • осуществлена базовая настройка JIRA Subversion plugin (в задачах отображаются соответствующие коммиты со списками файлов)
  • на SVN хранятся в том числе исходные коды, написанные на Delphi 7 с кодировкой CP1251

Что хотим получить:

  • просмотр содержимого коммитов
  • использование уже существующей системы авторизации SVN для доступа к исходному коду

Читать полностью »

SaveFrom.net + костыль, или загрузка PLS плейлистов Привет хабровцы.
Я думаю не только у меня большой плейлист на vk.com. Совсем недавно я озадачился тем, как бы выкачать музыку, чтобы можно было слушать её оффлайн. Вскоре я нашел удобный сервис SaveFrom.net. И все бы ничего, да только выкачивать сразу всю музыку он не умеет. Он предлагает нам варинаты:
1. Дать нам кучу url, чтобы мы вставили все это дело в менеджер загрузок, типа DownloadManager
2. Сохранить плейлист в m3u/pls, которые играют по урл

В первом случае у нас имена файлов будут вида 3ee56ab0933e.mp3. ID3 tag будет на месте, но согласитесь, это неудобно, открывать каждую композицию чтобы посмотреть что это
Во втором случае — у нас чисто url-ы в плейлистах, но зато title песни есть сразу.

Поскольку наблюдать файлы вида 3ee56ab0933e.mp3 мне не хотелось, а так же не хотелось вручную все это именовать — я набросал на коленке тулзу, которая умеет читать pls плейлисты, и скачивать музыку в 10 коннектов.

Бинарник + исходник

Откомпилированный экзешник + исходный код (на Delphi) лежит тут

Читать полностью »

Сегодня компания Embarcadero разослала приглашение пользователям Delphi, C++ Builder, RAD Studio и прочим разработчикам, принять участие в ежегодном опросе, посвященном средствам разработки компании.
Данный опрос несколько отличается от предыдущих. Прежде всего, в него включены те «неудобные» вопросы, относительно которых неоднократно велась дискуссия среди разработчиков. Качество реализации различных технологий, качество документации и тому подобные вопросы. Особое внимание уделяется пожеланиям пользователей. В частности, относительно приоритетности поддержки новых платформ, новых локализаций IDE и т.д.
Читать полностью »

в 14:01, , рубрики: Delphi, orm, Песочница, метки: ,

Всем привет!
Сегодня я расcкажу вам о своем опыте написания ORM для Delphi с использованием RTTI под влиянием практик работы с Doctrine и Java EE.

Зачем?

Под мою власть недавно попал старый проект на Delphi7 в котором ведется активная работа с базой данных под Interbase 2009. Код в этом проекте радовал, но ровно до тех пор, пока речь не заходила о самом взаимодействии с бд. Выборка данных, обновление, внесение новых записей, удаление — все это занимало немало строк в логике приложения, отчего разобраться в коде порой становилось довольно сложно (спасение в добросовестном разработчике, который круглосуточно отвечал на мои глупые вопросы). В мои руки проект был передан с целью устранения старых бед и добавления в него нового модуля, задача которого — покрыть новые таблицы в БД.

Мне нравится MVC подход и очень хотелось разделить код логики с кодом модели. Да и если уж на чистоту — я не захотел для каждой новой таблицы переписывать по новой все get/set методы. Пару лет назад я познакомился с понятием ORM и мне это понравилось. Мне понравился принцип и я был в восторге, применяя его в своей работе.
В тот же момент я ринулся искать в Delphi7 хоть что-нибудь похожее на Doctrine или может генераторы Entity/Facade классов для таблиц… Ни того ни другого. Зато в поисковой выдаче нашлось несколько готовых решений. Например DORM. В целом, отличная штука и, по сути, то что нужно!
Но, не знаю бывает ли у вас, я отказался от готового решения и решился писать свой велосипед. С осознанием того что хочу, с пониманием всех недостатков, я стал на этот скользкий путь и, кажется, дошел до…
Читать полностью »

Уважаемые разработчики!

Совсем недавно мы проводили запуск RAD Studio XE4 в Москве, Минске и Киеве.

Специально для тех, кто не смог посетить мероприятия мы сделали запись видео-трансляции, в которую даже включили сессию вопросов и ответов.

Посмотреть запись всех докладов можно здесь:

1 часть — youtu.be/S-qeJIFTupw — Кирилл Раннев, Стратегия компании Embarcadero и вступительное слово

2 часть — youtu.be/LTTAYAMhojQ — Всеволод Леонов, Разработка мобильных и настольных приложений на основе единой базы исходных кодов

3 часть youtu.be/ICjxcU8unHE — Ярослав Бровин, Использование FireMonkey для разработки приложений под iOS

4 часть youtu.be/hnlNvJvx-NM — Кирилл Раннев — Редакции продуктов и способы лицензирование
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js