Professional Documents
Culture Documents
internetowych dla
urzdze mobilnych
Autorzy: Gail Frederick, Rajesh Lal
Tumaczenie: Mikoaj Szczepaniak
ISBN: 978-83-246-2729-5
Tytu oryginau: Beginning Smartphone Web Development:
Building Javascript, CSS, HTML and Ajax-Based
Applications for iPhone, Android, Palm Pre, Blackberry,
Windows Mobile and Nokia S60
Format: 158235, stron: 376
Poznaj najlepsze praktyki tworzenia mobilnych witryn internetowych
Jak budowa interaktywne witryny dla smartfonw?
Jak zwikszy uyteczno mobilnej witryny internetowej?
Jak zoptymalizowa serwer WWW pod ktem przegldarek mobilnych?
Internet mobilny to wyjtkowo ekscytujcy, ale i chaotyczny ekosystem, ktry podlega
gwatownym i trudnym do przewidzenia zmianom. Ten podrcznik pozwoli Ci nie tylko
przetrwa w tym fascynujcym i dziewiczym wiecie, ale skutecznie radzi sobie
z pojawiajcymi si w nim problemami ze skadni, semantyk i programowaniem.
Ksika, ktr trzymasz w rkach, to niezastpiony przewodnik po dungli mobilnego
Internetu. Pozwoli Ci oswoi wszelkie problemy, z ktrymi moesz spotka si jako
programista.
Ksika Projektowanie witryn internetowych dla urzdze mobilnych zawiera
szczegowe opisy standardw, najlepszych praktyk i technik projektowania, niezbdnych
do budowy interaktywnych stron WWW dla urzdze mobilnych. Korzystajc z tego
podrcznika, nauczysz si stosowa rozszerzenia dostpne dla zaawansowanych
przegldarek instalowanych w smartfonach, a take optymalizowa, sprawdza,
testowa oraz wdraa witryny mobilne w publicznym Internecie i specyficznym
ekosystemie mobilnym. Opanujesz niezbdne umiejtnoci i nabierzesz pewnoci siebie
potrzebnej do tworzenia przenonych aplikacji internetowych w niezwykym rodowisku
urzdze mobilnych.
Mobilna witryna internetowa
Mobilne arkusze stylw
Konfiguracja rodowiska
Skadnia mobilnych witryn internetowych
Rozpoznawanie urzdze i dostosowywanie treci
Model wytwarzania iteracyjnego
Wdraanie rozwiza w ekosystemie mobilnym
Optymalizacja kodu mobilnego jzyka znacznikw
Testowanie i wdraanie mobilnej witryny internetowej
Z tym podrcznikiem z atwoci oswoisz i uporzdkujesz chaos ekosystemu Internetu mobilnego
Spis treci
O autorach .............................................................................................. 11
O recenzentach ...................................................................................... 13
Podzikowania ....................................................................................... 15
Wprowadzenie ....................................................................................... 17
Cz I
19
Rozdzia 1.
Rozdzia 2.
Spis treci
Cz II
59
Rozdzia 3.
Spis treci
Rozdzia 4.
Rozdzia 5.
Cz III
Rozdzia 6.
179
Spis treci
Cz IV
Rozdzia 8.
Rozdzia 9.
229
Spis treci
10
Spis treci
Cz V
Dodatki
335
Dodatek A
Dodatek B
Dodatek C
Dodatek D
R OZDZIA
7
Wzbogacanie mobilnych
stron internetowych
z myl o przegldarkach
instalowanych w smartfonach
Wszystkie techniki tworzenia mobilnych witryn internetowych omwione w pozostaych rozdziaach tej ksiki mona z powodzeniem stosowa w rnych urzdzeniach i przegldarkach mobilnych. Na podstawie bazy danych o urzdzeniach
i w drodze odpowiednich testw programista witryny mobilnej moe urozmaici
swoje strony, dodajc zaawansowane funkcje przeznaczone tylko dla najnowszych,
najbardziej zaawansowanych przegldarek. Tak rozbudowane strony mona nastpnie dostosowa do moliwoci prostszych przegldarek (instalowanych w taszych
telefonach). Warto przy tym zadba o wybr waciwej wersji witryny, zalenej od
uywanego urzdzenia mobilnego.
Rozdzia ten powicono w caoci przegldarkom instalowanym w smartfonach.
Moesz wic na moment zapomnie o przenonoci i zapewnianiu zgodnoci z wieloma platformami mobilnymi. Tym razem skoncentrujemy si na moliwociach
najbardziej rozbudowanych przegldarek mobilnych i najpopularniejszych obecnie
smartfonw. Na tej podstawie opracujemy atrakcyjne aplikacje wykorzystujce potencja tych zaawansowanych przegldarek. Tego rozdziau nie naley jednak traktowa jako wyczerpujcej listy funkcji przegldarek oferowanych przez poszczeglne
smartfony. Kada z tych przegldarek zasuguje na osobn ksik! Tu dowiesz si,
jakie s najwaniejsze funkcje i ograniczenia poszczeglnych przegldarek oraz gdzie
szuka podrcznikw dla programistw i dokumentacji producentw.
Wszystkie przegldarki mobilne tutaj opisane obsuguj jzyk XHTML, standard
CSS2 i skrypty jzyka JavaScript. Wikszo dodatkowo obsuguje technologi AJAX.
Oznacza to, e przegldarki instalowane w smartfonach stanowi efektywn platform dla dynamicznych aplikacji internetu mobilnego. Nasz analiz rozpoczniemy od przegldu typowych funkcji wsplnych dla wielu przegldarek smartfonw. Zaraz potem przystpimy do omawiania funkcji waciwych przegldarkom
207
Na rysunku 7.1 pokazano przykad mobilnej strony internetowej z listingu 9.2 (z rozdziau 9.)
w wersjach z powyszym znacznikiem <meta> viewport oraz bez tego znacznika wywietlonych
na ekranie smartfonu Palm Pre. Warto zwrci uwag na sposb, w jaki znacznik <meta>
viewport wpywa na skalowanie i pocztkow uyteczno tej strony. Wyczenie moliwoci
przewijania i ustawienie odpowiedniej szerokoci obszaru wywietlania w praktyce wyklucza
konieczno przybliania widoku treci strony.
209
Tabela 7.1. Wartoci waciwoci window.orientation jzyka JavaScript dla telefonu iPhone
Warto
waciwoci
Opis
-90
90
180
switch (window.orientation) {
case -90:
// Orientacja pionowa.
break;
case 90:
Moesz te wykorzysta wbudowane waciwoci screen.width i screen.height jzyka JavaScript i okreli orientacj ekranu na podstawie prostych oblicze matematycznych. Jeli szeroko ekranu jest wiksza od jego wysokoci, mamy do czynienia z orientacj poziom. W przeciwnym razie urzdzenie dziaa w orientacji pionowej. W poniszym fragmencie kodu
JavaScriptu okrelono orientacj urzdzenia wanie na podstawie wbudowanych waciwoci
JavaScriptu:
var width = parseInt(screen.width);
var height = parseInt(screen.height);
if (width > height) {
// Orientacja pozioma.
}
else {
// Orientacja pionowa.
}
W powyszym przykadzie uylimy funkcji wbudowanej parseInt() do zapewnienia, e wartoci reprezentujce szeroko i wysoko ekranu s liczbami cakowitymi w ten sposb
unikamy bdw w implementacjach JavaScriptu, w ktrych obie te waciwoci maj posta
acuchw.
211
}
</script>
</head>
<!-- W tym przypadku generujemy zdarzenie onorientationchange take przy okazji adowania dokumentu,
aby wywietli na ekranie informacje o domylnej orientacji urzdzenia mobilnego. -->
<body onload="handleOrientationChange();"
onorientationchange="handleOrientationChange();">
<h1>Zmiany orientacji</h1>
<p>Zmie orientacj swojego urzdzenia mobilnego. Sprawd w poniszym polu,
jaka jest bieca orientacja tego urzdzenia.</p>
<div id="content"></div>
</body>
</html>
Rysunek 7.2. Dokument z listingu 7.1 wywietlony w emulatorze telefonu iPhone w orientacji
pionowej i poziomej
W listingu 7.2 przedstawiono przykad dokumentu mobilnej witryny internetowej wykrywajcego i obsugujcego zmiany orientacji urzdzenia mobilnego na podstawie zdarzenia onresize.
Funkcja obsugujca to zdarzenie wykorzystuje wartoci waciwoci screen.width i screen.
height do wyznaczania i wywietlania biecej orientacji urzdzenia.
<!-- W tym przypadku generujemy zdarzenie onresize take przy okazji adowania dokumentu,
aby wywietli na ekranie informacje o domylnej orientacji urzdzenia mobilnego. -->
<body onload="handleResize();" onresize="handleResize();">
<h1>Zmiany orientacji</h1>
<p>Zmie orientacj swojego urzdzenia mobilnego. Sprawd w poniszym polu,
jaka jest bieca orientacja tego urzdzenia.</p>
<div id="content"></div>
</body>
</html>
Funkcja handleResize jzyka JavaScript w kodzie z listingu 7.2 odpowiada za obsug zdarzenia
onresize. Funkcja ta wyznacza orientacj na podstawie wartoci waciwoci screen.width
i screen.height. Podobnie jak w przypadku dokumentu z listingu 7.1, o biecej orientacji
213
Znaczniki: HTML 4.01, XHTML 1.0 oraz pewne elementy standardu HTML 5.
Style: CSS 2.1 i pewne elementy standardu CSS3.
Skrypty: JavaScript 1.8, AJAX oraz DOM Level 1, 2 i 3.
215
Warto waciwoci
Opis
-webkit-background-size
-webkit-border-radius
Warto cakowitoliczbowa
(w pikselach)
-webkit-box-shadow
-webkit-transform
Stosuje przeksztacenie
wizualne dla danego elementu
(polegajce na zmianie skali,
obrocie, przesuniciu itp.).
-webkit-text-sizeadjust
Warto procentowa
Listing 7.3. Dokument mobilnej witryny internetowej korzystajcy z rozszerze standardu CSS
obsugiwanych przez silnik WebKit
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN"
"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="viewport" content="width=device-width,user-scalable=no" />
<title>Listing 7.3: Rozszerzenia CSS silnika WebKit</title>
<style type="text/css">
#content {
width: 89px;
height: 89px;
padding: 10px;
margin: 10px;
border: 2px solid #333;
-webkit-border-radius: 5px;
-webkit-transform: rotate(15deg);
}
#tulips {
width: 79px;
height: 79px;
margin: 5px;
}
</style>
</head>
<body>
<h1>Rozszerzenia CSS silnika WebKit</h1>
<div id="content"><img id="tulips" src="tulips.jpg" /></div>
</body>
</html>
Rysunek 7.4. Dokument z listingu 7.3 otwarty w emulatorach urzdzenia Palm Pre i systemu Android
Na rysunku 7.5 pokazano dokument mobilnej witryny internetowej z listingu 7.3 wywietlony
w maym oknie przegldarki Opera Mobile, ktra nie obsuguje rozszerze CSS silnika WebKit.
Jak wida, nasza strona internetowa prawidowo dostosowuje si do tych warunkw. Poniewa
rozszerzenia waciwe tylko silnikowi WebKit wyodrbniono w arkuszu stylw, przegldarka
mobilna po prostu ignoruje nieznane style.
Rysunek 7.5. Dokument z listingu 7.3 otwarty w maym oknie przegldarki Opera Mobile
217
Odtwarzacz iPod Touch firmy Apple jest niemal identyczny z telefonem iPhone z t rnic, e
nie oferuje moliwoci uzyskiwania dostpu do mobilnej sieci radiowej. Przegldarka Safari
Mobile dziaa tak samo w telefonie iPhone i w odtwarzaczu iPod Touch. Oznacza to, e wszystkie
witryny internetowe zoptymalizowane z myl o telefonach iPhone s optymalizowane take
dla odtwarzaczy iPod Touch, jeli tylko serwer waciwie rozpoznaje identyfikator aplikacji
klienckiej tego odtwarzacza.
Na rysunku 7.6 pokazano zrzut ekranu przegldarki internetowej Safari Mobile w emulatorze
iPhone Simulator (jednym z komponentw pakietu iPhone SDK).
219
221
CSS. W tej sytuacji firma RIM wybraa bodaj najlepsze rozwizanie dokadnie udokumentowaa te czciowe implementacje, aby zainteresowanym programistom uatwi odkrywanie, ktre
funkcje pozostay nieobsugiwane.
Wraz z wydaniem urzdzenia Bold 9000 w 2008 roku oraz urzdzenia Storm 9500 (z ekranem
dotykowym) w 2009 roku wprowadzono wersj 4.6 platformy BlackBerry z przegldark w peni
obsugujc jzyki HTML 4.01 i JavaScript oraz komponenty DOM Level 2 i technologi AJAX.
Okazuje si jednak, e ostatnie wydanie tej przegldarki z obsug technologii AJAX nie zmienio
sposobu traktowania urzdze BlackBerry przez wiele witryn internetowych znaczna cz
tych witryn dziaa tak, jakby przegldarka BlackBerry Browser nadal bya zgodna tylko ze standardami WAP.
Mimo tych problemw, przegldarka BlackBerry Browser jest w wielu aspektach do innowacyjna. Poczwszy od wersji 4.3, opisywana przegldarka oferuje dwa wbudowane, niedostpne
w innych przegldarkach obiekty JavaScriptu zapewniajce dostp do rodzaju sieci i pooenia
wyznaczanego przez system GPS. Waciwo blackberry.network reprezentuje acuch okrelajcy rodzaj sieci mobilnej aktualnie uywanej przez dany smartfon. Warto tej waciwoci
zaley od rodzaju biecej sieci i moe wskazywa na sie CDMA, EDGE, iDEN, GPRS itp.
Waciwo blackberry.location reprezentuje obiekt blackberry.location zawierajcy
wsprzdne geograficzne (wedug systemu GPS) danego urzdzenia (oczywicie, jeli to urzdzenie obsuguje system GPS). Waciwo blackberry.location.GPSSupported reprezentuje
warto logiczn okrelajc, czy dane urzdzenie mobilne obsuguje system GPS. Waciwoci
blackberry.location.latitude i blackberry.location.longitude reprezentuj odpowiednio
szeroko i dugo geograficzn. Obiekt blackberry.location udostpnia te metody odwieajce pooenie wedug systemu GPS i ustawiajce sposoby uzyskiwania pooenia na podstawie
sygnau GPS. Wicej informacji na temat obiektw blackberry.network i blackberry.location
jzyka JavaScript mona znale w dokumencie BlackBerry 4.3 Content Developers Guide
pod adresem http://docs.blackberry.com/en/developers/deliverables/1369/BlackBerry_Browser_
Version_4.3_Content_Developer_Guide.pdf.
Smartfony BlackBerry, ktre projektuje si przede wszystkim z myl o zastosowaniach biznesowych, obsuguj wiele protokow dostarczania treci oferowanych przez instalacje serwerw
korporacyjnych BlackBerry w firmowych lub mobilnych centrach danych. Na rysunku 7.9
pokazano zrzut ekranu z wynikami wygenerowanymi przez mobiln wersj wyszukiwarki
Google w przegldarce BlackBerry Browser (dla urzdzenia BlackBerry Storm 9530 z ekranem
dotykowym i platform mobiln w wersji 4.7.0).
Rysunek 7.9. Wyniki wyszukiwarki Google w emulatorze urzdzenia Blackberry Storm 9530
dla platformy BlackBerry 4.7.0
w pakiecie Feature Pack 1. W 5. wydaniu systemu Nokia Series 60 wprowadzono interfejs uytkownika przystosowany do wsppracy z ekranami dotykowymi, a take mechanizmy skalowania i przybliania stron przez uytkownika, moliwo wywietlania stron na penym ekranie
i obsug klawiszy skrtw.
Wok forum firmy Nokia (http://www.forum.nokia.com) powstaa spoeczno programistw
rozwiza mobilnych i aplikacji dla telefonw Nokia. Po rejestracji na tej witrynie (rejestracja
jest darmowa) programici mog przeglda i pobiera artykuy techniczne, specyfikacje, emulatory i przykadowe fragmenty kodu. Emulatory platformy Nokia Series 60 obejmuj wszystkie
wstpnie instalowane aplikacje mobilne, w tym przegldark Nokia Web Browser. Istnieje moliwo pobrania emulatorw dla kadej z wydanych wersji platformy Nokia Series 60 (a take
dla innych wanych systemw operacyjnych firmy Nokia, takich jak Series 40).
Wicej informacji na temat wszystkich technologii zaimplementowanych w przegldarce firmy
Nokia (szczeglnie w przegldarce na bazie silnika WebKit instalowanej w smartfonach
z systemem Series 60) mona znale w sekcji Web Technologies witryny Nokia Forum
(www.forum.nokia.com/Technology_Topics/Web_Technologies/). Przenoszenie silnika WebKit
na platform Series 60 Symbian jest realizowane w ramach projektu open-source; informacje na
temat tego projektu mona znale na stronie http://trac.webkit.org/wiki/S60Webkit. Strona
zawiera odsyacze do stanu projektu, strony pobierania kodu rdowego systemu Symbian
(w jzyku C++) oraz materiay pokazujce, jak budowa biblioteki silnika WebKit.
Na rysunku 7.10 pokazano przegldark Nokia Web Browser w emulatorze smartfonu N97.
223
Rysunek 7.10. Przegldarka Nokia Web Browser w emulatorze urzdzenia Nokia N97 z 5. wydania
platformy Series 60
Znaczniki: HTML 4.01, XHTML 1.0 i 1.1, XHTML-MP, XHTML Basic i WML.
Style: CSS 2.1, CSS Mobile Profile 1.0 i Wireless CSS 1.1.
Skrypty: JScript 5.6 (zgodny ze standardem ECMAScript 3); DOM 1 oraz elementy
modeli DOM 2 i DOM 3; AJAX.
Inne: Google Gears (IE Mobile 4.01 i nowsze).
225
dokumentw i rezygnacji z czci funkcji. Klient Opera Mini komunikuje si z serwerem Opera,
ktry wykonuje niezbdne operacje na danym dokumencie i odsya do klienta odpowiednio
zoptymalizowan wersj tego dokumentu. Serwer tumaczy kod jzyka HTML na jzyk OBML
(ang. Opera Binary Markup Language; w praktyce jest to obraz z obszarami dostpnymi do klikania) i odsya kod OBML-a do przegldarki, ktra wywietla tak przeksztacon stron. Przegldarka Opera Mini obsuguje jzyk JavaScript i technologi AJAX, ale nie dopuszcza do wykonywania tego rodzaju skryptw w urzdzeniach mobilnych. Wszystkie zaawansowane funkcje
przegldarki s wykonywane po stronie serwera. Jak nietrudno odgadn, przegldarka Opera
Mini obsuguje model zdarze JavaScriptu ograniczony tylko do zdarze, ktre mog by przechwytywane po stronie klienta i przesyane na serwer w celu waciwego przetworzenia. Przetwarzanie w tle i inicjalizowanie zdarze JavaScriptu przy uyciu licznika czasowego nie jest moliwe.
Firma Opera Software przeniosa przegldark Opera Mini na platform Android.
(Aplikacja Opera Mini jest dostpna za darmo w sklepie Android Market). W kontekcie
smartfonw firma Opera przekonuje, e przegldarka Opera Mini pozwala oszczdza
czas i pienidze, poniewa stosowany transkoder kompresuje strony internetowe o blisko
90%. Jednak z naszego dowiadczenia wynika, e korzystanie z tego mechanizmu
transkodujcego w systemie Android nie ma wikszego sensu. Ta zaawansowana platforma
mobilna zawiera rozbudowan przegldark zaimplementowan przy uyciu silnika
WebKit, zatem wikszo uytkownikw decyduje si na stosowanie wanie tej przegldarki
(chyba e koszty przesyania danych lub przepustowo stanowi powany problem).
Na rysunku 2.19 w rozdziale 2. pokazano zrzut ekranu emulatora przegldarki Opera Mini dostpnego na stronie internetowej www.opera.com/mini/demo/ (korzystanie z tego emulatora na
komputerze biurkowym wymaga zainstalowanej platformy Java). Dokumentacj obsugi jzyka
JavaScript w przegldarce Opera Mini 4 mona znale pod adresem http://dev.opera.com/
articles/view/javascript-support-in-opera-mini-4/.
Przegldarka Opera Mobile jest programem zupenie innym od przegldarki Opera Mini.
Opera Mobile to autonomiczna przegldarka internetowa zgodna ze standardami i opracowana
z myl o urzdzeniach mobilnych z systemami Windows Mobile i Nokia Series 60.
Obsuga takich rozwiza jak przegldanie wielu zakadek, przyblianie dokumentw czy optymalizacja pod ktem ekranw mobilnych przyspiesza i uatwia uytkownikom prac z t przegldark. Opera Mobile obsuguje nastpujce standardy internetowe.
Znaczniki: XHTML 1.0; HTML 4.01 i elementy standardu HTML 5; WML 1.3 i 2.0.
Style: CSS 2 i 3.
Skrypty: JavaScript, DOM Level 2 i AJAX.
Inne: Google Gears (Opera Mobile 9.5 i nowsze).
Firma Opera nie udostpnia emulatora przegldarki Opera Mobile. Jeli jednak masz dostp do
systemu Windows Mobile lub urzdzenia mobilnego firmy Nokia, moesz uzyska wygld
stron tradycyjnych witryn internetowych zbliony do formy, w jakiej prezentowane s w przegldarce Opera Mobile, instalujc biurkow przegldark Opera (www.opera.com/download/).
Wystarczy otworzy jak stron tradycyjnej witryny internetowej, odpowiednio zmniejszy
rozmiar okna i wybra z menu Widok opcj Dopasuj do szerokoci. Przegldarka Opera wywietli
wwczas wybran stron w sposb zbliony do przegldarki Opera Mobile, poniewa obie
przegldarki korzystaj z tego samego silnika wywietlania stron. (W przegldarce mobilnej,
oczywicie, mamy do dyspozycji nieporwnanie mniejsz liczb czcionek).
Rysunek 7.11. Wyniki mobilnej wyszukiwarki Google w emulatorze przegldarki Opera Mini 5
Rysunek 7.12. Widok maego ekranu przegldarki Opera przypominajcy przegldark mobiln
Opera Mobile
227
Podsumowanie
W tym rozdziale wprowadzono zaawansowane funkcje przegldarek instalowanych w smartfonach, ktre czyni z tych urzdze bardzo atrakcyjne platformy dla bogatych mobilnych aplikacji
internetowych. Przegldarki instalowane w smartfonach obsuguj typowe elementy jzykw
znacznikw i zdarzenia JavaScriptu, ktre znacznie rozszerzaj moliwoci tworzenia interaktywnej treci dokumentw mobilnych. Zaawansowany silnik przegldarek WebKit obsuguje
standardy internetowe i jako taki stanowi podstaw dla wielu domylnych przegldarek mobilnych instalowanych w smartfonach. Wspomniany silnik umoliwia programistom opracowanie
jednej zoptymalizowanej wersji dla smartfonw iPhone oraz urzdze mobilnych z systemami
Android, webOS i Nokia Series 60.