5
Journal of Applied Multimedia 1./VIII./2013 HU 24 MOBIL ALKALMAZÁSOK FEJLESZTÉSE – GDF MOBILINFO Kaczur Sándor, Kállai Miklós Gábor Dénes Főiskola [email protected], [email protected] Absztrakt - A cikk ismerteti azokat a szempontokat, ame- lyeket mobil alkalmazások fejlesztése során figyelembe kell venni. A szoftverfejlesztés általános megközelítéséből ki- emeljük a mobil platform esetén jól alkalmazható elve- ket/módszereket. Ismertetünk egy konkrét alkalmazást is, amely képes az intézmény tanulmányi rendszeréből kinyert adatokra építve órarendhez, vizsgához, fogadóórához kötő- dő adatokat megjeleníteni a hallgatók számára. Az alkalma- zás Android és Windows Phone platformon valósult meg, Windows WCF Service szolgáltatásra építve. Bemutatjuk az alkalmazások funkcióit, megosztjuk a publikálás tapasztala- tait. Kulcsszavak: felsőoktatás, mobil programozás, mobil technológia, mobil alkalmazás BEVEZETÉS Az első kereskedelmi forgalomban elérhető mobiltele- fon 1979-ben jelent meg a japán fővárosban [1]. Fontos tudni, hogy folyamatosan együtt fejlődtek/fejlődnek a készülékek, a vezeték nélküli – rádiós – hálózat és ezek szolgáltatásai. A mobilpiac négyszereplős: hálóza- toperátor, szolgáltató/szolgáltatás, készülékgyártó, fel- használó. A mobiltelefon-hálózatok története generációkra bontható, ezek rövid összefoglalása több helyen is elérhető, pl.: [2]. Manapság a 3. generációs mobilhálóza- tok és eszközök korát éljük, de terjed a 4G is [3, 4]. A mobilkészülékek három fő kategóriába sorolhatók: egy- szerű/általános, okostelefon, PDA. Ezek szolgáltatásai folyamatosan bővülnek, a kategóriák határai időről-időre változnak [5]. MÉRFÖLDKÖVEK Röviden tekintsük át a mobilpiac fejlődésének történe- tét gyártók és platformok szempontjából: 1996-ban megjelent a Palm Pilot 1000 PDA ké- szülék [6], amely önálló termékkategóriát terem- tett. Ugyanabban az évben megjelent a Windows CE operációs rendszer [7], egyben specifikálta azon eszközök jellemzőit (minimális hardverkövetel- mény), amelyen működni tudott. 2000-ben az Ericsson cég bemutatta Ericsson R380 néven első Symbian operációs rendszerre épített okostelefonját, valamint 2001-től a Nokia is Symbian rendszerű rendszerre épített [8]. 2005-ben megjelent az OHA által fejlesztett Android mobil operációs rendszer [9], sok-sok szolgáltatással [10]. 2007 elején az Apple cég – több korábbi sikeres eszközre és új funkciókra építve – piacra dobta az iPhone okostelefont [11], szintén rengeteg funkcióval [12]. 2010-ben jelent meg a Microsoft termékeként a Windows Phone okostelefon [13]. Jelenleg a mobiltelefonok penetrációja 85%-os világszerte [14], ezen belül az okostelefonoké egyre növekszik (1. ábra). 1. ábra Okostelefonok penetrációja [15] PLATFORMOK A mobil platform tekinthető hardvernek (készülék), operációs rendszernek, virtuális gépnek. Magába foglalja a mobil eszköz architektúráját, az eszközt működtető operációs rendszert, valamint a fejlesztési lehetőséget biztosító programozási nyelvet, dinamikus könyvtárakat és felhasználói felületet. Elterjedtségük folyamatosan változik (2. ábra).

Mobil alkalmazások fejlesztése - GDF mobilinfo · 2014-01-21 · Journal of Applied Multimedia 1./VIII./2013 HU 24 MOBIL ALKALMAZÁSOK FEJLESZTÉSE – GDF MOBILINFO Kaczur Sándor,

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Journal of Applied Multimedia 1./VIII./2013 HU

24

MOBIL ALKALMAZÁSOK FEJLESZTÉSE – GDF MOBILINFO

Kaczur Sándor, Kállai Miklós

Gábor Dénes Főiskola

