Journal of Applied Multimedia 1./VIII./2013 HU
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, amelyeket mobil alkalmazások fejlesztése során figyelembe kell venni. A szoftverfejlesztés általános megközelítéséből kiemeljük a mobil platform esetén jól alkalmazható elveket/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 alkalmazá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 tapasztalatait.
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). •
Kulcsszavak: felsőoktatás, mobil programozás, mobil technológia, mobil alkalmazás BEVEZETÉS Az első kereskedelmi forgalomban elérhető mobiltelefon 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ózatoperátor, szolgáltató/szolgáltatás, készülékgyártó, felhaszná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ózatok é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: egyszerű/á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].
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).
MÉRFÖLDKÖVEK Röviden tekintsük át a mobilpiac fejlődésének történeté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 teremtett. • Ugyanabban az évben megjelent a Windows CE operációs rendszer [7], egyben specifikálta azon eszközök jellemzőit (minimális hardverkövetelmé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].
24
Journal of Applied Multimedia 1./VIII./2013 HU 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, elegáns felhasználói felület neve Metro, speciális Silverlightos felületnek tekinthető. Több készülékgyártó is van: Samsung, HTC, LG, Nokia, de a designt nem módosíthatják. Jelenleg a 8-as verziónál tart. Támogatja a multitouch 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, Silverlight é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.
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áltatá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 piactereken juthatunk hozzá [18, 19, 20], a bőség zavara adott az ingyenes és fizetős alkalmazások között.
KORLÁTOK A szoftverfejlesztés lehetőségeit mindig behatárolja az operációs rendszer és a hardver. Asztali vagy webes alkalmazások fejlesztéséhez képest mobil platform esetén jelentősen szűkebb a keresztmetszet. Gyengébb, korlátozott 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 grafikus 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 alkalmazá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.
ANDROID Az Android egy Linux kernelre épülő operációs rendszer, 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ó. Jelenleg az Android alkalmazások az összes letöltés 50%-át adják a mobil alkalmazások piacán (3. ábra) [22]. A platformról és a fejlesztésről bővebben: [23].
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 órarendhez, vizsgához, fogadóórához kötődő adatokat megjeleníteni a hallgatók számára. A tanulmányi rendszerhez fejlesztett RESTful Windows 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 adatforgalom 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
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:
25
Journal of Applied Multimedia 1./VIII./2013 HU eszközök 70%-a Android, 20%-a iOS, 10%-a egyéb platformra épül. Így az alkalmazott eszközök az alábbiak szerint alakulnak: 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 Windows 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 továbbfejlesztés egyik iránya az iPhone platform, amelyet Zentai Norbert Zsolt fog elkészíteni.
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 továbbiakban listákkal találkozunk, melyek további navigá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 felhasználásra, így a napok között lehet lapozgatni. Az alkalmazás indulásakor ellenőrzi, hogy van-e beállí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 csvt, 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):
FEJLESZTÉS ANDROID PLATFORMON 5. ábra Androidos forráskód-részlet (eseménykezelés és alkalmazáslogika)
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 Android verziók és különböző gyártók felületeinek különbsége miatt egyedi grafikus felület került kialakí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).
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
26
Journal of Applied Multimedia 1./VIII./2013 HU 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 folyamat 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):
9. ábra Windows Phoneos forráskód-részlet (eseménykezelés és alkalmazáslogika)
Az alkalmazás funkcionalitása teljes mértékben megegyezik 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):
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. 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 platform 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 alkalmazá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értelmű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élyesen/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.
8. ábra Windows Phoneos forráskód-részlet (xaml, felület)
Amennyiben valamely WPF vagy Silverlight alkalmazá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-ViewViewModel-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 alkalmazá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 (funkcionalitásban ugyanaz) [32] (8. ábra). Néhány forráskód-részlet (9. ábra):
HIVATKOZÁSOK [1] [2] [3] [4]
27
Mobile phone: http://en.wikipedia.org/wiki/Mobile_phone#Histor y Mobile Phone Generations: http://www.funsms.net/mobile_phone_generations. htm Elindult a 4G Magyarországon: http://nol.hu/gazdasag/elindult_a_4g_magyarorsza gon 4G/LTE: http://www.tmobile.hu/lakossagi/mobil_szelessav/hasznos/4G
Journal of Applied Multimedia 1./VIII./2013 HU [5] [6] [7] [8] [9] [10] [11]
[12] [13] [14] [15] [16]
[17]
[18] [19] [20]
Types of Mobile Phones: http://www.ehow.com/facts_4914968_typesmobile-phones.html Pilot 1000 Retrospective: http://www.palminfocenter.com/news/8493/pilot1000-retrospective The History of Microsoft Windows CE: http://www.hpcfactor.com/support/windowsce/wce 1.asp Symbian: http://hu.wikipedia.org/wiki/Symbian Android (operating system): http://en.wikipedia.org/wiki/Android_(operating_s ystem) Android (operating system): http://en.wikipedia.org/wiki/Android_(operating_s ystem)#Features Apple – Press Info – Apple Reinvents the Phone with iPhone: http://www.apple.com/pr/library/2007/01/09Apple -Reinvents-the-Phone-with-iPhone.html Apple – iPhone 4S – See all the amazing new things iPhone can do: http://www.apple.com/iphone/features/ Windows Phone Update History: http://www.microsoft.com/windowsphone/enus/howto/wp7/basics/update-history.aspx Mobile phone penetration now at 85% worldwide: http://www.ameinfo.com/291448.html Global Smartphone Penetration: http://www.asymco.com/2011/12/13/globalsmartphone-penetration-below-10 Windows Phone to beat Android: http://upload.wikimedia.org/wikipedia/commons/t humb/a/ae/World-Wide-Smartphone-MarketShare.png/800px-World-Wide-SmartphoneMarket-Share.png 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 Google Play Store: play.google.com/store Marketplace: wwww.windowsphone.com/marketplace App Store: http://www.apple.com/iphone/fromthe-app-store
[21]
[22]
[23] [24] [25] [26] [27]
[28] [29]
[30] [31]
[32]
28
Android activates 1 million devices per day, 400 million exist: http://androinica.com/2012/06/android-activates-1million-devices-per-day-400-million-exist-4x-asmany-as-a-year-ago Android alkalmazások letöltése világszerte (2012. április): http://www.knowyourmobile.com/siteimage/scale/ 800/600/315613.png Android 4.1 APIs | Android Developers: http://developer.android.com/about/versions/andro id-4.1.html Windows Phone: http://en.wikipedia.org/wiki/Windows_Phone#Feat ures Eclipse Downloads: http://www.eclipse.org/downloads ADT Plugin | Android Developers: http://developer.android.com/tools/sdk/eclipseadt.html Android UI Patterns: Implementating Dashboard and Action Bar: http://www.androiduipatterns.com/2011/01/imple menting-dashboard-and-action-bar.html ViewPager | Android Developers: http://developer.android.com/reference/android/su pport/v4/view/ViewPager.html GDF mobilinfo alkalmazás a Google Play Storeban: https://play.google.com/store/apps/details?id=info. kallaim.gdfinfo&feature=search_result#?t=W251b GwsMSwxLDEsImluZm8ua2FsbGFpbS5nZGZpb mZvIl0. Download WP SDK 7.1: http://www.microsoft.com/enus/download/details.aspx?id=27570 THE MODEL-VIEW-VIEWMODEL (MVVM) DESIGN PATTERN FOR WPF: http://msdn.microsoft.com/enus/magazine/dd419663.aspx Windows Phone 7 – Part #5: Panorama and Pivot controls: http://www.silverlightshow.net/items/WindowsPhone-7-Part-5-Panorama-and-Pivot-controls.aspx