Рубрики: RIA, Open Source
Нестандартный пример произвольных компоновок во Flex 4
Довольно продолжительное время я все больше пишу серверный код на Java, а Flex использую от случая к случаю. И все больше по-старинке. Родимый третий Flex. Вернее, бывший родимым, но сейчас его место в моем сердце занято другим. Все-таки надо поддерживать себя в форме и изучать новые вещи. Вот решил больше внимания уделить Flex 4. Который меня и покорил.
Его архитектура, созданная для большей гибкости и возможности использования совместно с дизайнерскими инструментами, типа Flash Catalyst, стала привносить в процесс создания приложений больше забавы.
Сразу прошу прощения за такое странное употребление слов. Дело в том, что, как вы знаете, я больше пишу
блогсетевой дневник на корявом английском. Там есть ипараллельныйсходный пост. Ну вот я и подумал, что лучше попытаться использовать больше русских слов. Чтобыбыл контрастбыла явная разница, и не было мне так однообразно. То есть вместо всяких там “лэйаутов” напишу “компоновка". А вместо слова “фан” позволю себе употребить “забава". Хорошо, что хоть не на черногорском пишу… Хм… А ведь это мысль!
В общем, теперь у нас многие части отделены друг от друга и вполне могут тесно сотрудничать, оставаясь при этом яркими и независимыми личностями. Таковыми являются, например, тройки друзей в виде групп данных (олицетворением который может являться список, представленный классом List), компоновок (позволяющих визуальным представлениям данных располагаться в требуемом порядке, сохраняя при этом весь тот высокий и торжественный смысл, что был заложен компонентом списка) и рендереров отображалок. Многообразие возможных внешних видов результата, который в приложении, в его программном коде, представлен обычным списком, ограничено лишь скудностью нашего воображения.
Но чтобы расшевелить воображение одних галюциногенных грибов мало. Что толку от волшебных картин, проносящихся перед внутренним взором, если не ясно, что с этим делать? Как пелось в песне:
если же ты в жизни своей
полон неясных и странных идей
но применить их не ведаешь как
ты настоящиймчудак
Итак, изучим исходные материалы чтобы во всеоружии приступить к реализации. Начнем с сетевого дневника Эвтима Георгиева, который с такой фамилией работает в Adobe и вполне неплохо специализируется на компоновках. Он сделал отличный пример произвольной компоновки, которую снабдил интересными переходами в виде анимации волшебного движения. Через контекстное примененное к месту меню вы даже можете посмотреть исходные коды примера. Именно он вдохновил меня на подвиги. Также Эвтим написал статейку для официального сайта официальной сетевой площадки Adobe, которая тоже нам очень пригодится. Конечно, все материалы на нерусском наречии, но, как видите, тут мы этот перевес восполняем. Неплохо также побольше узнать про отображалки. Они нам тоже пригодятся.
А в качестве своего примера я решил выбрать нашу солнечную систему и планеты в ней. Вроде как, изобразить нечто такое:
Моим искренним желанием является сделать так, чтобы приложение могло общаться с нашим списком, совершенно не зная о тех чудесах, что с ним творятся. И список при этом вел себя соответственно:
XML:
<s:states> | |
<mx:State name="radial"/> | |
<mx:State name="tile"/> | |
<mx:State name="list"/> | |
</s:states> | |
<s:List borderVisible="false" | |
dataProvider="{new PlanetsData()}" | |
itemRenderer="com.riapriority.planetlist.renderer.SolarPlanetRendererImplementation" | |
itemRenderer.list="com.riapriority.planetlist.renderer.PlanetDetailsRenderer" | |
itemRenderer.tile="com.riapriority.planetlist.renderer.SimplePlanetRenderer"> | |
<s:layout> | |
<layout:SolarPlanetLayout /> | |
</s:layout> | |
<s:layout.tile> | |
<s:TileLayout columnWidth="130" | |
horizontalAlign="center" | |
rowHeight="150" | |
verticalAlign="bottom"/> | |
</s:layout.tile> | |
<s:layout.list> | |
<s:VerticalLayout horizontalAlign="contentJustify"/> | |
</s:layout.list> | |
</s:List> |
Вдобавок, раз я уже начал забавляться, то стоило бы делать это как следует. То есть добавить больше переходов и волшебного движения. И тут мне пригодилась книжка Чета Хааза, фамилия которого хоть и совсем иноземная, но пишет он по делу. Книжка называется Flex 4 Fun. То есть как раз по теме. Читаем и забавляемся.
Ну а позабавившись и приложив свои идеи в правильном русле, чтобы не прослыть чудаком, я родил такое вот приложение. Там тоже можно посмотреть исходный код через к месту вызванное меню. Вдобавок, можно получить самые последнии версии через Subversion со странички приложения на Google Code.
Такие вот пирожки. Изучайте, критикуйте, предлагайте. Я ж не волшебник, а только учусь. Может, кому-то и будет полезно. Не зря же я тратил время!
(Хотя тратил-то точно не зря: сам ставил себе задачи, сам выполнял в процессе освоения нового).
Кстати, там же есть модульные тесты, где я попробовал распоследние версии FlexUnit 4 и ASMock, которые теперь уже очень подходят для использования в жизенных ситуациях. И отделение компоновки от самого списка или его отображалки позволяет производить такое тестирование очень легко. Ну, легче ![]()
Так что пишите в заметках к этому сообщению свои мысли и воплощайте на досуге свои творческие замыслы! Довиђења! ![]()
Встреча RAFPUG в Челябинске
Всем известно, что челябинские флешеры настолько суровы, что компилируют флеш-байткод в уме, а результат записывают в шестнадцатеричном редакторе, получая в результате шедевры. Ну и не только Челябинском богата земля уральская, но и другими уральскими городами. Короче, это все я к тому, что нас ждет буквально следующее.
21 ноября в Челябинске пройдет RAFPUG. Место проведения: Южно-Уральский Государственный Университет.
Программа встречи.
Первая часть (10:00)
Демонстрация возможностей flash-платформы: игры, бизнес-приложения, сайты, анимация, баннеры. Flash Catalyst/Flex/Flash CS4.
Вторая часть (13:00)
- Игра на AlternativaPlatform - от идеи до релиза. Волков Антон (Пермь).
- Как зарабатывать на Flash 3D? Александр Карпович (Пермь).
- Обзор картографии во Flash. Дмитрий Столяров (Челябинск).
- Как сделать картографический веб-сервис, на примере geosamara.ru Александр Сергеев (Самара).
- Основные принципы анимации. Максим Узких (Челябинск).
- Разработка флеш сайтов. Максим Фирсов (Снежинск).
- Круглый стол «Создание и раскрутка игр для социальных сетей» с создателями фермера вКонтакте.
Третья часть (18:00 - 20:00)
Командный турнир по Танки Онлайн.
Четвертая часть (20:00 - …)
Афтерпати.
Какие доклады были бы вам интересны? Вам есть чем поделиться?
Пишите: as[dot]senina[cобака]gmail.com
Звоните: +7-906-86-087-42 Анна Сенина
Дата: 21-го ноября (суббота).
Время: 10-00.
Место: Челябинск, пр. Ленина 87, ЮУрГУ, 3б Корпус, 3 этаж.
Карта: Схема проезда.
Регистрация открыта.
22 ноября для всех желающих запланировны: обзорная экскурсия по городу и посещение пивзавода.
P.S.
От себя добавлю, что если вы от Челябинская хотя бы в тысяче километров, то это однозначно повод посетить мероприятие. Программа, во всяком случае, интересная ![]()
Эксперты из Farata Systems проведут тренинг по Adobe Flex в Москве
С радостью хочу сообщить читателям блога, что у вас есть все шансы вживую встретиться с такими легендарными личностями, как Яков Файн и Виктор Распутнис, являющимися экспертами мирового уровня в области RIA (Rich Internet Applications aka насыщенные интернет-приложения), а также перенять их опыт, которым Яков и Виктор собираются поделиться.
Дело в том, что 7-8 декабря 2009-го года в Москве они проводят двухдневный интенсивный мастер-класс по Adobe Flex, программу которого можно посмотреть тут. Как вы можете видеть, программа более чем исчерпывающая. И если вы поспешите с принятием решения до 28 октября, то у вас есть все шансы сэкономить на участии в мероприятии.
Для тех, кто почему-то не знает Виктора и Якова, сообщу, что они являются основателями консалтинговой фирмы Farata Systems, известной своим очень серьезным уровнем, которая базируется в Нью-Йорке. Помимо консалтинга они занимаются тренингами в области Flex и RIA, выступают на различных мировых конференциях (в том числе Adobe MAX), являются авторами ряда книг (в том числе «Rich Internet Applications with Adobe Flex and Java» и «Enterprise Development with Flex» издательства O’Reilly), авторами Clear Toolkit, а также ведут свой блог. Я лично имел честь работать с ними, так что знаю не понаслышке ![]()
В общем, рекомендую сообщить эту информацию своим менеджерам, которые выделят вам соответствующие средства для повышения вашего профессионального уровня. Либо изыскать средства самостоятельно. Оно того стоит.
Еще раз напоминаю ссылку на описание мероприятия.
Update. 10-11 декабря Виктор и Яков проведут тренинг и в Киеве. Так что необязательно ехать в Москву. Информация тут. К сожалению, за первые десять дней не было ни одной заявки на участие в киевском мастер-классе, и Яков с Виктором приняли решение его отменить. Те жители Украины, которые все же хотят посетить тренинг в Москве, пусть поторопятся. Там запись идет хорошо, и мест может не остаться. Спешите! ![]()
Микроблоггинг
Решил вот попробовать себя в микроблоггинге и завел микроблог на профессиональные и околопрофессиональные темы на Жуйке. Тема очень классная потому как позволяет бложить, читать и комментировать просто через Jabber-аккаунт и клиент. И не то, чтобы позволяет, а на это и расчитана. Ну а так как у меня Джаббер всегда открыт, то мне это удобно вдвойне. Прикольно, что региться не надо: послав сообщение, ты автоматом заводишься как пользователь.
В общем, читайте вкусности дальше и добавляйте меня в свои читатели, а я — вас ![]()
И да, это не реклама. Вернее реклама, но по моей инициативе так как сервис мне понравился ![]()
Тем временем Moonlight...
А тем временем Novell выпустили первую бету первого Moonlight’а. Прошло всего полгода с выпуска первой публичной версии (это была, кажется, альфа).
Напомню, что Moonlight — это порт Silverlight под Linux, который осуществляется силами той же команды, которая выпускает Mono. И делается это по официальной договоренности с Microsoft и под чутким руководством.
Считается, что в Moonlight 1.0 beta 1 реализованы все необходимые медиакодеки (хотя на страничке релиза прямо сейчас написано, что этот билд не поддкрживает видео и/или mp3 — built without multimedia support). Теперь команда Novell возобновила работу над Moonlight 2.0. Но тут работы явно больше, чем над релизом 1.0. Кстати, у Moonlight к тому же доступны исходники. Если тут есть линуксоиды, которые осмелятся это поставить себе — отпишитесь о впечатлениях в комментах.
В общем, Microsoft уверенно идет по пути кроссплатформенности и кроссбраузерности своей RIA-технологии. В удивительные времена мы живем!
А вот вам дополнительные ссылочки по теме.
Катализаторы творческой активности
Как мы знаем, сегодня в США открывается Adobe MAX — ключевое событие, касаемое Flash-платформы и RIA-технологий от Adobe. Некоторым из русскоязычных читателей повезет, и они смогут попасть на это событие (по крайней мере в декабре в Милане). Ну а остальным лузерам и неудачнегам (к коим я с полным правом причисляю и себя) останется лишь тихонько убить себя апстену.
Но это все лирика, а по сути можно сказать, что часть грандиозных новостей, которые готовились к этому событию, уже известны. Перечислю их вкратце:
Thermo, инструмент для “бесшовного” взаимодействия разработчика и дизайнера, о котором мы уже писали, отменяется. Его не будет. Thermo умер
Да здравствует Adobe Flash Catalyst! 
Говоря проще, инструмент сменил свое кодовое название на официальное. Публичная бета будет доступна в начале 2009-го года, но все посетители MAX’а получат ее раньше (MAX preview build). И, судя по всему, он пока доступен только для Маков, что лично меня вполне удовлетворяет. Также стал доступным для широкой публики блог команды разработчиков Adobe Flash Catalyst.
- Также посетители MAX’а получат билд Flex Builder 4, который может работать с Gumbo. В новой версии среды будут реализованы грандиозные фичи: генерация геттеров/сеттеров (уже есть с помощью Eclipse Monkey), генерация кода для событий (Илья Панин показывал на FlexCamp’е в Москве — опять Eclipse Monkey), новый Package Explorer и тултипы для ASDoc’ов, пользовательские шаблоны для MXML, ActionScript, и CSS. Шаблоны кода a la JDT там отсутствуют. Зато есть интеграция с
ThermoFlash Catalyst. Также будет монитор сетевой активности для Flex-приложений (полезная фича) и поддержка Flex Unit (вот это интересно!). Добавятся новые возможности у отладчика (подробности в блоге Майка Мориарти). Помимо всего обещают еще сильнее упростить создание CRUD для большого количества серверов и сервисов с помощью Client Data Management (CDM) (про эти возможности пишет Анил Чаннаппа). - Вышел Adobe AIR 1.5 для Mac и Windows. До конца года обещают для Linux. Он теперь использует новый, более производительный JavaScript-движок SquirrelFish. Среди новинок encrypted база данных для хранения приватной информации. Ну и то, чего мы ждали: поддержка новых возможностей Flash Player 10. AIR 1.5 доступен не только посетителям MAX’а, а всем. Причем уже сейчас.
- Предварительная версия Adobe Flash Player 10 для смартфонов, созданная в рамках Open Screen Project, также будет демонстрироваться на MAX’е.
- Adobe Flash Player 10 для 64-bit Linux.
Проект Alchemy на Adobe Labs. Портирование C/C++ кода на Flash-платформу, которое позволит использовать существующий код (например, работа с аудиокодеками) во Flash-приложениях. При этом такое портирование происходит эффективно с точки зрения производительности (как обещают, исполняться все это будет всего лишь в 2-10 раз медленнее, чем оригинальный нативный код). Естественно, генерируются не ActionScript-классы, а соответствующий байткод. На страничке проекта можно скачать сам инструментарий, который позиционируется как исследовательский проект, примеры портирования аудиокодека OggVorbis и AS Crypto Wrapper, а также интервью в Бранденом Холлом, осуществимшим порт OggVorbis. Обещают адекватное портирование платформонезависимого кода. В общем, очень интересно
Также рекомендую официальный подробный FAQ.Среди возможных способов использования данного инструментария предлагается, например, быстрая работа с PDF прямо во Flash-плеере с использованием C-библиотек, существующих в Adobe, либо. например, импорт изображений в формате RAW. Также есть сведения, что в недрах Adobe имеются как минимум интерпретатор Python, который работает во Flash -плеере (спасибо за ссылку Diestro). В общем, применение достаточно богатое.
На пленарном докладе второго дня MAX в Сан-Франциско были продемонстрированы также портированные во Flash-платформу Quake и игровая приставка Nintendo.
Вся эта информация доступна в официальном пресс-релизе, посвященном MAX. Также можно прочитать новость в блоге InsideRIA.
Хочу еще также заметить, что если есть крупные конкуренты, то все новости обычно ходят парами. Мы это уже замечали при выходе Flash Player 10 на следующий день после выхода Silverlight 2. Сегодня тоже не преминули отметиться сотрудники Microsoft. Скотт Гатри написал в своем весьма авторитетном блоге пост, посвященный Silverlight 3 и не только.
Что хочется отметить?
Silverlight 2 вышел месяц назад и победно шествует по планете. Он загружен уже более чем на 100 миллионов машин пользователей, в чем ему помогают программы Microsoft SMS и Microsoft Update, позволяющие системным администраторам легко устанавливать среду исполнения для большого количества пользователей в корпоративных сетях.
Скотт Гатри таже отметил, что в результате всего этого хоть какая-нибудь версия Silverlight стоит уже на каждом четвертом компьютере
во Вселенной. Как видим, большой прогресс за месяц.- С удовлетворением хочется отметить, что ересь от Microsoft, в результате которой термин RIA там стал расшифровываться как Rich Interactive Applications (насыщенные интерактивные приложения), а не как полагается Rich Internet Application (насыщенные интернет-приложения), долго не продержалась (подробнее об этом можно прочитать у Роста). Скотт Гатри уже упоминает Rich Internet Applications. Что, в общем, радует. Бессмысленная путаница терминов на пользу не идет.
- Silverlight 3 будет существенно расширен по части предоставления пользователю медиа-возможностей (например, кодек H.264), по части графических возможностей (заявлено 3D и аппаратная акселерация графики), расширения в области связывания данных (data binding), а также новые контролы. Скотт говорит, что в рукаве у них много чего еще (лично я готов подозревать поддержку камеры и микрофона, а также работу с битмапами). Visual Studio планирует обзавестись графическим дизайнером для разработки Silverlight-приложений.
Такие вот новости. А что у вас интересного?
Выход Silverlight 2
Не успел я в связи с отпуском и загруженностью по работе написать про выход релиз-кандидата Silverlight 2, который состоялся меньше месяца назад, 25 сентября, как нас ждут новые чудеса, о которых уже пару дней предупреждала разведка. Речь идет о финальном релизе (RTW, release to web) технологии Silverlight, о которой мы уже неоднократно писали. Который намечается завтра. Кстати, завтра же намечается выход новой линейки ноутбуков от Apple, но это совсем другая история.
Вернемся к теме. Я обычно и не пытаюсь предсказывать, что и кто выпустит на очередной презентации или с очередным релизом, но всегда придерживаюсь довольно скептической позиции. Тем сильнее меня поразил результат сегодняшней пресс-конференции со Скоттом Гатри. Скажем так, в интересные времена мы живем. Ибо это реальная бомба!
Срочно в номер: Flash-контент становится по-настоящему доступным для поисковиков
Не могу не поделиться революционной новостью дня. Подстегиваемая возросшей конкуренцией на поле насыщенных интернет-приложений (Rich Internet Applications, RIA) фирма Adobe радует очередным революционным известием: теперь все Flash-приложения становятся по-настоящему доступными для поисковых сервисов. Как мы знаем, Flash-контент и раньше индексировался Google с использованием Search Engine SDK, что позволяло искать текст, зашитый в SWF-ролики, но не позволяло искать в подгружаемом контенте. Теперь же ситуация полностью изменилась.
Fresh Air: жизнь за МКАДом есть!
Многие считают, что в России за пределами Москвы не происходит никаких оригинальных мероприятий, которые стоит посетить. Понятное дело, они ошибаются.
26 июня в Самаре пройдет встреча, целиком посвященная насыщенным интернет-приложениям (Rich Internet Applications, RIA). Мероприятие обещает быть весьма любопытным потому как организовано людьми, всерьез интересующимися этой перспективной областью в разработке интернет-приложений. Вдобавок, помимо энтузиазма у ребят за плечами уже есть опыт проведенных встреч на данную тематику (в феврале собралось около 30 человек, что даже для Питера вполне прилично).
Программа мероприятия уточняется, но уже сейчас известно, что будут приглашены люди не просто с улицы, а имеющие за плечами RIA-опыт.
Будут не только рассказы, а также показы примеров приложений и конечно общение.
Где это будет проходить?
Проходить мероприятие будет в медиацентре Самарского Государственного Аэрокосмического Университета (СГАУ). 26 июня (четверг) в 17.00.
Приглашаются все интересующиеся, а особенно разработчики. А если вы еще и зарегистрируетесь, то цены вам не будет.
Если вдруг кто посетит, расскажите в комментах как оно прошло.
Также пост Роста по теме.
Update: доступны следующие отчеты о мероприятии:
- Блог Павла Виноградова.
- Блог Дениса Тучина тут и тут.
JavaFX наносит ответный удар
Май оказался очень богатым месяцем на события, связанные с RIA, Это и Open Screen Project, это и выход семейства инструментов Expression версии 2, это и конференция ReMIX от Microsoft. За всем этим мы немного забыли о том, что в это самое время проходит конференция JavaOne 2008, которая обещает множество докладов по JavaFX. И как всегда Sun поражает тем множеством новшеств, которые нас ждут по части JavaFX.
Ну во-первых, в дополнение к коммбюнити-сайту OpenJFX запущен сайт JavaFX.com. Помимо того, что сайт очень качественно и интересно сделан с использованием AJAX, он содержит множество воодушевляющей информации и видео:
- Объявлено о расширении линейки инструментов для работы с JavaFX. Помимо инструментов для разработчиков (плагин для NetBeans, а позже и развитие плагина для Eclipse) сюда будут включены инструменты для графических дизайнеров. Это и специальная среда JavaFX Designer, которую обещают сделать доступной уже этой весной, и плагины для Adobe Photoshop и Adobe Illustrator. То есть пресловутый designer-developer workflow тоже не остался в стороне. Yes!
- По части медиа-возможностей будет предоставлен JavaFX Media Framework, который в том числе позволяет проигрывать одновременно 200 Blu-ray HD-видео, как это продемонстрировано в приложении Video Cloud. Также летом 2008-го будет представлен JavaFX Media Converter.
- Известно, что в конце 2008-го нас ждет версия 1.0 JavaFX Desktop, а весной 2009-го - JavaFX Mobile. Далее в планах Sun JavaFX TV и другие платформы для других устройств.
- Интересно, что браузерные JavaFX-приложения могут взаимодействовать с десктопом (например, можно перетащить приложение из браузера на десктоп, и оно останется там жить).
- После выхода версии JavaFX 1.0 будут объявлены планы по открытию исходных кодов всех составляющих платформы. Сейчас открыты только некоторые части. Но то, что JavaFX будет опенсорсной - определённо.
- Ну и понятно, что в качестве GUI-компонент используется тот же самый Swing и что при разработке приложений на JavaFX вы можете использовать тот же самый Java-код, который вы написали ранее.
Также на JavaOne были показаны некоторые демки, одну из которых (виджет для Facebook под названием Connected Life, который может перетаскиваться на десктоп, а также жить в мобильном телефоне) можно посмотреть на видео, взятом из блога Райана Стюарта:
Так что не списывайте JavaFX со счетов!