[email protected], [email protected] Absztrakt - A cikk ismerteti azokat a szempontokat, ame-lyeket mobil alkalmazások fejlesztése során figyelembe kell venni. A szoftverfejlesztés általános megközelítéséből ki-emeljük a mobil platform esetén jól alkalmazható elve-ket/módszereket. Ismertetünk egy konkrét alkalmazást is, amely képes az intézmény tanulmányi rendszeréből kinyert adatokra építve órarendhez, vizsgához, fogadóórához kötő-dő adatokat megjeleníteni a hallgatók számára. Az alkalma-zás Android és Windows Phone platformon valósult meg, Windows WCF Service szolgáltatásra építve. Bemutatjuk az alkalmazások funkcióit, megosztjuk a publikálás tapasztala-tait. Kulcsszavak: felsőoktatás, mobil programozás, mobil technológia, mobil alkalmazás

BEVEZETÉS Az első kereskedelmi forgalomban elérhető mobiltele-

fon 1979-ben jelent meg a japán fővárosban [1]. Fontos tudni, hogy folyamatosan együtt fejlődtek/fejlődnek a készülékek, a vezeték nélküli – rádiós – hálózat és ezek szolgáltatásai. A mobilpiac négyszereplős: hálóza-toperátor, szolgáltató/szolgáltatás, készülékgyártó, fel-használó. A mobiltelefon-hálózatok története generációkra bontható, ezek rövid összefoglalása több helyen is elérhető, pl.: [2]. Manapság a 3. generációs mobilhálóza-tok és eszközök korát éljük, de terjed a 4G is [3, 4]. A mobilkészülékek három fő kategóriába sorolhatók: egy-szerű/általános, okostelefon, PDA. Ezek szolgáltatásai folyamatosan bővülnek, a kategóriák határai időről-időre változnak [5].

MÉRFÖLDKÖVEK Röviden tekintsük át a mobilpiac fejlődésének történe-

tét gyártók és platformok szempontjából: • 1996-ban megjelent a Palm Pilot 1000 PDA ké-

szülék [6], amely önálló termékkategóriát terem-tett.

• Ugyanabban az évben megjelent a Windows CE operációs rendszer [7], egyben specifikálta azon eszközök jellemzőit (minimális hardverkövetel-mény), amelyen működni tudott.

• 2000-ben az Ericsson cég bemutatta Ericsson R380 néven első Symbian operációs rendszerre épített okostelefonját, valamint 2001-től a Nokia is Symbian rendszerű rendszerre épített [8].

• 2005-ben megjelent az OHA által fejlesztett Android mobil operációs rendszer [9], sok-sok szolgáltatással [10].

• 2007 elején az Apple cég – több korábbi sikeres eszközre és új funkciókra építve – piacra dobta az iPhone okostelefont [11], szintén rengeteg funkcióval [12].

• 2010-ben jelent meg a Microsoft termékeként a Windows Phone okostelefon [13].

Jelenleg a mobiltelefonok penetrációja 85%-os világszerte [14], ezen belül az okostelefonoké egyre növekszik (1. ábra).

1. ábra Okostelefonok penetrációja [15]

PLATFORMOK A mobil platform tekinthető hardvernek (készülék),

operációs rendszernek, virtuális gépnek. Magába foglalja a mobil eszköz architektúráját, az eszközt működtető operációs rendszert, valamint a fejlesztési lehetőséget biztosító programozási nyelvet, dinamikus könyvtárakat és felhasználói felületet. Elterjedtségük folyamatosan változik (2. ábra).

Journal of Applied Multimedia 1./VIII./2013 HU

25

2. ábra Okostelefonok operációs rendszerei [16]

OKOSTELEFONOK Az okostelefonok funkcióira, tulajdonságaira nincs ipari

szabvány definiálva. Teljes értékű operációs rendszerrel rendelkeznek. Biztosítanak e-mail, internet hozzáférést, tartalmaznak teljes billentyűzetet. Mini számítógépnek tekinthetők. Telepíthetők rájuk új alkalmazások, léteznek fejlesztőeszközök (SDK), amelyekkel saját magunk is készíthetünk mobil alkalmazásokat [17]. Néhány szolgál-tatás/funkció, amelyet a mobil operációs rendszerek támogatnak: érintőkijelző, kamera, SMS, MMS, internet, kép- és hangrögzítés, Bluetooth, WiFi, GPS, digitális iránytű, érzékelők: accelerometer, gyroscope, ambient light, proximity. Mobil alkalmazásokhoz virtuális piacte-reken juthatunk hozzá [18, 19, 20], a bőség zavara adott az ingyenes és fizetős alkalmazások között.

