Как появилась идея

Среда, 25 ноября, 2009
Всё началось с того, что в 2004 году я купил книгу "ActionScript. Основы". После десятка экспериментов, мне показалось, что на Flash можно сделать всё, что захочешь. Сделал дневник. Делал форум, который хотел представить на втором студенческом Flash-фестивале (2006). Из-за проблем с работой AMFPHP на моём хостинге, его не удалось запустить, поэтому я не участвовал. На третий фестиваль меня уже не пригласили. Как мне стало известно, было много участников. Они представляли свои, достаточно сложные, рекламные ролики, приложения, игры и сайты. Оказалось, что с Flash у нас не так уж и плохо, а хорошо будет когда слово "флеш" перестанет ассоциироваться с баннерами и мультиками. По-моему, для этого нужно демонстрировать возможности платформы Flash, свои возможности, больше общаться и обмениваться опытом. На тематических форумах и в ЖЖ-сообществах не общаются (там ищут решения проблем, "вопрос - ответ"), да и посторонние туда не заглядывают. Я решил, что нужно "строить свой луна-парк". Лучшее средство — коллективный дневник. Каждый день я читаю Adobe Feeds (агрегатор RSS дневников, посвящённых платформе Flash). Новости, идеи, размышления, подсказки из 2422+ источников. Каждый день — десяток новых записей от разных авторов, чем не коллективный дневник?. Личный дневник гораздо менее динамичный, у его автора не всегда есть время и/или материал для публикации, поэтому он кажется заброшенным. Про заброшенные ресурсы быстро забывают.

В следующем сообщении напишу почему я делаю это на Flash.

Отчёт №5

Суббота, 21 ноября, 2009
На сегодняшний день готовы следующие модули:
  • менеджер AMF-сервисов — вызывает удаленные процедуры
  • архиватор — сжимает и распаковывает данные в формате AMF (GUI-элементы описаны в XML, в сжатом виде это описание весит в 6 раз меньше)
  • фабрика GUI-элементов — генерирует элементы управления по заданному описанию
  • навигатор — управляет адресной строкой браузера, отслеживает изменения её содержимого (отвечает за внешнее связывание)
  • построитель промежуточных отображений на основе выражений Роберта Пеннера
Как это работает показано на скринкасте (чтобы просмотреть его на полном экране, нужно нажать кнопку перед логотипом "screenr").


Создал компонент для вывода текста. Создал компонент "таблица". Нарисовал два удобочитаемых шрифта, но не смог конвертировать их в формат CFF/DefineFont4, поэтому используется Verdana, установленная на машине пользователя. Пока всё это весит 57 килобайт (достаточно мало, по сравнению с любым доступным решением, которое позволяет достичь подобных результатов).

Отчёт №4

Вторник, 10 ноября, 2009
Реализовал всплывающие подсказки. Это, наверное, самое последнее, за что я должен был браться. Из-за недостатков проектирования сменилась концепция, структура базы данных и выявились ограничения GUI-фреймворка. Нет времени переделывать. Получится немного не так, как хотелось.

Отчёт №3

Вторник, 03 ноября, 2009
Использование TLF ускорило бы процесс разработки, жаль, весит он в 2.5 раза больше чем все основные модули проекта. Изобретаю велосипед. Сегодня реализовал отображение ссылок. Из-за того, что зеркалирование событий мыши является особым случаем, пришлось попотеть.

Отчёт №2

Вторник, 20 октября, 2009
FiV — коллективный дневник, посвященный платформе Flash. Клиентская часть — Flash-приложение, серверная — набор AMF-сервисов. В данный момент я занимаюсь разработкой клиентской части (изобретаю Flex). Готов компоновщик и несколько GUI-элементов. Разобрался с FTE, создаю компонент для отображения блоков текста. С дизайном проблемы, поэтому я пока не могу показать что получилось.

Отчёт №1

Пятница, 16 октября, 2009
Работа над FiV затянулась и превратилась в рутину. Разработка идёт "через силу", поэтому я начал отвлекаться. Взялся за автоматизацию бизнес-процесса реального предприятия (ООО ТД Киприно). Задача: разработать программный комплекс "менеджер заказов". Комплекс состоит из мобильной, серверной и десктопной частей. Решил, что мобильную часть я реализую на Flash Light 3.1 (только ради получения опыта разработки приложений для мобильных устройств на Flash я взялся за эту задачу). Flash Light Distributable без проблем установился на целевое устройство, Mobile Packager без проблем создал из swf – cab. Всё было слишком хорошо, чтобы быть правдой… Есть у Flash Player особенность — контекстное меню, вызываемое правым кликом в рабочей области. В мобильной версии плеера оно тоже есть. Роль мышки в коммуникаторах играет пластиковая палочка "стилус". Прикосновение стилусом к экрану эквивалентно левому клику, прикосновение и удержание — правому. Есть GUI-элементы, без удержания стилуса на которых не обойтись, например, полоса прокрутки. Решение проблемы так и не было найдено. Пришлось оперативно изучать C# / CF 3.5 (хорошо, что это язык для домохозяек – Карина Иосифовна Шахгельдян ©, быстро разобрался). Получилось даже проще, чем на Flash. Но и тут не без гвоздей. Оказалось, что на сервере установлено устаревшее PHP-расширение SOAP (например, не работали вызовы без аргументов). Zend_SOAP не понимал собственный WSDL (от AutoDiscovery). PEAR_SOAP и nuSOAP уже давно не поддерживаются, да и написаны некрасиво. И вообще, SOAP избыточен. Так родился JSON-RPC. Всё-таки пришлось делать на PEAR_SOAP. Результат на скринкасте.


Я обязательно завершу FiV. В следующем отчёте напишу что готово и что предстоит сделать.