Как стать автором
Обновить

Комментарии 13

Картинки у вас в статье хорошие. Как раз к месту.

Только из за них и читал. Но, к чести сказать, осилил.
Особенно первая хорошо смотрится с заголовком. Очень гармонично.
НЛО прилетело и опубликовало эту надпись здесь
Очень хотелось бы сравнить производительность и плавность анимациии между Flash и HTML5.
Конечно, имею в виду именно результаты вашей работы. Их можно увидеть? спасибо
Сравнить-то можно, даже без нашего изделия (встроенного в древнючего корпоративного монстра, посему линк дать не на что, это ж веб-сервис, а логина к целевой системе у меня и самого нет), примеров рисования на канвасе море разливанное. Разницы-то нет — квадратик там или SVG картинка. Вот собственно пример, который заказчика вдохновлял.

На десктопе отлично рисует, да.

Если интересны результаты — то тут картинка своеобразная.

Флэш — вне конкуренции, ест памяти в разы меньше, терпимо рисует даже на симбиане с 200МГц процессором. Но у него есть серьезный недостаток — нет на устройствах фруктовой компании.

По рисованию SVG в канвасе с анимациями ситуация следующая.

1. На десктопе требуется FF 14+, Хром, или Safari 5.1.4+. Оперу не пробовали.
2. На андроиде 3.1+/4.0+ рисует родным браузером на ять. Но FF 14+ рисует на нем же еще лучше.
3. На симбиане — проще застрелиться. Банально не хватает ресурсов.
4. На айфонах и айпадах ситуация крайне неоднозначная.

У фруктовых

а. много картинок за раз не рисует — падает по нехватке памяти. На первом айпаде это особенно заметно.
б. банальное рисование без setTimeout() стопает напрочь жесты, вот радости с демки если на нее клик приползает не пойми когда.
в. setTimeout(foo, 1) приходит когда вздумается.

Вот простой тест

var x = 0;
function y(){ ++x; /* paint on canvas */; if(x < z) setTimeout(y, 1);  }
y()

при z = 25 и отрисовке мегабайтной SVG-шки (с отшейпленными текстами и растром внутри) до пяти секунд требует на первом айпаде. На втором получше.
работать должно обязательно в браузере? Просто для продуктов Apple можно сделать приложение на AIR(использовать код flash версии) и немного дописать взаимодействие с устройством. Уверен, работать будет лучше чем в браузерах на яблочных девайсах.
Бюджет-то не резиновый — давайте тогда и для андроидов свое нарисуем, сколько их там для тестов надо, 240 аппаратов? ;-)

Тут же возникают оргвопросы — а как это в аппстор засовывать, «клиент к не пойми чему с параноидальным шифрованием для показа рекламы сейлам лавки ХХХ»? Или собирать список устройств? И сколько нам понадобится версий под конкретные отделы? А апдейтить как? А что будет с отделом безопасности, когда на рабочие аппараты доступ к аппстору потребуется, собирать со всех работников железки для апгрейда? А если они на трех континентах, тогда что?

Что называется — «а давайте добавим на наш корпоративный сайт без доп-кап-вложений для наших сейлов актуальные интерактивные каталоги», да.

Может ну его, это приложение под айфон? ;-)
Вообще под Андроид вы получите версию тоже, сейчас AIR прижения идут сразу на 4 платформы Win-Mac-Android-iOS, от вас нужно минимум. Собирать под разные устройства не нужно, за вас это делать AIR, нужно только поддерживать разные разрешния экрана, но это не сложно.
В плане, что будет из себя представлять приложение, по сути это будет что-то вроде плеера, все данные, как и в случае с браузером будут приходить с сервера.
Вообще, я только предложил, потому что знаю проблемы которые бывают с HTML5
Оргвопросы — вот корень всех бед.

Так-то c виду все ясно — сейл со своей планшеткой ходит, тут же в ней на корпоративном сайте — клиенты, их покупки, скидки, предложения и т. д. Тут же он в один клик включает плеер, поворачивает клиенту планшет — вот глянь чего еще есть в комплект!!! И оно там анимирует слайды из каталога.

И клиент радостно расстается со своими кровными.

Заметь — не надо возить с собой тонны бумаги, не надо ничего готовить специально — задача то несложная. В электронном виде каталоги есть, разобрать их и нарезать в стопочку — дело от силы пары недель, плеер там вообще примитивный по сути — скачивает список слайдов, крутит, у каждого слайда есть длинное описание и линки на сайт, по клику все это показывается. Ну, зуминг еще и паранойя.

А вот дальше — дальше песня, дальше отделы, подотделы, разделение труда, специализации, права доступа, премии сейлам, клиенты персонально опекаемые и потенциальные, и т.д. и т.п. Как всегда — нюансы.

И уперевшись в айпад — решили что ну его нафиг, кто будет все это потом поддерживать? А как распространять? И есть ли смысл ради второстепенной но понтовой фишки тратить в разы больше? Давайте остановимся на браузере.

Случай — типичный, многим сейчас надо в струю попасть — чтобы что-то было и на мобильных устройствах. Но при этом выделять под них отдельный бюджет как под новый авиалайнер — готоых еще поискать надо.
То, что ImageMagick будет зверски тормозить, можно было бы, в общем, догадаться заранее: PDF оно растеризует, вызывая GhostScript, и это медленно само по себе. В принципе, можно использовать сам GS прямо. И не забывать, что в этом случае лучший путь уменьшить возню — это растеризовать сразу с маленьким разрешением (в духе 50dpi).
Дурная мощь под капотом в амазоне как-то предполагает, что экономить надо на труде программиста ;-)

Одна портянка конвертится час? Возьмем двадцать пять серверов на амазоне и запустим одновременно, опа! уже получаем не час, а 3 минуты на каждую.

Другое дело когда вдруг понадобилось 20 000 переконвертить, вот тут задумаешься — это ж больше месяца получается даже на феерической мощи 25 серверов. А удвоение счета дает аж 15 суток работы ghostscript.

И тут ускорение в шесть раз реально спасает ситуацию. Дает всего 5 дней пожирания электричества вместо 30ти. Фактически, кратковременно удвоив мощь молотилки, справились за выходные.
Молодец, классно реализовал на java! Когда-то сталкивался с выкорчевыванием изображений из PDF и генерацией PDF в других апликухах, остался неприятный осадок от open source библиотек на java, все приходилось допиливать напильником.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории