AppFactory: приложение-победитель конкурса Delphi for Android

в 15:28, , рубрики: android, contest, Блог компании «Embarcadero (Borland)», метки: ,

Всем привет, начинаем обзор результатов конкурса «Осенняя мобилизация». Сначала я задумывал обзор в формате «Это может Delphi XE5 for Android», но конкурсанты настолько поразили своей технической фантазией и креативным воплощением, что теперь тематика обзоров — «Это можете вы с Delphi XE5 for Android». Минуточку терпения, вы не будете разочарованы. Сейчас мы увидим «мини-мобильное RAD-средство», сделанное по типу Delphi, на Delphi и с возможностью последующего экспорта в Delphi.

AppFactory (скриншот в студию!)

Павел Литвинко (автор проекта, получил самый дорогой приз — коммерческую лицензию на RAD Studio XE5) был настолько любезен, что сделал даже весьма качественный видео-обзор.

image

Смысл приложения в том, чтобы создавать приложения без программирования.

Есть 2 приложения. Первое, AppFactory, позволяет визуально (без программирования) создавать «шаблон», «прототип», «design-time-модель». Этот «шаблон» с «директивами наполнения контента» сохраняется во внешнем xml-файле. Второе приложение – AppProducts – загружает «шаблон» и «на лету» формирует вполне работоспособное мобильное предметно-ориентированное решение.

Кто еще не догнал суть системы, вспомните CMS, динамическую генерацию интерфейса по заданной конфигурации, саму Delphi с «Object Inspector» и dmf/fmx. Запускаем AppFactory и работаем в ней так, как в визуальном дизайнере, добавляя виджеты, размечая интерфейс (еще похоже на дизайнер отчетов). Там же визуально определяем «контент».

image

Потом запускаем уже другое приложение – AppProducts, оно по выбранной «конфигурации» делает «рантайм», как плеер технологии Flash. Выглядит достойно (а приложение – нативное).

image

Анализ

Идея приложения – не сказать, что концептуально суперновая. Работоспособность автора – поразительная. Павел сделал «дизайн-тайм среду». Использование Delphi – виртуозное (это был одним из критериев оценки проекта конкурсном жюри), по сути автор на Delphi написал мини-Delphi для Anroid. Конкурс-конкурсом, но такой реализованный проект в портфолио молодого разработчика гораздо лучше, чем классическая фраза «легко обучаюсь». Павел Литвинко очень успешно проинвестировал в себя, а также показал готовность к профессиональной разработке монетизируемых решений. Не удивлюсь, если Павел получит предложение, от которого сложно отказаться.

Будущее

Павел получил лицензию в качестве приза, в ближайшем времени ожидаем появление приложения на GooglePlay.

Я попросил Павла создать приложение при помощи его решения на тему «Приют для домашних животных» как апробацию решения. Реальный кейс – такие организации не имеют средств для «полновесной разработки», а вот бюджетный вариант без программирования – самое то.
Как будет готово (я сейчас в стадии тестирования) – опубликуем.

image

На конкурс также была подана работа «Интерпретатор Pascal для Android», автор проекта – Александр Сахаров. Получается, что Павел написал «мобильную Delphi-IDE для Android», а Александр – «вторую часть мобильной Delphi». Следите за публикациями, обзор «интерпретатора» скоро будет.

Я, пожалуй, вполне бы мог использовать такую light-weight тулзу для «подманивания заказчика». И даже «утверждения дизайна» («мокап»). Или даже впаривания под видом «специально разработанного приложения под заказ».

Интервью с призёром (больше технических деталей по проекту – кто лучше автора расскажет о своей работе?)

image
фото с семинара Embarcadero в Минске, посвященного запуску RAD Studio XE5

1. Как Вы, где Вы?

Меня зовут Литвинко Павел. Я учусь на 2 курсе Белорусского государственного университета информатики и радиоэлектроники на кафедре программного обеспечения информационных технологий. Специальность инженер-программист.

2. Попали, очевидно, не случайно. С какого возраста начали программировать? Родители помогали? Учителя? Самоучка?