ANDROID Az Android egy Linux kernelre épülő operációs rend-

szer, amelyet a Dalvik virtuális gép futtat. Közvetlenül támogatja a mobil eszközök hardverkomponenseit és az elterjedt multimédiás formátumokat. Fejlesztője az Open Handset Alliance volt, később a Google. Nyílt forráskódú projekt, Apache licensszel. Nagy fejlesztői közösség tartozik hozzá. 2012 júniusában világszerte 400 millió androidos eszköz van, valamint naponta egymillió új androidos eszközt aktiválnak [21]. A platformra Java nyelven fejleszthetőek alkalmazások, általában Eclipse fejlesztőeszközzel, speciális osztálykönyvtárral (Android SDK) kiegészítve. Alapvető építőkockának tekintjük az Activity-t. A GUI deklaratív módon is létrehozható. Jelen-leg az Android alkalmazások az összes letöltés 50%-át adják a mobil alkalmazások piacán (3. ábra) [22]. A plat-formról és a fejlesztésről bővebben: [23].

3. ábra Android alkalmazások letöltése világszerte (2012. április)

Az API legújabb verziója is akkor jelent meg (4.1, kó-

dneve Jelly Bean) [9]. A fő API verziók között jelentős design különbségek vannak. Az Android platform előnyei:

egyre letisztultabb felhasználói felület, könnyebb haszná-lat, ICS verziótól kötelező téma, egyedi design is fejleszthető. Az Android platform hátránya a töredezettség, a funkcionalitásnak a legalacsonyabb – még elterjedt – API-hoz kell igazodnia.

WINDOWS PHONE A Windows Phone a Microsoft cég mobil platformját,

operációs rendszerét jelenti. A korább elterjedt Windows Mobile platformot fejlesztették tovább, Windows CE kernelen alapul. Szigorú hardver követelményei vannak, szűkebb HCL-lel rendelkezik. Az újszerű letisztult, ele-gáns felhasználói felület neve Metro, speciális Silver-lightos felületnek tekinthető. Több készülékgyártó is van: Samsung, HTC, LG, Nokia, de a designt nem módosíthat-ják. Jelenleg a 8-as verziónál tart. Támogatja a multi-touch technológiát, további szolgáltatások: [24]. Szoftverfrissítések kizárólag a Microsoft felügyelete alatt történhetnek. Jellemzi a kód újrahasznosítás: WPF, Silver-light és WP7 között megosztható a forráskód, valamint az MVVM, mint robosztus architekturális tervezési minta. A platformra C# nyelven, Windows Phone SDK-val, Visual Studio fejlesztőeszközzel fejleszthetünk. A GUI itt is létrehozható deklaratívan, erre szolgál a XAML leíró nyelv.

KORLÁTOK A szoftverfejlesztés lehetőségeit mindig behatárolja az

operációs rendszer és a hardver. Asztali vagy webes al-kalmazások fejlesztéséhez képest mobil platform esetén jelentősen szűkebb a keresztmetszet. Gyengébb, korláto-zott a hardver: lassabb ARM típusú RISC processzor(ok) áll(nak) rendelkezésre, kisebb a felhasználható memória, korlátozott kapacitású energiaellátást/akkumulátort és kisebb kijelzőt biztosítanak a készülékek. Továbbá a graf-ikus komponensek száma kisebb, az SDK oszt-álykönyvtárai sem olyan szerteágazóak [17]. Mindezeket figyelembe kell vennünk, amikor mobil platformra fejlesztünk alkalmazásokat. Illik tudomásul venni a designra vonatkozó előírásokat, javaslatokat, emiatt nem tudunk minden platformon megegyező felhasználói felülettel rendelkező alkalmazást készíteni egy-egy alkal-mazás esetén. A kisebb kijelző óriási kihívás, szemléletet kell váltani ahhoz, hogy kellően felhasználóbarát és jól használható felületet tudjunk készíteni.

