sobota, 14 czerwca 2008

Znacznik Canvas

Gdy pomyślałem o tym w jakim kierunku rozwinie się programowanie interfejsu użytkownika aplikacji komputerowych i jak aplikacji na urządzenia mobilne to coraz większe znaczenie będzie tkwiło w rozwoju możliwości silników przeglądarek internetowych. Silniki renderujące HTML i CSS oraz interpretery JavaScript są kluczową kwestią przy wyborze technologii dla nowego interfejsu użytkownika.
Coraz bardziej istotne jest udostępnienie programistom możliwości rysowania i animowania na stronie internetowej bez konieczności wspierania się zewnętrznymi rozszerzeniami. Ale i tak nie ucieknie się od instalowania rozszerzeń - jeżeli chodzi o nowe funkcjonalności. Flash Player i jak Silverlight są po to, aby użytkownicy mogli obsługiwać treść multimedialną. Wszystko jest w porządku gdyby nie to, że kierunek rozwoju prezentacji treści zmierza w stronę mechanizmów które są stosowane przy składzie tekstu (zwiększenie uwagi na typografię, stosowanie układu wielokolumnowego, nowy sposób nawigacji - stosowanie radialnego menu tzw: pie menu).

Pozostaje pytanie - czy to jest potrzebne? Nawyki i przyzwyczajenia są czymś naturalnym. Zawsze są jakieś propozycje dla użytkowników. Na przykład stosowanie gestów myszki pozwalają na wykonywanie pewnych akcji o wiele szybciej. Jak dzisiaj technologie Adobe w formatach SWF i PDF zmonopolizowały świat. To czy jest coś co może zagrozić tym formatom? Tak, znacznik canvas. Można by porównać go do tego jak było z AJAX, technologie które były w IE4 czy Mozilla 1.0 można było stosować w AJAX, ale niewielu programistów o tym wiedziało. Myślę, że coś podobnego czeka na "odkrycie" znacznika canvas. Znacznik canvas świetnie nadaje sie do tworzenia zawartości interaktywnej ze szczególnym naciskiem na graficzny interfejs użytkownika.

Warto śledzić i poznawać możliwości zastosowania znacznika canvas.
John Resig napisał bibliotekę Processing.js dzięki której otrzymaliśmy framework do programowania grafiki dwuwymiarowej w przeglądarce internetowej. Istnieje też biblioteka ExplorerCanvas napisana przez Emila Eklund, Erika Arvidssona i Glena Murphy'ego dla Internet Explorera pozwalająca tej przeglądarce wykorzystywanie znacznika Canvas.
Na stronach internetowych dla programistów Mozilii jest Przewodnik po canvas w języku polskim. Warto go przerobić w kontekście wykorzystania go w Adobe AIR. Istnieje bardzo ciekawe narzędzie interaktywne Canvas Shell do testowania znacznika canvas za pomocą kodu JavaScript. W oparciu o możliwości canvas powstała biblioteka Reflection.js 1.9

Ale jak myślę, że największe zastosowanie znacznik canvas może mieć w tworzeniu gier reklamowych wykorzystujących Ajax pisanych w JavaScript. Przypuszczam że, będzie można tworzyć proste gry w JavaScript dla Adobe AIR i na strony internetowe.

Możliwości można już posmakować w poszczególnych przykładach: Canvascape, Unreal Soccer, Arcanoid, Canvas Quest, 3d JavaScript Chess, Canvas Paint, JavaScript Super Mario Kart, Mocha UI, Blob Sallad, PlotKit, Canvas Painter, Ajax3d.
Skoro na komórkach mamy możliwość programowania w 3D w OpenGL ES to dlaczego mamy do tej pory czekać na takie rozwiązania w przeglądarkach WWW w postaci Canvas 3D? Programista Mozilli Vladmir Vukićević zaproponował takie rozszerzenie dla Firefoxa 3, a to już na horyzoncie Alp Toker pracuje nad przeglądarką na bazie silnika WebKit w której można będzie można przenieść świat Second Life do przeglądarek internetowych. Ale tak w sumie Flash Player ze swoimi silnikami 3D wraz ze wsparciem Adobe AIR dla znacznika canvas są obecnie najlepszym rozwiązaniem dla programistów, którzy chcieliby tworzyć bogaty interfejs użytkownika aplikacji komputerowych, przy użyciu technologii stosowanej w przeglądarkach internetowych.

1 komentarz:

Peter Gwiazda pisze...

Myślę, że nie ma się co za bardzo gorączkować. Podobnie jak pozornie w Ajaxie da się "wszystko zrobić" jak mawiają zwolennicy JS, w środowisku produkcyjnym, kiedy ważna jest niezawodność, szybkość wytwarzania oprogramowania i przewidywalność takie rozwiązania jak Flex ze swoimi narzędziami mają zdecydowaną przewagę. Nikt nie ma czasu na szukanie i omijanie bugów/niezgodności w przeglądarkach. Pomijając fakt, że jednak możliwości techniczne są tu znacznie większe.
Jest SVG, które miało wyprzeć Flasha i w ogóle być najlepsze na świecie. Znów dużo da siętu zrobić, da się kodować za pomocą JS, w nowym standardzie są jakieś cienie, rozmycia i inne efekty, i co ? Jakoś nie powala na kolana. Głównie dlatego,że każda przeglądarka robi z tym co chce.
Co do 3D - już dawno temu był standard VRML, który nawet w kilku przeglądarkach działał i widziałem parę fajncyh rzeczy. Ten sam problem.
Na Canvas też bym jakoś strasznie nie liczył. Raczej nie wytrzyma rywalizacji na rynku RIA pomiędzy Flexe, Silverlightem i JavaFX. Nawet rewelacyjne OpenLaszlo słabo daje radę.