Да, так и есть. Попал, кстати, после победы на Международном конкурсе юных учёных (XIXth International Conference of Young Scientists), проводившемся в Нидерландах в 2012 году. Но обо всём по-порядку. Свою первую «Hello World» я написал на Delphi в возрасте 11-12 лет. Учился программированию абсолютно самостоятельно, я обгоняю программу обучения года на 3-4 в плане программирования. ООП еще не начали проходить.

3. Какими языками программирования/технологиями владеете?

Delphi, C, C++, HTML

4. Вы реализовали достаточно сложный, по крайней мере для студента, приложение, которое требует не просто умения «вколотить алгоритм», но и понимания того, как работает приложение, из чего состоит интерфейс, как функционал «бьется» на компонентные модули. Delphi Вам не кажется слишком простой или «немодной» технологией?

Конечно нет! Delphi — это основной язык, на котором я пишу свои проекты. С Delphi для написания программы мне не нужно задумываться о каких-либо особенностях языка, придумывать сложные конструкции, чтобы решить простые задачи, и в то же время в нем есть всё, чтобы реализовать любую, даже самую сложную идею. Особенно сейчас, с выпуском версий XE4 и XE5, когда на Delphi можно писать под iOS и Android, у него, на мой взгляд, открывается второе дыхание. Каково же было удивление моих товарищей и преподавателей в университете, когда я им показал своё Android-приложение, написанное на Delphi!

5. Сама идея проекта – откуда она родилась? Даже если Вы взяли чей-то готовый аналог и творчески его переработали, это уже – огромное дело! Расскажите об истории проекта.

Я не основывался на какой-либо чужой разработке, идея изначально возникла у меня, даже если в настоящий момент похоже на что-то уже существующее. Все началось желания создавать и компилировать программы непосредственно на планшете или телефоне. (Было бы очень удобным делать лабораторные по программированию на лекциях или в перерывах межу пар). Но к моему удивлению ничего подобного, найти не удалось. Так возникла идея мобильной среды разработки мобильных приложений. Написать полноценный компилятор — задача долгосрочная и далеко не из простых, поэтому она была отложена до лучших времён, но вот создать визуальный конструктор программ — можно, и довольно быстро.

Дальше началось обдумывание идеи, проработка вариантов построения программы, поиск стратегии создания программ со стороны пользователя. Тут же появилась ещё одна идея. Почему бы не создать такую программу, которой бы пользоваться смог абсолютно любой человек? Что если сделать мобильные приложения ещё одним средством обмена информацией (вроде презентаций), доступным каждому? Что если раздвинуть рамки самого понятия «мобильного приложения» и позволить пользователям свободно создавать и обмениваться интерактивным контентом? Всё это и стало сверхзадачей проекта.
6. Теперь о функциональности проекта. Я описал Ваше решение «глазами пользователя». Пожалуйста, «глазами создателя».

Создать приложение в AppFactory действительно очень просто и быстро.

Проект включает в себя 2 приложения:

  • AppFactory — программа для конструирования приложений;
  • AppProducts — программа для запуска готовых продуктов.

Редактор построен таким образом, чтобы разделять оформление приложения от его наполнения. Основное содержание составляют виджеты, в которые помещается контент.

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

Виджеты — это основная часть любого приложения, созданного в AppFactory. В настройках создаваемого приложения можно указать способ их отображения (и соответственно навигации между ними): список либо вкладки. Так конструируется меню будущего приложения.
Чтобы создать общий вид приложения, используются элементы интерфейса, схожие по принципу работы с VCLFMX компонентами Delphi: изображения, надписи, панели и проч. Их свойства также гибко настраиваются в AppFactory. Готовое приложение можно сразу же запустить на мобильном телефоне, используя AppProducts.

Зачем нужен AppProducts? Конечно, очень хотелось собирать .apk файлы прямо на смартфоне, но, к сожалению, из-за специфики формата сделать это пока не представляется возможным, хотя возможно в дальнейшем удастся сделать это. Поэтому для запуска приложений нужна отдельная программа, но можно и экспортировать приложение в исходный код Delphi для независимой компиляции.

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

Автор: VsevolodLeonov

Источник

* - обязательные к заполнению поля


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