SPECIFIKÁCIÓ ÉS KÖVETELMÉNYEK A GDF mobilinfo legyen olyan egyszerűen használható

mobil alkalmazás, amely képes az intézmény (GDF) tanulmányi rendszeréből kinyert adatokra építve órar-endhez, vizsgához, fogadóórához kötődő adatokat megjeleníteni a hallgatók számára.

A tanulmányi rendszerhez fejlesztett RESTful Win-dows Communication Foundation webservice előállítja a megjelenítendő adatokat csv formátumban a klienstől érkező kérés hatására személyre szabott és az adatfor-galom minimalizálása érdekében tömörített módon. A mobil eszköz legyen képes hitelesített, titkosított módon (NEPTUN kód, NEPTUN jelszó) frissítést kezdeményezni. A megkapott tömörített adatot a kliens kicsomagolás után tárolja lokális adatbázisban, amelyet feldolgozva, többféle módon megjelenít.

A WiFi statisztika alapján a megfigyelt időszakban az intézmény vezeték nélküli hálózatára kapcsolódott mobil

Journal of Applied Multimedia 1./VIII./2013 HU

26

eszközök 70%-a Android, 20%-a iOS, 10%-a egyéb plat-formra épül.

Így az alkalmazott eszközök az alábbiak szerint alakul-nak: Android platformon:

• Android SDK (minimum API level 7, Android 2.0/2.1),

• Eclipse IDE (Indigo, Juno), • Android Developer Tools plugin for Eclipse

(v15-20), • teszthardver: Samsung Nexus S (GT-i9023) és

Samsung Galaxy Nexus (GT-i9250), • programozási nyelv: Java SE 1.6.

Windows Phone platformon: • Windows Phone SDK 7.1, • Microsoft Visual Studio 2010 Express, • Microsoft Blend for Windows Phone, • teszthardver: Samsung Omnia 7 (GT-i8700), • programozási nyelv: C#, Silverlight for Win-

dows Phone. Windows WCF Service:

• Microsoft Visual Studio 2010 SP1, • Microsoft SQL Server 2008, • Entity Framework 4.0, • programozási nyelv: C#.

Az alkalmazás fejlesztésében részt vettek: Endrődi Tamás (adatbázis programozás), Kállai Miklós (WCF Service, Android és Windows Phone platform). A to-vábbfejlesztés egyik iránya az iPhone platform, amelyet Zentai Norbert Zsolt fog elkészíteni.

FEJLESZTÉS ANDROID PLATFORMON A Google a fejlesztéshez az Eclipse IDE fejleszt-

őeszközt választotta [25], ehhez készítette el az ADT (Android Developer Tools) plugint [26]. Ez teszi lehetővé az Android SDK használatát, biztosít kódkiegészítést, grafikus felület szerkesztőt, hibakeresőt, illetve előre elké-szített alkalmazás sablonokat.

A fejlesztés megkezdése előtt meg kellett határozni azt az API verziót, amit minimumnak tekintünk. Abban az időben az Android 2.1-es verziója még 10% fölötti ré-szesedéssel bírt, így nem lehetett elhanyagolni. Az An-droid verziók és különböző gyártók felületeinek különbsége miatt egyedi grafikus felület került kiala-kításra. Így a hallgatók egy egységes alkalmazást kapnak. Az alapelv az volt, hogy a kezdőképernyőről azonnal elérhető legyen a személyes órarend, a vizsgaeredmények, a fogadóórák és az időrendi táblák.

Következzen egy részlet a GUI forráskódjából (4. ábra).

4. ábra Androidos forráskód-részlet (xml, felület)

Ez egy DashBoardLayout [27] felülettel lett megoldva, amelyen négy nagy gomb jelzi ikonokkal és feliratokkal az elérhető funkciókat. Innen tovább navigálva a to-vábbiakban listákkal találkozunk, melyek további navi-gációt tesznek lehetővé a listaelemeken való „kattintá-ssal”. Azokon a helyeken, ahol a hetek napjai között kell navigálni ott a ViewPager komponens [28] került fel-használásra, így a napok között lehet lapozgatni.

Az alkalmazás indulásakor ellenőrzi, hogy van-e beál-lított felhasználónév és jelszó. Ezek hiányában megkéri a felhasználót, hogy adja meg ezeket, egyébként megjeleníti a kezdő képernyőt. Amennyiben nem létezik adatbázis, csatlakozik a szerverhez és letölti a személyre szabott csv-t, amelyet feldolgozás után egy SQLite adatbázisban tárol későbbi offline használatra. A további frissítések lehetnek automatikusak (egyéni preferencia), illetve manuálisak.

