Не так давно на страницах "Компьютерных вестей" я рассказывал об Adobe Flex - технологии, применяемой при создании Rich Internet Applications, а также о практически одноименной среде, в которой эти приложения создаются. Сегодня продолжим эту тему.
Платить или не платить - вот в чём
вопрос
Всё в Adobe Flex Builder хорошо, кроме, разве что, одного - стоит среда разработки, предлагаемая создателями этой технологии, достаточно дорого. С одной стороны, это не слишком-то и большой минус - всё-таки, RIA-приложения стоят, как правило, достаточно дорого, а потому нет особого смысла в экономии на средствах их создания. С другой стороны, если есть вариант использования бесплатного аналога Flex'а, то, в самом деле, зачем тогда переплачивать компании Adobe?
Конечно, вряд ли кто-то сможет предложить более качественную IDE, чем сами создатели технологии, на основе которой разрабатываются приложения, однако и не всегда всем разработчикам нужна "навороченная" среда, которая поддерживает максимум возможностей самой технологии. В общем-то, именно поэтому имеет смысл присмотреться к такому программному продукту, как FlashDevelop. Не то чтобы эта среда разработки была способна полностью заменить собою Adobe Flex Builder - но, тем не менее, ею вполне можно пользоваться для создания RIA-приложений на основе Flex.
Знакомство с FlashDevelop
Чтобы познакомиться с этой средой разработки, её для начала имеет смысл скачать по следующему адресу: www.flashdevelop.org. То, что вы увидите на главной странице, будет несколько отличаться от большинства сайтов разных программных продуктов, но, думаю, найти ссылку для скачивания дистрибутива среды не будет большой проблемой. Нужно отметить, что для запуска программы под Windows вам потребуется runtime-библиотека .NET 2.0, а для других ОС ещё и какая-нибудь виртуальная машина, в качестве которой разработчики FlashDevelop предлагают использовать такие продукты, как VirtualBox, VMWare или Parallel.
В целом, интерфейс FlashDevelop вряд ли вызовет у кого-либо неприятие или отторжение. Впрочем, и влюбиться с первого взгляда не во что. К счастью (хотя, может быть, кто-то, напротив, и сожалеет об этом) уже прошло то время, когда свободный продукт от коммерческого можно было отличить по аляповатому интерфейсу, словно вышедшему из того времени, когда Windows 3.11 была молода. У FlashDevelop вполне современный вид: есть даже вошедшая в моду вкладка приветствия пользователя, выполненная в тех же оранжево-белых тонах, что и логотип программы. Она, кстати, весьма полезна для тех, кто решит избрать себе FlashDevelop в качестве рабочего инструмента: с её помощью удобно отслеживать обновления программы.
Первый вопрос, который наверняка волнует разработчика, это, конечно, какие именно технологии и какие версии тех решений, на которых зиждется разработка Flash/Flex-приложений, поддерживает FlashDevelop. С их списком можно быстро ознакомиться, воспользовавшись диалогом создания нового проекта. Для удобства все проекты разделены на несколько групп: ActionScript 3, ActionScript 2 и haXe. О haXe, наверное, стоит сказать чуть подробнее, поскольку наверняка далеко не все читатели сталкивались с этим названием. Это язык программирования, который позиционируется своими разработчиками как универсальное средство для создания приложений под платформы Java, .NET и Flash. Идея этого языка, безусловно, очень актуальная, хотя в чём-то и спорная - он, безусловно, заслуживает отдельной статьи в "Компьютерных вестях", мы же вернёмся к FlashDevelop. Среди проектов, которые можно создавать в среде, - Flash-приложения, Flex-приложения, библиотеки, AIR-приложения. Понятное дело, для третьего ActionScript'а выбор шире, чем для второго.
Редактирование кода
Поскольку, как ни крути, даже в самых современных "навороченных" и максимально автоматизированных средах разработки приложений программисту всё-таки приходится писать некоторое количество программного кода, то с редактора этого самого кода мы и начнём.
Он, надо сказать, во FlashDevelop'е весьма неплох. Конечно, сейчас для того, чтобы составить конкуренцию остальным средам разработки, необходимо иметь хороший редактор кода, но во многих свободных IDE он далеко не так хорош, как в FlashDevelop. У вас есть не только автозавершение и автодополнение программного кода, но также и его фолдинг, одновременная подсветка открывающей и закрывающей скобок (без неё работать с большим количеством вложенных скобок - сущее мучение, сами понимаете), как круглых, так и фигурных. Не забыта и навигация по коду - есть, конечно же, ставшее обязательным для сред, в которых разработчик работает с объектно-ориентированными языками программирования, дерево членов класса, благодаря которому можно не искать метод внутри кода, а сразу перейти к нему. Не хватает, разве что, действительно серьёзных средств рефакторинга кода, однако, в принципе, рефакторинг - тоже занятие не ежедневное, и можно выполнить его и с помощью внешних средств. Кстати, поскольку Flash - штука кросс-платформенная, то и в среде разработки поддерживаются разные варианты кодировок символов и символов переноса строки.
Кстати, ещё немного о навигации по коду - порадовала отдельная панель с Bookmark'ами. Обычно использование такого удобного средства, как закладки, довольно серьёзно осложняется из-за того, что к закладке с нужным номером нужно долго и упорно продираться через дебри раскидистых контекстных меню. В FlashDevelop, к счастью, такой проблемы нет, за что стоит разработчиков этой среды поблагодарить отдельно.
Из других полезных, но, в целом, довольно привычных возможностей - список заданий, которые должен выполнить разработчик, а также возможность быстрой вставки HTML-кода любого цвета с помощью специального диалога.
Дополнительные инструменты
У любой платформы, под которую создаются приложения, есть своя специфика. Поэтому хорошая среда разработки, "заточенная" под ту или иную платформу, должна иметь специальную поддержку того, в чём эта специфика заключается. Забегая вперёд, скажу, что и в этом плане среда FlashDevelop не самая плохая из существующих.
Первая из списка утилит, которые пригодятся разработчику, - генератор документации по коду на ActionScript'е. Опций у этой программы достаточно много, и она умеет работать как со второй, так и с третьей версией языка программирования, что, в общем-то, совсем неплохо. Ещё одной довольно интересной функцией мне кажется возможность запуска проекта, редактируемого в FlashDevelop'е, внутри Adobe Flash. Конечно, можно задаться вопросом: "А зачем FlashDevelop человеку, который имеет установленный Flash, и в придачу наверняка и Flex?". Но мы с вами не будем им задаваться - очень хорошо, что такая возможность есть - пусть даже просто так, на всякий случай. Ведь случаи, как говорится, разные бывают.
Среди инструментов, которые доступны через меню FlashDevelop'а, есть и такие, которые не устанавливаются на компьютер разработчика, использующего эту среду, а запускаются через Интернет. Это HTML Validator и CSS Validator - средства проверки HTML-страниц и каскадных таблиц стилей на соответствие отраслевым стандартам. Эти средства предлагаются международным консорциумом W3 и запускаются через его официальный сайт w3.org.
За кадром
Сейчас пройдёмся ещё немного по тем моментам, которые пока остались вне нашего с вами поля зрения. Их, в общем-то, не так уж и много.
Во-первых, нужно сказать о том, какие компиляторы поддерживает среда FlashDevelop. Да-да, ей требуется внешний компилятор, без которого невозможной будет сборка проектов. Поддерживаются компиляторы из арсенала Flash CS3, равно как из Flex SDK, ну а также, конечно же, компилятор haXe, раз уж разработчиками среды заявлена поддержка соответствующего языка программирования.
Ещё один интересный момент - это возможность просмотра структуры уже скомпилированных Flash-файлов (имеются в виду форматы SWF и SWC). Это, конечно, не то чтобы полноценный Reverse Engineering, но, по крайней мере, узнать, какие пакеты использует в своей работе тот или иной скомпилированный файл, можно.
Среда разработки может моментально переключаться с одного языка на другой даже в рамках одного файла с исходным кодом программы. Для этого в меню программы есть пункт "Syntax". В нём, помимо ActionScript'ов и haXe, можно выбрать Python, Jscript, а также не совсем языки программирования HTML, CSS и XML.
Кстати, если вообще говорить о меню FlashDevelop, то мне, честно говоря, оно показалось недостаточно удобным и информативным. Несколько странно разработчиками среды разнесены по разным пунктам команды, однако, если привыкнуть к их расположению, никакого неудобства наверняка испытывать не будешь.
Резюме
Что ж, давайте поведём итоги всему тому, что было сказано выше о среде разработки FlashDevelop.
В целом, среда эта весьма неплоха, однако претендовать на звание полного аналога предлагаемой Adobe среды разработки RIA-приложений она ни при каком раскладе не может. Думается, разработчиков небольших приложений она будет привлекать, в первую очередь, бесплатностью, в то время как тех, кто разрабатывает более серьёзные приложения, может привлечь поддержка языка haXe. Разработчикам этой среды создания приложений, скажем прямо, ещё предстоит вложить немало сил в своё детище для того, чтобы оно смогло конкурировать со средствами разработки от Adobe на том же уровне, на каком, скажем, #Develop конкурирует с Visual Studio. Впрочем, судя по активности сообщества на официальном сайте проекта, забрасывать разработку FlashDevelop'а его создатели пока не собираются, так что ждать нововведений в новых версиях, думаю, стоит.
Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by
Комментарии
Сравнение изначально не в пользу Flash Develop. Изначально он создавался для редактирования actionscript, тогда как Flex Builder для редактирования mxml, сопутствующегому actionscript и визуального конструирования интерфейса из компонентов.
Если уж сравнивать FlashDevelop с чем то, то это FDT - flash development tool. Плагин для eclipse ориентированный как и FD на pure actionscript проекты и проекты где используется Flash IDE.
В таком ракурсе Flash Develop очень хорош.