A fejlesztés során – bár létezik emulátor – egy Google (Samsung) Nexus S készülék szolgált fejlesztőeszközként. Ez nagyban megkönnyítette a hibakeresést, lehetett tesztelni WiFi és mobilhálózaton is a frissítések idejét. Néhány forráskód-részlet (5. ábra):

5. ábra Androidos forráskód-részlet (eseménykezelés és

alkalmazáslogika)

Amikor olyan állapotba került az alkalmazás, néhány kiválasztott hallgató megkapta az addigi verziót és a visszajelzéseik alapján a felmerült hibák javításra kerültek.

6. ábra A GDF mobilinfo alkalmazás a Google Play Storeban

Journal of Applied Multimedia 1./VIII./2013 HU

27

A Play Store-ba ezután a tesztelés után került fel, egyelőre béta jelzővel [29] (6. ábra). A publikálási fol-yamat viszonylag egyszerű, melyet egy rövid regisztráció előz meg (a fejlesztői regisztráció 25$-ba kerül, mely egyszeri díj). A Play Store statisztikái alapján kb. 180 aktív telepítés van.

Néhány képernyőkép az alkalmazásról (7. ábra):

7. ábra A GDF mobilinfo alkalmazás néhány képernyőképe (Android)

FEJLESZTÉS WINDOWS PHONE PLATFORMON Windows Phone-ra fejlesztéshez szükségünk van egy

Visual Studio 2010-re (Express vagy magasabb kiadás) és a Windows Phone 7.1 SDK-ra [30]. A Windows Phone a Silverlight egy speciális változatát használja, így amit a Silverlight és Windows Presentation Foundation fejlesztésnél megtanultunk, azt itt azonnal használhatjuk.

8. ábra Windows Phoneos forráskód-részlet (xaml, felület)

Amennyiben valamely WPF vagy Silverlight alkal-

mazásunkat szeretnénk WP7-re portolni, akkor nagyon egyszerű dolgunk van: az eddig elkészült kódunkat szinte változtatás nélkül használhatjuk. Használhatjuk a népszerű és robosztus architekturális mintát a Model-View-ViewModel-t, röviden MVVM-et [31]. A Windows Phone egy merőben új, egyszerű, letisztult felhasználói felületet kínál számunkra. Ennek szellemében készült el az alkal-mazás is. Itt panoráma nézet került implementálásra. Itt a DashBoardLayout helyett panoráma nézetet használtuk, illetve a ViewPager helyett a Pivot vezérlőt (funkcional-itásban ugyanaz) [32] (8. ábra).

Néhány forráskód-részlet (9. ábra):

9. ábra Windows Phoneos forráskód-részlet (eseménykezelés és alkal-

mazáslogika)

Az alkalmazás funkcionalitása teljes mértékben me-gegyezik az androidos verzióéval, csak a felhasználói felületben van különbség a felhasználók számára.

Néhány képernyőkép az alkalmazásról (10. ábra):

10. ábra A GDF mobilinfo alkalmazás néhány képernyőképe (Windows

Phone)

TAPASZTALATOK, TOVÁBBFEJLESZTÉSI LEHETŐSÉGEK

A két alkalmazás fejlesztése párhuzamosan történt, ez kiváló összehasonlítási lehetőséget biztosított a két plat-form között. Az androidos fejlesztés rugalmassága miatt szembeötlött a Windows Phone platform korlátossága.

A hallgatók között villámgyorsan elterjedt az alkal-mazás. Örömmel fogadták, hogy a tanulmányi rendszer praktikus kiegészítéseként a gyakran frissülő adatokhoz mobiltelefonjukon keresztül hozzáférhetnek, nem kell ezért a Neptunba bejelentkezni. A visszajelzések egyér-telműen pozitívak.

A GUI egyszerű, az alkalmazás telepítése könnyű. A tanár kollégák is megelégedéssel használják. Sok-sok tipikus, hétköznapi kérdést már nem személye-

sen/e-mailben tesznek fel a hallgatók, tehermentesítve ezzel a Tanulmányi Hivatal Információs Központját.

Néhány ésszerű ötlet is érkezett a továbbfejlesztésre. Az iPhone-os fejlesztés is zajlik már.

HIVATKOZÁSOK [1] Mobile phone:

http://en.wikipedia.org/wiki/Mobile_phone#History

[2] Mobile Phone Generations: http://www.funsms.net/mobile_phone_generations.htm

[3] Elindult a 4G Magyarországon: http://nol.hu/gazdasag/elindult_a_4g_magyarorszagon

[4] 4G/LTE: http://www.t-mobile.hu/lakossagi/mobil_szelessav/hasznos/4G

Journal of Applied Multimedia 1./VIII./2013 HU

28

[5] Types of Mobile Phones: http://www.ehow.com/facts_4914968_types-mobile-phones.html

[6] Pilot 1000 Retrospective: http://www.palminfocenter.com/news/8493/pilot-1000-retrospective

[7] The History of Microsoft Windows CE: http://www.hpcfactor.com/support/windowsce/wce1.asp

[8] Symbian: http://hu.wikipedia.org/wiki/Symbian [9] Android (operating system):

http://en.wikipedia.org/wiki/Android_(operating_system)

[10] Android (operating system): http://en.wikipedia.org/wiki/Android_(operating_system)#Features

[11] Apple – Press Info – Apple Reinvents the Phone with iPhone: http://www.apple.com/pr/library/2007/01/09Apple-Reinvents-the-Phone-with-iPhone.html

[12] Apple – iPhone 4S – See all the amazing new things iPhone can do: http://www.apple.com/iphone/features/

[13] Windows Phone Update History: http://www.microsoft.com/windowsphone/en-us/howto/wp7/basics/update-history.aspx

[14] Mobile phone penetration now at 85% worldwide: http://www.ameinfo.com/291448.html

[15] Global Smartphone Penetration: http://www.asymco.com/2011/12/13/global-smartphone-penetration-below-10

[16] Windows Phone to beat Android: http://upload.wikimedia.org/wikipedia/commons/thumb/a/ae/World-Wide-Smartphone-Market-Share.png/800px-World-Wide-Smartphone-Market-Share.png

[17] Forstner, B., Ekler, P., Kelényi, I.: Bevezetés a mobilprogramozásba – Gyors prototípusfejlesztés Python és Java nyelven, SZAK Kiadó Kft., Bicske, 2008, ISBN 978-963-9863-01-9

[18] Google Play Store: play.google.com/store [19] Marketplace:

wwww.windowsphone.com/marketplace [20] App Store: http://www.apple.com/iphone/from-

the-app-store

[21] Android activates 1 million devices per day, 400 million exist: http://androinica.com/2012/06/android-activates-1-million-devices-per-day-400-million-exist-4x-as-many-as-a-year-ago

[22] Android alkalmazások letöltése világszerte (2012. április): http://www.knowyourmobile.com/siteimage/scale/800/600/315613.png

[23] Android 4.1 APIs | Android Developers: http://developer.android.com/about/versions/android-4.1.html

[24] Windows Phone: http://en.wikipedia.org/wiki/Windows_Phone#Features

[25] Eclipse Downloads: http://www.eclipse.org/downloads

[26] ADT Plugin | Android Developers: http://developer.android.com/tools/sdk/eclipse-adt.html

[27] Android UI Patterns: Implementating Dashboard and Action Bar: http://www.androiduipatterns.com/2011/01/implementing-dashboard-and-action-bar.html

[28] ViewPager | Android Developers: http://developer.android.com/reference/android/support/v4/view/ViewPager.html

[29] GDF mobilinfo alkalmazás a Google Play Storeban: https://play.google.com/store/apps/details?id=info.kallaim.gdfinfo&feature=search_result#?t=W251bGwsMSwxLDEsImluZm8ua2FsbGFpbS5nZGZpbmZvIl0.

[30] Download WP SDK 7.1: http://www.microsoft.com/en-us/download/details.aspx?id=27570

[31] THE MODEL-VIEW-VIEWMODEL (MVVM) DESIGN PATTERN FOR WPF: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

[32] Windows Phone 7 – Part #5: Panorama and Pivot controls: http://www.silverlightshow.net/items/Windows-Phone-7-Part-5-Panorama-and-Pivot-controls.aspx