Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Általános Informatikai Intézeti Tanszék
Felhő alapú szinkronizációra épülő pénzügyi nyilvántartó rendszer Szakdolgozat
Váradi Melinda EQ0EBV 3433 Nyékládháza, Vitéz u. 2.
Tartalomjegyzék Bevezetés ............................................................................................................................... 1 1. A felhő alapú számítástechnika ......................................................................................... 2 1.1. Az elterjedtebb felhőszolgáltatók ............................................................................... 5 1.1.1. Microsoft Corporation ......................................................................................... 7 1.1.2. Apple Incorporation............................................................................................. 9 1.1.3. Google Incorporation......................................................................................... 11 1.2. A Google Drive szinkronizációs lehetőségei............................................................ 13 2. Mobil operációs rendszerek............................................................................................. 15 2.1. Történeti áttekintés ................................................................................................... 15 2.2. Az első mobil operációs rendszerek ......................................................................... 16 2.3. iOS ............................................................................................................................ 17 2.3.1. Verziók .............................................................................................................. 18 2.3.2. Alkalmazásfejlesztés és publikálási lehetőségek............................................... 20 2.4. Android..................................................................................................................... 21 2.4.1. Verziók .............................................................................................................. 22 2.4.2. Alkalmazásfejlesztés és publikálási lehetőségek............................................... 27 2.5. Windows Phone........................................................................................................ 28 2.5.1. Verziók .............................................................................................................. 29 2.5.2. Alkalmazásfejlesztés és publikálási lehetőségek............................................... 30 3. Az Android platform részletes ismertetése...................................................................... 32 3.1. A platform felépítése ................................................................................................ 33 3.2. Az alkalmazások általános jellemzői........................................................................ 34 3.3. Alkalmazás-komponensek........................................................................................ 35 4. A fejlesztés lépései .......................................................................................................... 37 4.1. Fő szempontok a fejlesztésben ................................................................................. 37 4.2. A fejlesztőkörnyezet előkészítése............................................................................. 39 4.2.1. Az Eclipse használata ........................................................................................ 39 4.2.2. Android SDK telepítése..................................................................................... 40 4.2.3. VDM beállítása, tesztelés .................................................................................. 41 5. Egy felhőszolgáltatást használó alkalmazás elkészítése.................................................. 43 5.1. Tervezés.................................................................................................................... 43 5.1.1. Hasonló alkalmazások és hiányosságaik felkutatása......................................... 43
I
5.1.2. A tervezett költségvetési alkalmazás bemutatása.............................................. 44 5.2. Implementáció .......................................................................................................... 44 5.2.1. A felhasználói felület és az action bar előkészítése........................................... 45 5.2.2. Adatbázis létrehozása ........................................................................................ 46 5.2.3. Az alkalmazás alapvető funkcióinak implementálása ....................................... 47 5.2.4. Kapcsolódás a Google Drive-hoz, adatbázis mentése a felhőbe ....................... 52 5.2.5. Szinkronizáció ................................................................................................... 56 5.3. A futtatható apk állomány létrehozása ..................................................................... 57 5.4. Tesztelés ................................................................................................................... 58 5.4.1. Offline funkciók tesztelése ................................................................................ 59 5.4.2. Szinkronizációs szolgáltatás tesztelése.............................................................. 60 5.5. Továbbfejlesztési lehetőségek .................................................................................. 62 Összegzés ............................................................................................................................ 64 Summary.............................................................................................................................. 65 Irodalomjegyzék .................................................................................................................. 66
II
Bevezetés
Bevezetés Alig tíz évvel ezelőtt, az első érintőképernyővel ellátott okostelefonok megjelenésekor még szinte elképzelhetetlennek tűnt, hogy ezek az eszközök hamarosan számos szempontból helyettesíthetik a személyi számítógépeket. Mára azonban a készülékeken elérhető változatos alkalmazásoknak és funkcióknak, valamint a fejlett vezetéknélküli megoldásoknak köszönhetően a mobiltelefonok olyannyira meghatározó szerepet töltenek be az informatikai eszközpalettán, hogy egyes esetekben, mint például egy online banki felületre történő bejelentkezés során, a képlépcsős azonosítás miatt feltétlenül szükség van rájuk. Napjaink egyik legnépszerűbb mobil operációs rendszere az Android, melyre jelenleg már több mint 1 millió applikáció érhető el a felhasználók számára, beleértve a szórakoztató, kommunikációs, közösségi, oktató, pénzügyi és információs szoftvereket, valamint az irodai megoldásokat kínáló alkalmazásokat is. Ennek ellenére még vannak hiányosságok a kínálatban, többek között a Google Play áruházban egyelőre csak elvétve található olyan magyar nyelvű, személyi költségvetést megvalósító applikáció, amely lehetőséget biztosít felhőn keresztül történő szinkronizációra. Mivel a felhasználói vélemények alapján azonban igen nagy igény mutatkozna rá, dolgozatom témájául egy olyan alkalmazás elkészítését választottam, amely pótolja ezt a hiányt. Munkám célja, hogy bemutassa az elérhető felhőszolgáltatásokat és azok szolgáltatóit, összehasonlítsa a napjainkban használatos mobil operációs rendszereket, továbbá azok fejlődését és fejlesztési lehetőségeit, végül fejlesztői szemszögből ismertesse az Android platform szerkezetét, az alkalmazások felépítését, a fejlesztőeszközöket, valamint a fejlesztés menetét. Az információkat felhasználva végső cél egy szinkronizációs lehetőséget is biztosító, személyi költségvetési alkalmazás elkészítése.
1
1. A felhő alapú számítástechnika
1. A felhő alapú számítástechnika [1] A felhő mára az informatika egyik legfontosabb és legnépszerűbb szolgáltatásává nőtte ki magát. Egy olyan folyamat, mely során a számítástechnikai szolgáltatásokat elsősorban gazdaságosságuk, rugalmasságuk és egyszerűségük miatt az interneten keresztül vesszük igénybe. Adataink egyre nagyobb méretűek, legyen szó akár családi fotókról és videókról, akár egy cég dokumentumairól és adatbázisáról, melyek jelentős tárterületet igényelnek. Emellett napjainkra szükségessé vált, hogy ezek az adatok bármikor és bárhonnan hozzáférhetőek legyenek. Ezen problémákra kínál hatékony megoldást a felhő, amely sokoldalúsága és változatos szolgáltatásai révén egyaránt kielégíti az átlagfelhasználók és a nagyvállalatok igényeit is. A lehetőségeknek csak az anyagi források szabnak határt. A felhőszolgáltatás számos előnnyel rendelkezik egy hagyományos vállalati szerverrel, valamint az otthoni adattárolással szemben. Elegendő csak a hardver- és energiaköltségekre gondolni, hiszen nincs szükség különféle eszközök vásárlására, azok hűtésének biztosítására, valamint az ezzel járó magasabb villanyszámla sem terheli a fogyasztót. A felhőszolgáltatók nagytételben vásárolnak számítástechnikai eszközöket, és nagybani vásárlónak számítanak a villamosenergia-fogyasztás szempontjából is, így kedvezőbb ár biztosított számukra. Emellett az ismétlődő feladatok automatizálásának köszönhetően a szerverpark üzemeltetési költségei is alacsonyabbak. Ezen terheket a bérlők közösen viselik, így az egyes fogyasztókra eső összeg jóval alacsonyabb, mintha saját szervert üzemeltetnének. Szintén nagy előnye a felhőszolgáltatásnak a skálázhatóság. Az időszakos terhelés, az esetleges gyors terhelésnövekedés vagy –csökkenés, valamint a nem várt események miatt egy vállalat esetén nehéz előre megtervezni a zavartalan működéshez szükséges, ideális eszközparkot. A felhő rugalmassága azonban biztosítja, hogy rövid időn belül annyi erőforrás álljon rendelkezésre, amennyire éppen szükség van. Mindezek mellett méretgazdaságossága miatt könnyebb biztonságos és megbízható rendszert kialakítani, melynek költsége ugyan magas, azonban ez az összeg is megoszlik az előfizetők között. Többféle felhőszolgáltatást különböztethetünk meg, melyek mindegyikéről elmondható, hogy nem kötődik egy dedikált hardverhez, hanem a szolgáltató eszközein elosztva üzemel, a felhasználó elől elrejtve a részleteket. A szolgáltatásokat az előfizetők annak típusától függően az interneten vagy a helyi hálózaton keresztül érhetik el [2].
2
1. A felhő alapú számítástechnika Privát felhő A privát felhő kizárólagos használatot biztosít egy vállalat számára, olyan informatikai környezet, melyet csak az adott cég szervezeti egységei használnak. Tulajdonosa és kezelője lehet maga a vállalkozás, egy megbízott partner vagy ezek kombinációja. Az adatközpont a világon bárhol lehet, de akár a cég saját telephelyén is állhat. Nyilvános felhő A nyilvános felhő közös használaton alapuló, bárki számára hozzáférhető informatikai környezet. Tulajdonosa és üzemeltetője lehet egy vállalat, egy egyetem, egy kormányzati szerv, vagy ezek kombinációja. Adatközpontja a szolgáltató telephelyén található. Hibrid felhő A hibrid felhő a privát és nyilvános felhőszolgáltatások keveréke, melynek összetevői egymástól függetlenek, de a köztük lévő kapcsolat révén lehetőség van az adatok és alkalmazások mozgatására és kiterjesztésére. Használható egyrészt az adatok szegmentálására, hiszen egyes országokban korlátozott a felhőben tárolható adatok köre, így lehetőség van az érzékeny adatokat a privát, míg minden más adatot a nyilvános felhőben tárolni. Másrészről kapacitásnövelés céljára is alkalmas, hiszen ha a privát felhő terhelése meghalad egy adott szintet, a nyilvános felhőben létrejövő erőforrások ki tudják szolgálni a további kéréseket. A felhő szolgáltatásai három nagy csoportba sorolhatók attól függően, hogy az informatikai rendszer összetevőinek mekkora részét veszi át a szolgáltató az ügyféltől. Infrastruktúra-szolgáltatás (IaaS) A felhő legalsó szintje az infrastruktúra-szolgáltatás (Infrastructure as a Service), amely igénybe vétele esetén a szolgáltató biztosítja az informatikai infrastruktúra egy részét, vállalja többek között a hálózat kiépítését, adattároló központ kialakítását, szerverek vásárlását és karbantartását, virtuális környezet kiépítését és üzemeltetését, valamint áramkimaradás esetén is védett energiaellátás biztosítását. Az előfizető gondoskodik az operációs rendszer és egyéb szoftverek karbantartásáról, az adatok biztonsági mentéséről és a saját alkalmazások kezeléséről. Az infrastruktúra-szolgáltatás ideális megoldást kínál az adatközpont kapacitásának ideiglenes vagy tartós növelésére, üzleti alkalmazások kihelyezésére, valamint adattárolásra.
3
1. A felhő alapú számítástechnika Platformszolgáltatás (PaaS) A felhő középső szintje a platformszolgáltatás (Platform as a Service), mely során a szolgáltató egy operációs rendszerrel ellátott platformot biztosít saját infrastruktúrája fölött, amelyen alkalmazások telepíthetők és üzemeltethetők. Az infrastruktúraszolgáltatásnál felsoroltakon túl a szolgáltató vállalja a rendszer karbantartását, a szükséges javítócsomagok telepítését, valamint a futtatókörnyezet felügyeletét is. A felhasználó csak a saját alkalmazások kezeléséről és az adatok biztonsági mentéséről gondoskodik. A platformszolgáltatás használható új felhőszolgáltatások kifejlesztésére, hiszen a saját alkalmazások közzétehetők a felhőben, széles körű elérhetőséget és rugalmasságot biztosítva ezzel. Meglévő alkalmazások is kiegészíthetők további összetevőkkel, egy vállalati adatközpont például összekapcsolható egy a felhőben futó webes szolgáltatással. A platformszolgáltatás igénybe vétele esetén adatbázisok is tárolhatók a felhőben, így a szinkronizáció könnyedén megoldható a különböző adatbázisok között. Szoftverszolgáltatás (SaaS) A felhő legfelső szintje a szoftverszolgáltatás (Software as a Service), mely esetben az előfizetőnek semmilyen üzemeltetési teendője nincs, az alkalmazások egyszerűen közzétehetők és használhatók. A legtöbb online szolgáltatás ezt a modellt használja, ilyenek például az internetes keresők (Bing, Google, Yahoo), a levelező és kommunikációs szolgáltatások (Gmail, Outlook, Skype), a médiamegosztó weboldalak (Youtube, Vimeo), a közösségi hálózatok (Facebook, Twitter), valamint a vállalati online szolgáltatások (Office 365). A felhő szolgáltatásmodelljeinek felépítését az 1. ábra mutatja be:
1. ábra – A felhő szolgáltatásmodelljei
4
1. A felhő alapú számítástechnika Az interneten további, egyéb szolgáltatásmodellek is fellelhetők, ezek azonban jellemzően a három nagy modell kombináció. Ilyenek többek között a Storage as a Service (STaas), a Data as a Service (Daas), a Database as a Service (DBaaS), a Security as a Service (SECaaS) és a Test Environment as a Service (TEaaS).
1.1. Az elterjedtebb felhőszolgáltatók A felhőszolgáltatás az elmúlt évtized egyik legfőbb informatikai újítása, mely előnyeinek köszönhetően rendkívül gyors ütemben terjedt el, és igen hamar népszerűvé vált a felhasználók körében. Egymás után jelentek meg a különböző felhőplatformok, melyek között egyaránt megtalálhatók az átlagos igényeket kielégítő, valamint a vállalati célú szolgáltatások is. Az egyik legrégebbi webes tárhely-szolgáltatás a Box, amelyet 2005-ben hoztak létre, és ma már több mint 34 millióan használják világszerte. A regisztrációt követően 10 GB ingyenes tárhelyet biztosít, mely esetén a feltölthető maximális fájlméret 250 MB. A tárhely mérete díjfizetés ellenében magánszemélyek részére 100 GB-ra növelhető, ekkor a legnagyobb feltölthető fájlméret 2 GB. Üzleti előfizetők esetén a tárhely korlátlan méretig bővíthető, a feltölthető fájlméret ekkor 5 GB lehet. Az ingyenes tárhely 1 fiókkal használható, a 100 GB-os előfizetés 3-10 felhasználó számára elérhető, míg a korlátlan, üzleti szolgáltatás esetén minimum 3 felhasználó szükséges. Hiányossága, hogy automatikus mentésre nincs lehetőség. A kapcsolódó alkalmazások Windows, Android, iOS, Blackberry és OS X platformokra érhetők el. [3] 2007-ben megjelent a Microsoft felhőszolgáltatása, a SkyDrive, melynek nevét később OneDrive-ra változtatták. Az ingyenes tárhely 15 GB, mely külön díjakért 100 GBos, 200 GB-os vagy 1 TB-os méretre bővíthető. A feltölthető maximális fájlméret mindegyik csomag esetén 10 GB. A felhasználók száma 15 – 200 GB-os csomagok esetén 1, míg az 1 TB-os családi előfizetés esetén maximum 5 lehet. Elsősorban a Windows felhasználóit kívánta kiszolgálni (asztali és mobil verzió), de Android, iOS és OS X rendszerekre is elérhető. [4] A cég másik népszerű felhőszolgáltatása a Microsoft Azure, mely főként a vállalati szféra számára készült és számos üzleti szolgáltatással rendelkezik. 2008-ban indult el a Dropbox felhőszolgáltatás, mely mára több mint 300 millió felhasználóval rendelkezik, a platformot használó alkalmazások száma pedig meghaladja a 300 000-et. A 2 GB ingyenes tárhely magánszemélyek esetében 1 TB-ig, míg vállalati ügyfelek részére végtelen kapacitásig növelhető. A feltölthető fájlméret webes alkalmazás használatával 300 MB, kliens applikáció segítségével viszont korlátlan. A felhasználók
5
1. A felhő alapú számítástechnika száma magánszemélyek esetén csak 1 lehet, üzleti előfizetés esetén azonban nincs korlátozva. A Dropbox által kiadott fejlesztői csomag révén a különböző programozási nyelveken megírt alkalmazásokhoz egyszerűen hozzáadható a teljes körű Dropboxtámogatás. A tárhely kezelő alkalmazások Windows, Windows Phone, Android, iOS, Blackberry, OS X és Linux operációs rendszerekre telepíthetők. [5] Szintén 2008 óta van jelen a SugarSync felhőszolgáltatás, amely jelenleg már több millió felhasználóval rendelkezik világszerte. A regisztrációt követően 5 GB ingyenes tárterület áll rendelkezésre, mely 90 napig használható. Díjfizetés ellenében személyes használatra 100, 250 vagy 500 GB-os csomagok választhatók, míg az üzleti felhasználók számára 1 TB-os tárhely biztosított. Magánszemélyek esetén maximum 1 felhasználó engedélyezett, az üzleti csomagot pedig legfeljebb 9 fő használhatja. A szolgáltatás a Windows, Android, iOS és OS X operációs rendszereket támogatja. [6] A Bitcasa felhőszolgáltatás 2011 óta működik, használóinak száma mára elérte a 100 000-et. Az ingyenesen használható tárterület mérete 5 GB, mely 1 vagy 10 TB-ig növelhető, a feltölthető fájlméret pedig nincs korlátozva. Az engedélyezett felhasználók száma ingyenes tárhely esetén 3, míg fizetett tárhely esetén maximum 5 lehet. A szükséges alkalmazások Windows, Android, iOS, OS X és Linux rendszerekre telepíthetők. [7] Az Apple által fejlesztett iCloud felhőszolgáltatás szintén 2011-ben jelent meg. Az ingyenes tárhely mérete 5 GB, mely országonként eltérő mértékű díjfizetés ellenében 20, 200 vagy 500 GB-ra, illetve 1 TB-ra bővíthető. A feltölthető legnagyobb fájlméret mindegyik csomag esetén 15 GB lehet, és mindössze 1 felhasználó férhet hozzá a fiókhoz. [8] A szolgáltatás Windows, iOS, OS X és Apple TV operációs rendszerek esetén érhető el. [9] A Google 2012-ben indította el a Google Drive-ot, mely mára közel 250 millió felhasználót szolgál ki. A 15 GB ingyenes tárhely 100 GB-os, valamint 1, 10, 20 vagy 30 TB-os méretig növelhető, mely területen a Drive dokumentumain túl a Gmail üzenetek és csatolmányok, valamint a Google+ portálra feltöltött 2048x2048 pixelnél nagyobb felbontású fotók is helyet foglalnak. A feltölthető maximális fájlméret 5 GB, és fiókonként 1 felhasználó lehetséges. Az alkalmazás Windows, Android, iOS és OS X operációs rendszerekre telepíthető. [10] A különböző felhőszolgáltatók a tárhely biztosításán felül számos egyéb lehetőséget is nyújtanak a felhasználók számára. A magánszemélyek részére, valamint irodai célokra biztosított szolgáltatások sokszínűségét tekintve a három IT-óriás, a Microsoft, az Apple és a Google felhőszolgáltatása kiemelkedő jelentőségű. 6
1. A felhő alapú számítástechnika
1.1.1. Microsoft Corporation A redmondi székhelyű Microsoft Corporation a világ egyik legnagyobb szoftvervállalata, mely a világ több mint 150 országában van jelen. Bill Gates és Paul Allen 1975-ben alapította a kezdetben fordítóprogramok fejlesztésével és árusításával foglalkozó céget. Az 1980-as évek elején az IBM megrendelésére elkészítették az MSDOS operációs rendszert, melyet egyéb számítógépgyártók is átvettek. Ezzel a Microsoft megalapozta vezető helyét az operációs rendszerek piacán. Később megalkották a Windows operációs rendszert, mely a személyi számítógépek mellett ma már a különböző mobileszközökön is jelen van, emellett irodai és kommunikációs szoftvereket, valamint fordítóprogramokat is készítettek. [11] Felhőszolgáltatásukat 2007-ben indították el SkyDrive néven, melyet 2014-ben átneveztek
OneDrive-ra.
Az
asztali
számítógépre,
táblagépre
és
okostelefonra
megvalósított csomag ma már XBOX játékkonzolokról is elérhető. A Hotmail, Xbox Live, Messenger és Skype szolgáltatások elérését biztosító Windows Live fiók mellé automatikusan jár a 15 GB-os ingyenes tárhely, ebben az esetben nem szükséges a OneDrive-ra
külön
regisztrálni.
Ennek
hiányában
a
regisztráció,
a
https://onedrive.live.com/ weboldalon lehetséges, mely során a biztonságra nagyon ügyelő cég lépésenként magyarázza el a megfelelő jelszó kiválasztásának fontosságát, valamint az opcionális kétlépcsős azonosítás beállítását és használatát. A OneDrive asztali és mobilalkalmazás telepítéséhez, valamint a OneDrive weboldalának optimális működéséhez szükséges minimális rendszerkövetelmények a következőek [12]: OneDrive asztali alkalmazás: Operációs rendszer: Windows 8, Windows 7, 2-es szerviz csomaggal ellátott Windows Vista, Windows Server 2008 R2, 2-es szerviz csomaggal ellátott Windows Server 2008, OS X Lion, OS X Mountain Lion vagy OS X Mavericks. A Windows XP és a Linux nem támogatott, a Windows 8.1 és Windows 10 pedig már beépítve tartalmazza az alkalmazást. Processzor: Minimum 1,6 GHz, vagy Intel-alapú Mac számítógép Memória: Minimum 1 GB RAM Felbontás: Minimum 1024x576 Internetkapcsolat: Szélessávú internet-hozzáférés ajánlott
7
1. A felhő alapú számítástechnika OneDrive mobil applikáció: Android: 2.3 vagy újabb (a kamera biztonsági mentéséhez és egyéb funkciókhoz minimum Android 4.0 szükséges) iOS: 6.0 vagy újabb Windows Phone: 7.5 vagy újabb Internetkapcsolat: Szélessávú internet-hozzáférés ajánlott OneDrive weboldal: Internet Explorer, Google Chrome, Mozilla Firefox vagy Safari böngésző legújabb verziója ajánlott A OneDrive webes felületére történő bejelentkezést követően a tárhelyre feltöltött dokumentumok és képek jelennek meg, melyek megtekinthetők, törölhetők, vagy további fájlok tölthetők fel.
A főoldalon további tárhely vásárlására, valamint OneDrive
alkalmazások letöltésére is lehetőség nyílik. A tárhely kezelésén túl számos hasznos egyéb szolgáltatást is biztosít az oldal. A webes Office csomag segítségével lehetőség nyílik különböző dokumentumok online szerkesztésére. Az alkalmazások az Office 2007 stílusát követik, az online felhasználói felület mindegyik program esetén pontos mása az asztali verziónak. Az online csomagban elérhető a Word Online szövegszerkesztő, az Excel Online táblázatkezelő, a PowerPoint Online prezentáció készítő, valamint a OneNote Online jegyzet-szolgáltatás. A Windows Live e-mail fiók az Outlook.com ikonra kattintva érhető el. Az Office Online segítségével további Office szolgáltatások vásárolhatók, ezek az Office 365 otthoni, egyszemélyes és egyetemista verziója, az Office 2013 otthoni és diák-, valamint otthoni és kisvállalati verziója, továbbá az Office Professional 2013. A Személyek menüpont a kapcsolatok kezelésére szolgál. A Windows Live fiók címjegyzékének kezelése mellett lehetőség van a névjegyek importálására Gmail és Yahoo! fiókokból, valamint a Facebook, Twitter és LinkedIn kapcsolatok is szinkronizálhatók a Windows Live fiókkal. A Naptár alkalmazás segítségével eseményeket, feladatokat rögzíthetünk, melyekhez értesítés is beállítható. A Naptár tartalma igény szerint fájlba menthető, illetve megosztható más személyekkel is. A Skype ikonra kattintva közvetlenül a OneDrive-ból kezdeményezhetünk beszélgetést partnereinkkel, ehhez nem szükséges külön elindítani a Skype alkalmazást. A felhőbe feltöltött dokumentumokat a Microsoft nem használja fel, azonban azok tartalmát szabályozza és ellenőrzi. Amennyiben a tartalom ellentmond a magatartási 8
1. A felhő alapú számítástechnika kódexben foglaltaknak, a Microsoft fenntartja a jogot a tartalom törlésére vagy akár a teljes fiók letiltására. [13] A Microsoft másik felhőszolgáltatása a Microsoft Azure, mely elsősorban az üzleti szféra igényeinek kielégítésére jött létre. A hivatalos weboldal szerint „A modern cégek felhője” szlogennel ellátott szolgáltatást a legfrissebb adatok alapján már a világ vállalatainak 57%-a használja. [14] Az Azure lefedi a teljes szolgáltatásmodellt, hiszen infrastruktúra-, platform- és szoftverszolgáltatást is nyújt, emellett igen meggyőző, 99,95%-os elérhetőséget kínál. Virtuális gépeket, merevlemezeket és hálózati eszközöket biztosít az előfizető számára. Relációs adatbázisokat (Windows Azure SQL Database) képes kezelni, valamint támogatja a fájl- vagy adatfolyam (BLOB) és a táblázatos adatok (NoSQL) használatát is. Számos programozási nyelven íródott alkalmazást képes futtatni, többféle keretrendszert és fejlesztőeszközt támogat, teljesen automatizált és szabadon skálázható, így csak azon erőforrások használatáért kell fizetni, amelyeket az előfizető ténylegesen igénybe vesz. Nagy előnye, hogy nem előre összeállított csomagokból kell választani, a szolgáltatások az egyedi igények alapján összeállíthatók, és a díjfizetés is ennek megfelelően történik. [15]
1.1.2. Apple Incorporation Az Apple Incorporation kezdetben főként hardvergyártással, ma már azonban szoftverfejlesztéssel is foglalkozó vállalat, mely stílusos, egyszerűen kezelhető és stabil gépeinek és eszközeinek köszönhetően a világ egyik legelismertebb márkájává vált. A cupertinoi székhelyű céget Steve Wozniak, Steve Jobs és Ronald Wayne 1976-ban alapította, ám Wayne néhány nap után kilépett. Egy évvel később, 1977-ben bevételük már meghaladta az 1 millió dollárt. 1984-ben került piacra az Apple Macintosh személyi számítógép, ami világsiker lett. 1998-ban bemutatkozott az iMac, az Apple egybeépített asztali gépe, majd 2001-ben piacra került az első iPod hordozható zenelejátszó készülék. 2007-ben megjelent az iPhone, melynek köszönhetően az Apple a mobilpiacon is az élvonalba került, végül 2010-ben bemutatták az első iPad táblagépet is. [16] Az Apple felhőszolgáltatása, az iCloud 2011-ben indult el, és 2012-re már több mint 100 millió felhasználóval rendelkezett. Elsősorban OS X és iOS felhasználóknak készült, de Windows operációs rendszerrel is igénybe vehető. A regisztráció a https://www.icloud.com/ weboldalon lehetséges, ezt követően egy elsődlegesen megadott e-mail cím szolgál majd Apple ID azonosítóként. A jelszóra vonatkozóan biztonsági
9
1. A felhő alapú számítástechnika okokból szigorú megkötések vannak, emellett az Apple ajánlja a kétlépcsős azonosítás használatát is. A minimális rendszerkövetelmények az iCloud felhőszolgáltatás használatához: iOS 5 vagy újabb, OS X Lion 10.7.2 vagy újabb, Windows 7 vagy újabb operációs rendszer. A különböző szolgáltatások használata azonban eltérő követelményekhez kötött, ennek részleteit az Apple saját weboldalán teszi közzé. Az ajánlott rendszerkövetelmények a zökkenőmentes használathoz következőek [17]: iPhone, iPad és iPod touch készülékek esetén: Operációs rendszer: iOS 8.3 További szoftverek: iWork for iOS csomag (Pages 2.5 vagy újabb, Numbers 2.5 vagy újabb és Keynote 2.5 vagy újabb) OS X operációs rendszert használó számítógépek esetén: Operációs rendszer: OS X Yosemite v10.10.3 További szoftverek: iWork for Mac csomag (Pages 5.5 vagy újabb, Numbers 3.5 vagy újabb és Keynote 6.5 vagy újabb), iTunes 12 vagy újabb, Safari 8 vagy újabb, Mozilla Firefox 22 vagy újabb, Google Chrome 28 vagy újabb Windows operációs rendszert használó számítógépek esetén: Operációs rendszer: Windows 7 vagy újabb További szoftverek: iCloud for Windows 4.0.2, iTunes 12 vagy újabb, Outlook 2007 vagy újabb, Internet Explorer 10 vagy újabb, Mozilla Firefox 22 vagy újabb, Google Chrome 28 vagy újabb Apple TV esetén: Operációs rendszer: Apple TV 7.0 vagy újabb Bejelentkezést követően a Pages online szövegszerkesztő, a Numbers online táblázatkezelő, a Keynote online prezentációkészítő, valamint a Beállítások közül választhatunk. A Beállítások menüben megtekinthető a tárhely mérete és a szabad terület, valamint a saját iOS vagy OS X rendszert használó eszközök listája. A felhő további szolgáltatásai közé tartozik a képek, videók és dokumentumok feltöltése és megosztása. Lehetőség van a Naptár, Emlékeztető és a Jegyzet szinkronizálására. Az iTunes és iBooks applikációkon keresztül vásárolt zenék és könyvek a felhőnek köszönhetően bármely eszközről elérhetőek. Az iOS rendszerű eszközökről (iPhone, iPad és iPod Touch) biztonsági másolat készíthető, melyet a felhasználó számítógépre menthet, illetve onnan a készülékre vissza is tölthet.
10
1. A felhő alapú számítástechnika Az „iPhone keresése” funkció egy térképen bejelöli, hogy hol található a telefon, emellett üzenet és hang is küldhető a készülékre. Lehetőség van a telefon zárolására, mely csak az Apple ID-val történő bejelentkezéssel oldható fel, vagy akár a készülék teljes tartalma is törölhető. Az iCloud „kulcskarika” szolgáltatásával egy helyen tárolható a felhasználó összes jelszava és bankkártya adata (kivéve CVC/CVC2 kód), melyek titkosítva kerülnek mentésre, így azokhoz maga az Apple sem férhet hozzá. A szolgáltatás kényelmi funkciókat lát el, az elmentett adatok a megfelelő oldalakon automatikusan kitöltésre kerülnek. Az Apple nem használja fel a feltöltött adatokat, azokat nem szabályozza és nem ellenőrzi, tartalmukért semmilyen felelősséget nem vállal. [18]
1.1.3. Google Incorporation A Google Incorporationt Larry Page és Sergey Brin alapította 1998-ban. A vállalat nevéhez fűződik a Google keresőmotor kifejlesztése, mely a weblapok közötti kapcsolatok matematikai analízisén alapul. A cég székhelye ma a Kalifornia állambeli Mountain Viewban található, a Googleplex nevű komplexumban, és világszerte közel 30 000 alkalmazottja van. 2005-ben a Google felvásárolta az Android Incorporationt, majd 2008ban bemutatta az Android operációs rendszert, amivel megalapozta vezető helyét a mobilpiacon is. 2004-ben jelent meg a Google Earth virtuális földgömb, 2006 óta pedig a YouTube videó-megosztó portál is a cég tulajdonába tartozik. [19] Az Android megjelenését követően a Google számos mobilalkalmazást is kifejlesztett, maga az Android pedig mára a világ legnépszerűbb és legelterjedtebb mobil operációs rendszere lett. A Google Drive felhőszolgáltatás 2012-ben jelent meg, és mára közel 250 000 aktív felhasználóval rendelkezik. Meglévő Gmail fiók mellé automatikusan biztosított a 15 GBos ingyenes tárhely, ekkor nem szükséges a Google Drive-ra külön regisztrálni. Amennyiben a felhasználó nem rendelkezik Gmail fiókkal, a regisztrációra, a http://www.google.com/intl/hu_HU/drive/ weboldalon van lehetőség. Ajánlott a kétlépcsős azonosítás használata, így adatainkat nagyobb biztonságban tudhatjuk. Az asztali számítógépre, táblagépre és okostelefonra telepíthető alkalmazás a következő operációs rendszereken és böngészőkben futtatható [20]: Google Drive asztali alkalmazás: Windows XP vagy újabb, OS X Lion vagy újabb
11
1. A felhő alapú számítástechnika Google Drive mobil applikáció: Android 4.0 vagy újabb, valamint iOS 7.0 vagy újabb Google Drive weboldal: Google Chrome, Mozilla Firefox, Safari vagy Internet Explorer (a böngészőkből a legújabb verzió ajánlott) A Google Drive webes felületére bejelentkezve a „Saját meghajtó”, azaz a rendelkezésre álló tárhely és az azon tárolt adatok jelennek meg. A foglalt területre vonatkozóan az oldal bal alsó sarkában kapunk információt, és itt van lehetőség további tárhely vásárlására is. Külön menüpontokban megtekinthetők a mások által velünk megosztott fájlok, a feltöltött és a mobilkészülékről automatikusan szinkronizált fotók, a legutóbbi dokumentumok, a csillagozott fájlok és mappák, valamint a törölt fájlok. A felületről lehetőség van egy gombnyomással elindítani a Google keresőt, a Google térképszolgáltatást a Google fordítót és a Youtube-ot, belépni a Google+ közösségi hálózatra, a Blogger portálra és a Gmail levelezőrendszerbe, elolvasni a híreket és megnézni a saját naptárunkat és szerkeszteni a felhőben tárolt dokumentumainkat. A Google Drive különböző irodai szolgáltatásokat biztosít, ezek a Dokumentumok online szövegszerkesztő, a Táblázatok online táblázatkezelő és a Diák online prezentációkészítő alkalmazás. Használatuk rendkívül egyszerű, a felhasználóbarát kezelőfelület és az Office csomagból ismerős funkciók megkönnyítik a dokumentumok szerkesztését. Az Űrlapok segítségével kérdőívek készítésére nyílik lehetőség, a Rajzok pedig diagramok és folyamatábrák létrehozására szolgál. A Google Keep jegyzetkészítő szolgáltatással a teendők felírása mellett listák, fotók, hangfelvételek is feltölthetők, még inkább személyre szabva ezzel az emlékeztetőket. A Naptár alkalmazás segítségével új eseményeket rögzíthetünk, valamint szinkronizálhatjuk annak tartalmát az Android vagy iOS rendszerű készülékeinken futó Naptár applikációval. A rendszer automatikusan hozzáadja a naptárhoz a járat- és asztalfoglalásokat az e-mailen érkező visszaigazolások alapján. Ez a funkció természetesen ki is kapcsolható. A
Google
Drive
Androidra
telepíthető
alkalmazásával
dokumentumok
szkennelhetők be és menthetők pdf-fájlként. Ezek megnyitása közvetlenül a felhőből, a Google Drive pdf-olvasójával lehetséges. A felsoroltakon túl a Google Drive vállalati felhasználásra is kínál megoldást Google Drive for Work csomagjával. Az üzleti csomag minimum 5 felhasználó esetén 12
1. A felhő alapú számítástechnika korlátlan tárhelyet biztosít, míg 5 fő alatti létszám esetén a tárhely mérete 1 TB. A szolgáltatás révén a vállalatok kezelhetik a felhasználókat és a megosztási beállításokat, fejlett ellenőrzési és jelentési funkciókat kapnak, és napi 24 órás segítségnyújtás áll rendelkezésükre telefonon, e-mailben és csevegésben. A csomag kifejezetten csapatoknak készült, az irodai alkalmazásokkal egyszerre többen is dolgozhatnak a dokumentumokon, sőt, a megjegyzéseknek köszönhetően lehetőség nyílik a dokumentumrészleteket közvetlenül az adott szakasz mellett, levélváltás nélkül megbeszélni. Az üzleti szolgáltatásoknak köszönhetően video- és audiokonferencia is lebonyolítható, valamint számos további hasznos beépített alkalmazás választható, beleértve az elektronikus aláírás készítésére alkalmas DocuSign vagy a projektkezeléshez ideális Smartsheets applikációkat. A Google Általános Szerződési Feltételeinek értelmében a felhőbe feltöltött tartalmak a felhasználó tulajdonában maradnak ugyan, azonban a Google jogosult azokat felhasználni, módosítani, reprodukálni, valamint azokból származékos műveket létrehozni. Ez a jog akkor sem vész el, ha a fiók időközben megszüntetésre kerül, azaz a felhőben tárolt információk még ebben az esetben sem törlődnek, azokhoz a Google korlátozások nélkül, bármikor, utólag is hozzáférhet. [21]
1.2. A Google Drive szinkronizációs lehetőségei A felhő egyik legfontosabb szolgáltatása az adatok szinkronizálásának lehetősége a különböző
készülékek
között.
Megjelenésének
köszönhetően
dokumentumainkat,
fényképeinket, videóinkat már nem szükséges külön-külön minden olyan eszközre felmásolni, amelyről el szeretnénk őket érni, azok a felhőbe történő feltöltés után bármikor, bárhonnan
rendelkezésre
állnak.
Az
online
szerkeszthetőség
előnye,
hogy
a
dokumentumokban történt változások szintén azonnal elérhetők bármely eszközről, függetlenül attól, hogy a módosítás mely készülékről történt. A
Google
Drive
lehetőséget
biztosít
a
fájlok
és
adatok
automatikus
szinkronizálására közvetlenül egy adott applikációból (kamera, naptár, stb.) vagy egy különálló, a megosztás céljából létrehozott mappából, amely funkció akár ki is kapcsolható. Manuális feltöltés esetén lehetőség van a dokumentumok Google Docs által kezelhető formátumra történő konvertálására, így azok online is szerkeszthetővé válnak. Ellenkező esetben a nem kompatibilis dokumentumok (pdf, Open Office, stb.), csak olvasható dokumentumként lesznek elérhetőek a tárhelyen. Beállítható a fájlok „láthatósága” is, azaz megadható, hogy a dokumentumokhoz csak a tárhely tulajdonosa
13
1. A felhő alapú számítástechnika vagy esetleg valaki más is hozzáférhessen-e. A fájlok egyesével és tömegesen is feltölthetők vagy törölhetők. A felhőben tárolt fájlok és információk esetén kulcsfontosságú, hogy azokhoz illetéktelenek ne férhessenek hozzá. A Google Drive SSL (Secure Socket Layer) titkosítást használ az adatok védelmére, amely az aszimmetrikus kódolás módszerével biztosítja a biztonságos kommunikációt. Emellett a bejelentkezéshez kétlépcsős azonosítás is beállítható, mely tovább fokozza a védelmet. Ekkor a felhasználónév és jelszó megadását követően a rendszer egy kódot generál, amelyet üzenetben vagy mobilalkalmazáson keresztül juttat el a felhasználónak, aki csak ezen kód megadásával tud továbblépni az azonosítási folyamatban. A Drive lehetőséget biztosít a tárolt dokumentumok offline elérésére is, amely opcionálisan beállítható. Ekkor a rendszer online módban elvégzi a kijelölt fájlok helyi mentését, amelyek így internetelérés nélkül is megtekinthetők és szerkeszthetők. A módosításokat a rendszer azonnal szinkronizálja, amikor a készülék ismét online módba kerül. Fejlesztői szemszögből nagyon fontos az elkészített alkalmazás adatainak helyi mentése is, hogy az applikáció offline módban is zökkenőmentesen működjön, a több eszközökön történő használat miatt pedig automatikus szinkronizációra van szükség. Emellett ügyelni kell az ütközések elkerülésére is, azaz a különböző eszközökön offline módban vagy egy időben történő változások összehangolását úgy kell megoldani, hogy a mentés során semmilyen információ ne veszhessen el.
14
2. Mobil operációs rendszerek
2. Mobil operációs rendszerek Napjainkban a mobiltelefon életünk elengedhetetlen részét képezi. A legfrissebb adatok alapján a forgalomban lévő készülékek száma mára megközelíti a Föld teljes lakosságának számát. [22] A közel 7 milliárd mobiltelefon közül jelenleg csaknem 2 milliárd készülék okostelefon, és az eladások száma folyamatosan növekszik. A technikai fejlődés és az árak csökkenése mindenki számára elérhetővé tette a mobiltelefon használatot, amit mindössze két évtizeddel ezelőtt még csak nagyon kevesen engedhettek meg maguknak.
2.1. Történeti áttekintés A mai mobiltelefonok története egészen 1973-ig nyúlik vissza, amikor Martin Cooper, a Motorola mérnöke, New York utcáin sétálva lebonyolította a világ első mobilhívását. Az 1 kg-os telefon a Motorola DynaTac prototípusa volt (2. ábra), amely csak 10 évvel később, 1983-ban került kereskedelmi forgalomba. A készülék 3 995 $-ba került, így csak igen kevesen engedhették meg maguknak. A 90-es évek elején a táskatelefonok (3. ábra) váltak
2. ábra – Motorola DynaTac
népszerűvé, melyek nagy előnye volt a kisméretű kézi telefonokkal szemben, hogy a táskába épített adóvevőnek és akkumulátornak köszönhetően hosszabb beszélgetési időt és nagyobb hatótávolságot biztosítottak. Ezek azonban magas áruk miatt még mindig nem voltak képesek széles körben elterjedni. Hatalmas újításnak számított 1993-ban az IBM Simon megjelenése, amely a hívásindítás és hívásfogadás mellett már további szolgáltatásokat is biztosított. [23] Tartalmazott
egy
naptárt,
címjegyzéket,
számológépet,
jegyzettömböt, e-mail klienst, néhány egyszerűbb játékot és
3. ábra - Táskatelefon
érintőképernyővel volt ellátva. Ez volt a világ első okostelefonja. A 90-es években folyamatosan csökkent az alkatrészek ára, egyre tartósabb akkumulátorok készültek, és kibővült a mobiltelefonokra telepített alkalmazások köre is. A hívásfunkciók mellett megjelent a készülékeken a szöveges üzenetek küldésének lehetősége, a címjegyzék, a naptár funkció, az ébresztőóra és az egyszerűbb játékok. 1999ben megjelent a Nokia 7110-es, az első WAP-képes mobiltelefon, valamint a Benefon Esc!, az első GPS-szel ellátott készülék. 2001-ben piacra kerültek az első színes kijezős,
15
2. Mobil operációs rendszerek kamerával felszerelt mobiltelefonok is, majd további multimédiaszolgáltatásokkal bővült a paletta. Az árak csökkenésével és a szolgáltatások körének bővülésével egy időben folyamatosan nőtt az előfizetők száma is, ami 2000-re már meghaladta a 700 millió főt. [24]
2.2. Az első mobil operációs rendszerek A 90-es évek második feléig a mobilkészülékek csak egy egyszerű kezelőfelülettel rendelkeztek, operációs rendszerrel nem. Az első valódi, telefonokra készült operációs rendszert az 1998-ban, a Psion Software, a Motorola, a Nokia és az Ericsson által alapított Symbian Software fejlesztette ki, majd később a Panasonic, a Siemens és a Sony Ericsson is csatlakozott a konzorciumhoz. A rendszer a PDA-kra fejlesztett EPOC rendszer alapjaira épült, melyet a Psion fejlesztett ki az 1980-as évek végén. Az első EPOC16-ot futtató készülék a „SIBO” néven megjelent, 8086-os processzorral és 16 bites architektúrával rendelkező PDA volt. Az egy-felhasználós operációs rendszer Assembly és C nyelven íródott, emellett támogatta az OPL (Open Programming Language) programozási nyelvet és az OVAL integrált fejlesztőkörnyezetet is. Továbbfejlesztett változata, az EPOC32 1997-ben jelent meg a Psion Series 5 PDA készülékkel együtt. Az új verzió már C++ nyelven, és elsősorban ARM processzorral rendelkező eszközökre íródott.
Az egy-felhasználós, 32 bites operációs rendszer már
grafikus felhasználói felülettel rendelkezett, és kifejezetten a billentyűzettel is ellátott PDA-khoz készült. Az EPOC32 5-ös verzióját már szokás Symbian OS 5-nek nevezni, valójában azonban csak a 6-os verzió jelent meg hivatalosan is Symbian néven. [25] Az első Symbian OS rendszert használó okostelefon az Ericsson R380-as készüléke volt, ami 2000-ben került piacra. A kizárólag ARM processzorokon futó, többfeladatos, grafikus rendszer fejlesztése azonban igen költségesnek bizonyult, így nem tudta felvenni a versenyt a később megjelenő iOS és Android rendszerekkel. A Nokia ennek ellenére sokáig kitartott a Symbian mellett, de a piaci veszteségek miatt végül 2011-től a Microsoft Windows Phone rendszere mellett döntött, és 2013-ban teljesen leállította a Symbianos készülékek gyártását. [26] A Symbian rendszerrel szinte egyszerre, 1999-ben a BlackBerry Ltd., korábbi nevén Research In Motion Ltd. (RIM) is elkészítette saját operációs rendszerét, a BlackBerry OS-t. A többfeladatos rendszer támogatja a BlackBerry készülékek olyan
16
2. Mobil operációs rendszerek speciális beviteli eszközeit is, mint a görgetőkerék, a görgetőgömb és a görgetőpad. A BlackBerry készülékek ma is saját fejlesztésű operációs rendszerükkel kerülnek forgalomba, a legfrissebb verzió a 2012-ben megjelent BlackBerry OS 7.1, más néven BlackBerry 10. [27]
2.3. iOS [28] Az iPhone OS (2010-től iOS) operációs rendszert az Apple Inc. fejlesztette ki iPhone, iPad és iPod Touch készülékeire. Az első iPhone OS operációs rendszert 2007 januárjában mutatták be, a legújabb frissítés, az iOS 9.1 pedig 2015. október 21-től érhető el. 2015 év elejei adatok alapján a jelenleg használatban lévő okostelefonok kb. 16%-án, a táblagépeknek pedig kb. 66 %-án fut iOS rendszer világszerte.
iOS logó
Többfeladatos operációs rendszer, azonban az iOS 4-es verzióig kizárólag a rendszer által futtatott processzeknek volt engedélyezett a háttérben történő futás, a felhasználó alkalmazásainak nem. Felhasználói felülete kezdetektől a multi-touch technológiára épül, azaz minden objektum kézzel mozgatható, természetes kezelőfelületet biztosítva ezzel a felhasználó számára. Az iOS számos hasznos, gyárilag telepített alkalmazást tartalmaz, melyek többek között a videó-hívások lebonyolítására alkalmas Facetime, az Apple Mail levelező kliens, az online játékok elérését biztosító Game Center, az e-könyvek letöltésére és olvasására alkalmas iBooks, a Safari böngésző, a Spotlight kereső, az iPod médialejátszó, valamint a Passbook, mely jegyek, kuponok, utalványok információinak tárolására szolgál. További applikációk az iTunes vagy az App Store alkalmazások segítségével telepíthetők az eszközre. Az iOS-t használó készülékekre hivatalosan kizárólag az App Store alkalmazás segítségével lehet alkalmazásokat letölteni és telepíteni. Léteznek azonban olyan módszerek, amelyekkel ezt a korlátozást fel lehet törni, majd az Apple által nem engedélyezett alkalmazásokat is fel lehet telepíteni. A „jailbreak” eljárásnak nevezett rendszerfeltörés során a felhasználó rendszergazdai jogokat szerez, ami az iOS felhasználási feltételeinek megszegése. A rendszer feltörésének gyanúja esetén az Apple akár a garanciális ügyintézést is megtagadhatja. A „restore” eljárás, azaz az eredeti rendszer visszatöltése azonban törli a „jailbreak” módosításait a készülékről, így a rendszer tulajdonképpen nyom nélkül feltörhető és visszaállítható.
17
2. Mobil operációs rendszerek
2.3.1. Verziók [29] Az iOS 9 éve van jelen a piacon, ez idő alatt évente került kiadásra egy-egy új verzió, melyek mindegyike jelentős változásokat, fejlesztéseket hozott az előzőekhez képest. iPhone OS Az Apple 2007. január 9-én mutatta be az iPhone OS operációs rendszert az első iPhone készülékkel együtt, amely még nem támogatta a 3G-t, a másolás/beillesztés funkciót, az MMS-t és az e-mail csatolmányokat, valamint nem volt képes más gyártók alkalmazásainak futtatására sem. A későbbi frissítésekkel megjelent az iTunes Music Store alkalmazás, amely lehetővé tette a zeneletöltést közvetlenül a készükre, és a saját csengőhang készítését. iPhone OS 2 Az iPhone OS 2-es verzió 2008. július 11-én került bemutatásra. Legjelentősebb újítása a 3G támogatás bevezetése volt, emellett megjelent az App Store áruház is, amely az iPhone felhasználók számára is elérhetővé tette más gyártók alkalmazásait és játékait. Az új verzió támogatta a Microsoft Exchange és a Google Street View térképszolgáltatás használatát is. iPhone OS 3 Az iPhone OS 3-as verzió 2009. június 17-én jelent meg. Elérhetővé vált a másolás/beillesztés funkció és az MMS szolgáltatás. Az iTunes már nem csak zenék letöltésére volt alkalmas, hanem filmek és könyvek is elérhetővé váltak a felhasználók számára. A Spotlight révén lehetőség nyílt átfogó keresésre az e-mailek, kapcsolatok, naptárbejegyzések, feljegyzések és zenék között. Ekkor jelent meg az első iPad is, így a 3.2-es verzió már számos olyan frissítést tartalmazott, melyek a nagyobb, eltérő felbontású képernyőn történő zökkenőmentes futtatást segítették elő. iOS 4 Az iOS nevet elsőként a 2010. június 21-én bemutatott iOS 4 operációs rendszer viselte. A legfontosabb fejlesztése a „multitasking” volt, ami lehetővé tette különböző alkalmazások egyszerre történő futtatását, például a zenehallgatás közben történő böngészést, miközben a navigációs szoftver folyamatosan követte a felhasználó aktuális helyzetét. Megjelent az iBooks e-könyv olvasó applikáció, és az automatikus helyesírásellenőrzés.
18
2. Mobil operációs rendszerek iOS 5 Az iOS 5-ös verzió 2011. október 12-én jelent meg az Apple felhőszolgáltatásával, az iClouddal együtt, melynek köszönhetően ettől kezdve a felhasználók könnyedén szinkronizálhatták a tárolt zenéket, fotókat, videókat és egyéb dokumentumokat különböző eszközeik között. Számos új gyárilag telepített alkalmazással is bővült a rendszer. Többek között ekkor jelent meg az iMessage applikáció, melynek segítségével szöveges üzenetek küldhetők más iOS készülékekre WiFi-n keresztül. Az Apple integrálta új rendszerébe a Twittert, valamint a Siri hangvezérelt virtuális asszisztenst is, mely így már képes volt más alkalmazásokkal kommunikálni telefonhívás, e-mail ellenőrzés és szövegleírás céljából. iOS 6 2012. június 11-én mutatták be a nagyközönség számára az iOS 6 operációs rendszert. A gyárilag telepített alkalmazások közül eltűnt a Youtube, a Google Maps térképszolgáltatást pedig felváltotta az Apple saját fejlesztésű applikációja, az iMaps. Elindult a Passbook alkalmazás, integrálták a Facebookot, és bővítették a Siri által nyújtott szolgáltatások körét, többek között az étteremajánló, filmkritika, alkalmazás-megnyitás, valamint Facebook és Twitter státusz diktálása funkciókkal. iOS 7 2013. június 10-én került bemutatásra az iOS 7-es verzió, mely jelentős változásokat hozott. Teljesen megújult a felhasználói felület, és megjelent a Vezérlőközpont, amely révén egy mozdulattal elérhetővé vált a WiFi, a Bluetooth, a repülő üzemmód, az újonnan bevezetett Zseblámpa, valamint további hasznos funkciók. Megújult az Értesítési központ és a multitasking, megjelent az AirDrop fájlküldő szolgáltatás, és integrálták a Flickr és Vimeo alkalmazásokat. Siri már női és férfi hanggal is rendelkezett, továbbá az angol mellett már francia és német nyelven is képes volt kommunikálni. iOS 8 Az iOS 8 2014. június 2-án került bemutatásra az Apple szokásos Fejlesztői Világkonferenciáján. A rendszer újdonságai az egészségügyi adatok nyomon követésére szolgáló HealthKit és az internet-képes háztartási berendezések irányítására alkalmas HomeKit szolgáltatások. Az iMessages alkalmazás már audió és videó üzenetek továbbítására is képes, a szövegbevitel pedig kibővült a QuickType funkcióval, mely gépelés közben automatikusan kiegészíti a szavakat.
19
2. Mobil operációs rendszerek iOS 9 Az iOS legújabb, 9-es verziója 2015. szeptember 16-án került bemutatásra az új iPhone 6S készülékekkel együtt. A gyárilag beépített alkalmazások új funkciókkal bővültek, melyek tovább fokozzák a felhasználói élményt. Siri már beszéd-kontextus alapján is tud keresni, valamint emlékeztetők létrehozására is képes. A Spotlight keresés az új API támogatásnak köszönhetően mostantól külső fejlesztők alkalmazásaiban is tud keresni, így képes megtalálni egy dokumentumot akár a Dropbox, vagy Google Drive fiókunkban is. A Maps térképszolgáltatás tömegközlekedési információkkal egészült ki, mely Magyarországon még sajnos nem elérhető, azonban számos olyan európai, amerikai és kínai nagyváros már megtalálható benne, mint például London, Berlin, New York, Mexikóváros vagy Shanghai. A Newstand hírolvasó szoftver új verziója News néven, a megújult Passbook applikáció pedig már Wallet néven található meg a legfrissebb iOS verzió gyárilag telepített alkalmazásai között. Az új Alacsony töltöttségű mód használata az akkumulátor üzemidejét egy órával megnöveli, a rendszer mérete pedig jelentősen csökkent a korábbi, iOS 8-as verzióhoz képest, így jóval több tárhely marad szabadon a készüléken a felhasználó számára.
2.3.2. Alkalmazásfejlesztés és publikálási lehetőségek A zárt forráskódú operációs rendszer az XNU kernel egy változatát használja, amely az OS X része. Az iPhone készülékek ARM processzorral működnek, a 3D grafikához pedig OpenGL-t használnak, amit egy Power VR videokártya biztosít. Az OS X alkalmazások nem másolhatók közvetlenül a telefonra, hanem specifikusan iPhone-ra kell őket írni és fordítani az Xcode fejlesztőcsomag segítségével, amely kizárólag OS X operációs rendszerre telepíthető. Az SDK ingyenesen letölthető, az eszközön történő tesztelés és a szoftver publikálása azonban csak az iPhone Developer Program tagjai számára lehetséges. A tagsági díj jelenleg évi 99 $. Az elkészült alkalmazáshoz egy egyedi kulcsot kell generálni az Apple webes felületén, az applikáció feltöltése az Apple online piacterére, az App Storeba csak ezt követően lehetséges. A kulcsok az Apple tulajdonát képezik, így az alkalmazások nem terjeszthetők tovább. A fejlesztő szabadon megszabhatja az általa írt alkalmazás árát, a bevétel 70%-a illeti meg a fejlesztőt és 30%-a az Apple-t. Ingyenes applikáció feltöltése esetén, bevétel hiányában az Apple felé sem kell semmilyen költséget fizetni a letöltések után. Az App
20
2. Mobil operációs rendszerek Store-ban idén már több mint 1,4 millió applikáció érhető el, a letöltések száma pedig már meghaladta a 75 milliárdot. Java-alapú applikációk futtatása jelenleg még nem lehetséges az iPhone készülékeken, azonban a hírek szerint a Sun Microsystems és az Apple már folytat tárgyalásokat ez ügyben. Flash alkalmazások egyelőre szintén nem futnak az iOS rendszeren, azonban az Adobe már dolgozik egy Flash Lite verzión, ami kompatibilis lesz az Apple operációs rendszerével is.
2.4. Android Az Android jelenleg a világ legnépszerűbb mobil operációs rendszere. Fejlesztését az Android Inc. kezdte el, amit a Google 2005-ben felvásárolt, majd létrejött az Open Handset Alliance nevű konszern, 84 különböző mobil- és technológiai vállalat csoportja, abból a célból, hogy új innovációs
Android logó
megoldásokkal egy olcsóbb, jobb és gazdagabb felhasználói élményt biztosító mobil operációs rendszert valósítson meg. [30] 2007-ben jelentették be az Android megjelenését, amely 2008 végén, a HTC G1 készülékkel került a kereskedelmi forgalomba. A rendszer igen hamar rendkívül sikeres lett, és ma már a forgalomban lévő mobileszközök kb. 80%án Android fut. A legfrissebb verzió a 2015. szeptember 29-én bemutatott Android 6.0 (Marshmallow). Az Android sikerének legfőbb okai az egyszerűen kezelhető, felhasználóbarát megjelenés, a kis hardverigény, a nyílt forráskód, az ingyenes használat, valamint a sikeres marketingstratégia. [31] Emellett a platform fontos része a Google eszköztár, melynek köszönhetően a Google fiókazonosítók megadását követően a névjegyzék, az üzenetek, a csevegések (Hangouts), az e-mailek (Gmail), a közösségi hálózat (Google+), az internetes fotóalbum (Fotók) és a naptár automatikusan szinkronizálódik. A rendszerrel további népszerű Google-szolgáltatásokat is kapunk, többek között a Google keresőt, mint önálló alkalmazást, a Google Chrome böngészőt, a Google Maps térképszolgáltatást, a Picasa fotómegosztó alkalmazást, beépített médialejátszó és fényképnézegető applikációkat, valamint a Google Play áruházat (korábbi nevén Android Market). Hasznos kiegészítők továbbá az online játék-lehetőséget biztosító Play játékok, az e-könyv olvasásra alkalmas Play könyvek, a felhasználó számára érdekes hírek kigyűjtésére és olvasására szolgáló Play újságos, és az online videotéka, a Play filmek alkalmazás.
21
2. Mobil operációs rendszerek Az Android a vezető mobiltelefon gyártók és a kisebb vállalatok számára egyaránt ideális lehetőség volt. Megjelenésekor az eladások csökkenőben voltak, és a nagy cégeknek nem volt megfelelő anyagi háttere saját rendszer kifejlesztésére. A kisebb vállalatok számára az Android ingyenessége szintén remek lehetőséget kínált, hiszen így kedvező ár-érték arányú készülékekkel be tudtak lépni a piacra (ZTE, Huawei, stb.). Mára az okostelefonok, tabletek, televíziók és okosórák mellett már a gépjárművek fedélzeti számítógépét és navigációját szállító cégek, valamint az ipari automatizálás irányából is nagy érdeklődés mutatkozik a rendszer iránt, hiszen az Android kényelmes használatot biztosít minden olyan eszközön, amelyen kicsi a kijelző, limitáltak az erőforrások és az adatbevitel érintőképernyőn keresztül történik. [32]
2.4.1. Verziók [33] Az Android a kezdetektől néhány havonta új verzióval jelentkezik, ezek azonban visszafelé teljes mértékben kompatibilisek egymással, azaz egy korábban megírt alkalmazás garantáltan hibátlanul fut a legújabb rendszerverzión is. Fejlesztőként mindenképpen érdemes nyomon követni a különbségeket, hiszen egy-egy új verzió számos olyan újdonságot is tartalmazhat, amely megkönnyíti a programozó munkáját, de akár a fejlesztésre vonatkozó ajánlások is megváltozhatnak verzióváltáskor. [34] Érdekesség, hogy 2009 áprilisa óta az Android verziók különböző édességek után kapják fantázianevüket, melyek ABC sorrendben követik egymást, és az Android adott verziójának logójában is visszaköszönnek. Android 1.0 Az Android első verziója 2008. október 21-én jelent meg, mely még nem aratott áttörő sikert az átlagfelhasználók körében. A rendszer maga stabilnak bizonyult, azonban a felhasználói felület még nem volt megfelelő, nehézkes volt a használata. Felszereltségét tekintve már az első verzió is számos népszerű alkalmazást tartalmazott, többek között a Gmail, Google Maps, Google Street View, Google keresés, Google Talk, Youtube és az Android Market applikációkat. Célja elsősorban a rendszer bemutatása, valamint a gyártók érdeklődésének felkeltése volt. Android 1.1 2009. február 9-én jelent meg az Android második verziója, mely látványos fejlesztéseket nem tartalmazott. Számos apró hiba javításra került, és engedélyezte az üzenetek mellékleteinek mentését a készülékre.
22
2. Mobil operációs rendszerek Android 1.5 (Cupcake) 2009. április 27-én mutatták be az első fantázianévvel ellátott verziót, a Cupcake-et. Javították és új komponensekkel bővítették a felhasználói felületet, animálták a képernyőváltásokat és elkészült az automatikus képernyő-elforgatás. Megjelent az automatikus szöveg-
Cupcake logó
kiegészítés és a másolás/beillesztés funkció. Lehetőség nyílt videók és képek feltöltésére a Youtube, valamint a Picasa portálokra közvetlenül a készülékről, a névjegyzékben pedig megjelentek a kedvenc kapcsolatokhoz tartozó profilképek. Android 1.6 (Donut) 2009. szeptember 15-én jelent meg a Donut névre keresztelt verzió, mely a Cupcake javítása volt. Megjelent a hangfelismerés alapú keresés, és az alkalmazásokon belüli szövegbevitel szintén beszédfelismerés útján, különböző nyelveken. Lehetőség nyílt a
Donut logó
fényképek tömeges kijelölésére a közös műveletekhez, az Android Market applikáción belül pedig egyszerűbbé vált a keresés, és megjelentek a letölthető alkalmazások képernyőképei is. Android 2.0 és 2.1 (Eclair) Az Eclair fantázianevet viselő 2.0-ás verzió 2009. október 26-án jelent meg, mely jelentős fejlesztéseket tartalmazott. Támogatta
a
változatos
képernyőméreteket
és
felbontásokat
(táblagép-támogatás), valamint a kétujjas „multitouch” bevitelt.
Eclair logó
Megújult a felhasználói felület, és megjelent az „élő” háttér. Lehetőség nyílt több e-mail fiók beállítására egy eszközön, és Microsoft Exchange támogatással bővült a levelező kliens. Az automatikus szöveg-kiegészítés funkció tárolta szótárában a leggyakrabban használt szavakat, és a kamera funkció is számos új kiegészítővel bővült. A 2.0-ás verzió még sok apró, de bosszantó hibát tartalmazott, melyeket frissítésekkel korrigáltak ugyan, de végül csak a 2010. január 12-én megjelent 2.1-es Eclair verzió terjedt el a különböző gyártók készülékein. Android 2.2 (Froyo) 2010. május 20-án mutatták be a Froyo nevet viselő 2.2-es verziót, mely jelentős teljesítménybeli változásokat hozott. JIT támogatással rendelkezett, mely nagymértékben gyorsította a CPU-
23
Froyo logó
2. Mobil operációs rendszerek igényes feladatokat. A böngésző képessé vált GIF animációk megjelenítésére, gyorsabb JavaScript került integrálásra és megjelent a Flash támogatás. Az alkalmazások nagy részét már igény szerint át lehetett helyezni a MicroSD kártyára és vissza. Megjelent a WiFi „hotspot” internet megosztás funkció, valamint az adatforgalom letiltásának lehetősége. Android 2.3 (Gingerbread) 2010.
december
6-án
mutatták
be
a
Gingerbread
fantázianévre keresztelt 2.3-as verziót. Az új rendszert letisztultabb felhasználói felület, gyorsabb és hatékonyabb működés, javított energiagazdálkodás,
valamint
hosszabb
üzemidő
jellemezte.
Támogatta a nagyméretű (WXGA) kijelzőket, az új szenzorokat
Gingerbread logó
(giroszkóp, barométer) és az előlapi kamerát, megújult a virtuális billentyűzet és a másolás/beillesztés funkció. Megjelent az ötujjas „multitouch” érintés-felismerés, az NFC (Near Field Communication) és a letöltés kezelő, amely a böngészőn keresztül, e-mail üzenetekből vagy egyéb alkalmazások segítségével letöltött fájlokhoz biztosított könnyű hozzáférést a felhasználó számára. A rendszer a YAFFS helyett már az ext4-es fájlrendszert használta. Android 3.0, 3.1 és 3.2 (Honeycomb) A Honeycomb kifejezetten táblagépekhez készült Android operációs rendszer volt. A 3.0-ás verzió 2011. február 22-én jelent meg átalakított, táblagépekre optimalizált felhasználói felülettel. A nagyobb kijelzőkhöz igazítva megnövelték a virtuális billentyűzet méretét. A „multitasking” egyszerűbbé vált, az új felületen egy
Honeycomb logó
koppintással elérhető volt az egy időben futó alkalmazások listája, így könnyedén lehetett váltani az applikációk között. A rendszer támogatta a többmagos processzorokat és kezelte a csatlakoztatott USB vagy Bluetooth billentyűzetet is. A 3.1-es verzió 2011. május 10-én került bemutatásra, mely további USB eszközöket (egér, játékvezérlő, kamera) is támogatott. További fejlesztés volt a főoldali minialkalmazások átméretezhetősége. Az utolsó, 3.2-es Honeycomb verzió 2011. július 15-én jelent meg, mely további hardveroptimalizációt tartalmazott táblagépek számára, valamint kompatibilis képernyő módot biztosított azon alkalmazások számára, melyek kisebb felbontású kijelzőkre készültek.
24
2. Mobil operációs rendszerek Android 4.0 (Ice Cream Sandwich) 2011. október 18-án mutatták be a 4.0-ás verziót, mely számos újítást hozott. Megjelent a gyorsindító és a feladatkezelő, emellett lehetőség volt a készenléti kijelzőről közvetlenül elindítani egyes applikációkat a képernyőzár feloldása nélkül. Skálázhatóvá vált a kezelőfelület, így az alkalmazások már könnyedén
Ice Cream Sandwich logó
alkalmazkodhattak az eltérő méretű és felbontású képernyőkhöz. Az integrált arckövető megoldásnak köszönhetően a megjelenített 3D alakzatok mindig a felhasználónak megfelelő perspektívában jelentek meg. Lehetővé vált a képernyőképek készítése és továbbfejlesztették a másolás/beillesztés funkciót is. Android 4.1, 4.2 és 4.3 (Jelly Bean) 2012. július 9-én került bemutatásra az Android 4.1-es verziója, amely a Jelly Bean fantázianevet kapta. Egyik legfontosabb fejlesztése a felhasználói felület lágyítása volt, a „Project Butter” algoritmusnak
köszönhetően
rengeteget
javult
az
animációk
folytonossága. A képernyő rendezése során a minialkalmazások
Jelly Bean logó
szükség szerint automatikusan átméreteződtek. Gyárilag telepítésre került a Google Chrome böngésző, és megjelent a Google Now, egy angol nyelven kommunikálni képes asszisztensprogram. A 2012. november 13-án bemutatott 4.2-es verzió olyan fejlesztéseket tartalmazott, mint a minialkalmazások készenléti képernyőn történő elhelyezése, az értesítési sávon egy mozdulattal elérhető gyorsbeállítások, valamint a vakok és gyengén látók támogatása a nagyító és szövegfelolvasó funkciókkal. Az utolsó, 4.3-as verzió 2013. július 24-én jelent meg, újdonságai közé tartozott a WiFi alapú helymeghatározás, a tárcsázott telefonszámok automatikus kiegészítése a névjegyzékből kikeresett találtok alapján, valamint az Ultra HD kijelzők támogatása. Android 4.4 (KitKat) 2013. október 31-én jelent meg a 4.4-es verzió, a KitKat, mely frissített kezelőfelületet kapott. Optimalizálták a teljesítményt is, a rendszer futásához már kevesebb RAM (512 MB) is elegendő volt. [35] Támogatta a lépésérzékelő és lépésszámláló szenzorokat, és új keretrendszert kapott a felhasználói felület áttűnéseihez.
KitKat logó
Bemutatkozott az Android Runtime (ART) virtuális futtatókörnyezet, mely ekkor még nem váltotta fel a Dalvik virtuális gépet, csak kísérleti jelleggel futott.
25
2. Mobil operációs rendszerek Android 5.0 és 5.1 (Lollipop) A Lollipop 2014. október 17-én került bemutatásra az 5.0-ás verzióval. A Dalvik virtuális gépet teljesen felváltotta az Android Runtime (ART), emellett az új rendszer már támogatja a 64 bites processzorokat is. Az alkalmazásváltóban a felhasználó feladatok közül választhat a korábban megszokott applikációk helyett, a készenléti képernyőről pedig eltűntek a minialkalmazások. A
Lollipop logó
„Project Volta” révén megnövelték az akkumulátor üzemidejét, és megjelent a vendégmód, azaz a készülékre vendég felhasználóként történő bejelentkezés lehetősége. Az 5.1-es verzió 2015. március 9-én jelent meg, melyben már alapértelmezett a több SIM kártya kezelése. A WiFi és Bluetooth részletes beállításai is elérhetővé váltak a gyorsbeállítások panelen, emellett új eszközvédelmi funkció jelent meg, mely révén az elveszett/ellopott készülékek feloldása, valamint a gyári állapot visszaállítása kizárólag a Google fiók adataival történő bejelentkezéssel lehetséges. Android 6.0 (Marshmallow) A legfrissebb Android verziót, a Marshmallow névre keresztelt 6.0-ás kiadást 2015. május 28-án jelentette be a Google, és 2015. szeptember 29-én került forgalomba a legújabb Nexus 5X és 6P mobilkészülékekkel, valamint a Nexus 9 tablettel. A felhasználói felület a Lollipop mintájára készült, maga a rendszer azonban ismét
Marshmallow logó
számos újdonsággal bővült. Az egyik legjelentősebb fejlesztés a Now On Tap funkció, amely a „kezdőképernyő” gomb lenyomva tartását követően azonnali keresési lehetőségeket ajánl fel az aktuális képernyőn található szavakra és kifejezésekre, így a felhasználónak a keresés során el sem kell hagynia az éppen futó alkalmazást. Az új Doze és App Standby funkciók jelentősen megnövelik az akkumulátor üzemidejét. Előbbi automatikusan alvó módba kapcsolja a készüléket, ha a felhasználó bizonyos ideje már nem érintette meg azt, utóbbi pedig leállítja a háttérben futó, nem használt alkalmazásokat. A rendszer támogatja a C-típusú USB csatlakozót, mely lehetőséget biztosít egy adott készülékről egy másik eszköz akkumulátorának töltésére. Az SD kártya a másodlagos háttértár szerepkör mellett már beállítható belső tárolóként is, így a készülék belső memóriája is bővíthetővé válik. Az ujjlenyomat olvasó támogatásának köszönhetően lehetőség nyílik az applikációkban, a Google Play áruházban, valamint a mobilfizetés során használt jelszavakat ujjlenyomatra cserélni, így adatainkat a lehető legnagyobb
26
2. Mobil operációs rendszerek biztonságban tudhatjuk. A Do Not Disturb funkció révén akár előre programozva lenémítható a készülék, de lehetőség van kivételek megadására is a fontos telefonszámok, valamint az ébresztés számára. Fejlesztői szempontból nagyon fontos változás, hogy a Marshmallow már csak 8 engedélytípust különböztet meg, melyeket a felhasználó egyesével tud engedélyezni vagy letiltani az alkalmazáson belül.
2.4.2. Alkalmazásfejlesztés és publikálási lehetőségek Az Android operációs rendszer egy monolitikus Linux-kernel köré épül, amelyben a memóriakezelő, a folyamatütemező és teljesítményszabályozó szolgáltatások mellett az eszközkezelő programok találhatók, melyeket a gyártók maguk készítenek el, hiszen a gyártó ismeri legjobban a készülék integrált perifériáit. A fejlesztés elsődlegesen Java nyelven történik, a futtatáshoz a rendszerverziótól függően a Dalvik vagy ART virtuális gépet használja, amely kifejezetten korlátozott memóriával és processzor sebességgel rendelkező hordozható eszközökre van optimalizálva. A fejlesztéshez különböző ingyenes programok és eszközök állnak rendelkezésre, a tesztelés virtuális eszközön, vagy akár közvetlenül a készüléken is lehetséges. A Google javaslatokkal, iránymutatással és számos kódrészlettel segíti a fejlesztők munkáját, melyek a http://developer.android.com/develop/index.html oldalon elérhetőek. Az elkészült applikációk közzététele a Google Play áruházban fejlesztői regisztrációhoz kötött. A regisztráció egyszeri 25$-ba kerül, melynek megfizetése után korlátlanul használható a Google Wallet publikálási felülete. Az alkalmazás árát a fejlesztő szabadon meghatározhatja, az összeg 70%-a az fejlesztőé, 30% pedig a szolgáltatóé. [36] A nyereség a vásárlást követő 15 percen belül a fejlesztőhöz kerül. Ingyenes alkalmazások esetén Google-reklámok elhelyezésével van lehetőség bevétel elérésére. 2015. január 1-től a bevétel után fizetendő ÁFA is a Google felelősségi körébe tartozik, így annak összegét a szolgáltató fizeti, a fejlesztőnek pedig az ezen költséggel csökkentett összeget írja jóvá, ezzel is egyszerűsítve a fejlesztő dolgát. [37] A Google Wallet felületén történő publikálás során a fejlesztő beállíthatja, hogy az alkalmazás milyen készülékeken futtatható és mely országokban kívánja közzétenni. A Google Play a megadott feltételek alapján szűri az alkalmazásokat. Az áruház emellett biztosít egy Android Licensing Service szolgáltatást, melynek segítségével az alkalmazás futás közben ellenőrzi, hogy valóban megvásárolta-e a felhasználó. A Google Play áruházban elérhető alkalmazások száma 2013-ban már meghaladta az 1 milliót, a letöltések száma pedig az 50 milliárdot is túllépte. [38]
27
2. Mobil operációs rendszerek Az Android nem korlátozza a letölthető és telepíthető alkalmazások körét a Google Play áruházra, az applikációk akár e-mailen vagy egyéb weboldalakon keresztül is terjeszthetők. [39]
2.5. Windows Phone A Windows Phone (WP) operációs rendszer a Microsoft fejlesztése, mely kifejezetten okostelefonokra
Windows Phone logó
készült, hiszen a Windowsos táblagépeken Windows 8.x vagy Windows RT fut. Elődje a telefonokra és Pocket PC-kre készült Windows Mobile (WM) volt, mely főként az üzleti és vállalati szféra felhasználóit célozta meg. A rendszer 2000-ben jelent meg Pocket PC néven, majd 2003-ban változtatták a nevét Windows Mobile-ra. [40] Az iOS és az Android megjelenését követően azonban jelentősen csökkent a népszerűsége, így a Microsoft 2010-ben bejelentette új operációs rendszerét, a Windows Phone-t, a Windows Mobile-t pedig teljesen megszüntette. A Windows Phone nem kompatibilis a Windows Mobile eszközökkel, és a régi rendszer sem frissíthető az újra. [41] A Windows Phone már nem üzleti célokra készült, a rendszert az átlagos felhasználóknak szánták. A legfrissebb forgalomban lévő verzió a Windows Phone 8.1, melyet 2014. április 14-én mutattak be a nagyközönség számára. 2015. február 12-én a Microsoft már a Windows 10 mobilverzióját is bejelentette, mely egyelőre még fejlesztés alatt áll, de egyes Nokia Lumia készülékekre már letölthető a próbaverzió. A Windows Phone piaci részesedése jelenleg mindössze 2,6% körüli, azaz a világ okostelefonjainak kevesebb, mint 3%-án fut, jelentősen lemaradva a két „óriás”, az Android és az iOS mögött. [42] A rendszer kezdőképernyőjén a Windows 8-ból már jól ismert csempés felhasználói felület köszön vissza, melyen a csempék tetszés szerint rendezhetőek, átméretezhetőek, módosíthatók vagy törölhetők. Az előre telepített alkalmazások között számos népszerű Microsoft termék megtalálható, többek között az Internet Explorer, a Bing kereső, a Bing térképszolgáltatás, az Office csomag és a Skype. A beépített e-mail kliens képes kezelni a Microsoft Exchange és Office 365 fiókokat is, Windows Live azonosítókkal történő bejelentkezést követően pedig automatikusan szinkronizálja a Live szolgáltatásokon belüli e-maileket, névjegyeket, naptárat, fényképeket és hírcsatornákat. A Windows Phone készülékeken gyárilag telepítve van az Xbox applikáció is, melynek segítségével az Xbox
28
2. Mobil operációs rendszerek Live-on online játékra nyílik lehetőség. További alkalmazások a Windows Phone Store applikáció segítségével telepíthetők a készülékre. [43]
2.5.1. Verziók [44] A Windows Phone a legfiatalabb mobil operációs rendszer, hiszen első verziója mindössze 5 éve jelent meg. Ez idő alatt 5 különböző verziója jelent meg a kereskedelmi forgalomban. Windows Phone 7 Az első Windows Phone operációs rendszer 2010. október 29-én jelent meg. A Microsoft egy teljesen új, „élő csempéket” tartalmazó mobil felhasználó felületet alkotott meg. Számos külső és saját Microsoft szolgáltatást integráltak a rendszerbe, már az első verzióban elérhető volt többek között az Office 2010 mobil változata, a Bing szolgáltatások, az Internet Explorer, a Store piactér, és a Facebook. A 2011. márciusi frissítéssel elérhetővé vált a másolás/beillesztés funkció, és az alkalmazások indításán is gyorsítottak. Windows Phone 7.5 (Mango) A 7.5-ös, Mango kódnéven elterjedt verzió 2011. szeptember 27-én jelent meg, és számos újdonságot tartalmazott. Integrálták a Windows Live Messengert, a Twittert és a LinkedIn közösségi hálózatot, emellett az új verzió támogatta a Facebook helymegosztási szolgáltatását is. Lehetőség nyílt több e-mail fiók összekapcsolására és új funkciókkal bővült a Bing szolgáltatáscsomag. Megjelent az internet megosztás funkció és az energiatakarékos üzemmód. Windows Phone 7.8 A Windows Phone 7-es sorozatának utolsó verziója 2013 februárjának első napjaiban jelent meg. A 7.x verziókat nem lehetett Windows Phone 8-ra frissíteni az eltérő hardveres követelmények és a rendszermagban történt változások miatt. Ingyenesen frissíthetők voltak azonban a 7.8-as verzióra, amely már tartalmazta a Windows Phone 8 néhány újdonságát is, köztük a megújult kezdőképernyőt, a csempék átméretezhetőségét, új színsémákat és a készenléti képernyőn megjelenő Bing kezdőoldalt is. Windows Phone 8 (Apollo) Az Apollo kódnévvel ellátott Windows Phone 8 operációs rendszer 2012. október 29-én került bemutatásra. Az új verzió számos újítást hozott, többek között megváltozott a fájlrendszer, új hardverillesztő szoftvereket tartalmazott, emellett támogatta a többmagos, 29
2. Mobil operációs rendszerek 64 bites processzorokat és a Micro SD kártyákat is. Megjelent az NFC (Near Field Communication), a távoli vezérlés és az adatforgalmi segéd, amely nyomon követte és a lehetőségekhez mérten csökkentette az adathasználatot. 2013 nyarától már a Googlefiókokat is támogatta rendszer, így lehetőség adódott a Google címtár és a naptár információinak szinkronizálásra is. Windows Phone 8.1 (Blue) A forgalomban lévő legújabb, Blue kódnevet viselő 8.1-es verzió 2014. április 14én mutatkozott be, nem titkolt célja, hogy funkciók és szolgáltatások tekintetében felzárkózzon az Android és iOS rendszerekhez. Megjelent a Műveletközpont és a Gyorsbeállítások funkció, melyben egy mozdulattal elérhetőek a legfontosabb beállítások, többek között a WiFi, Bluetooth, repülési üzemmód, internet megosztás és a képernyőtájolás zárolása. Támogatja a virtuális magánhálózatot (VPN) és a több SIM kártya kezelését, továbbá megjelent a Cortana intelligens, hangvezérelt személyi asszisztens. Az alkalmazások, fényképek, és játékadatok már közvetlenül az SD kártyára is menthetők, emellett az applikációk már automatikusan is képesek frissülni. Windows 10 Mobile A Windows 10 mobilverzióját 2015 februárjában jelentette be a Microsoft és próbaverziója már kipróbálható egyes Nokia Lumia készülékeken. A teljes verzió várhatóan 2015 decemberében kerül majd kereskedelmi forgalomba. Az új rendszer felhasználói
felülete,
valamint
beépített
funkciói
és
szolgáltatásai
az
asztali
számítógépeken már megismert Windows 10 operációs rendszer mintájára készült, melynek fő célja az azonos felhasználói élmény biztosítása a különböző eszközökön.
2.5.2. Alkalmazásfejlesztés és publikálási lehetőségek A zárt forráskódú operációs rendszer a mobil eszközökre speciálisan átdolgozott Windows kernelt használ. A Windows Phone 7.x verziók a Windows CE 7.0, a Windows Phone 8.x széria a Windows 8.1, míg a hamarosan megjelenő Windows 10 Mobile a Windows 10 rendszermagjának módosított változatát alkalmazza. A különböző verziók futtatáshoz szükséges minimális rendszerkövetelmények a processzor típusában és a RAM méretében térnek el egymástól. A Windows Phone 7.x esetén legalább 800 MHz-es ARM v7 típusú processzorra és minimum 256 MB RAM-ra van szükség, míg a Windows Phone 8.x verzió és a Windows 10 Mobile futtatásához legalább kétmagos processzorra és minimum 512 MB RAM-ra van szükség. [45]
30
2. Mobil operációs rendszerek Az alkalmazások fejlesztéséhez a Visual Studio ajánlott, mely a Microsoft weboldaláról ingyenesen letölthető a szükséges kiegészítőkkel együtt. A fejlesztés C++, C# és JavaScript nyelven történhet, melyhez a Windows fejlesztői oldalán hasznos tanácsok és mintakódok is találhatók. A tesztelés történhet a szintén díjmentesen letölthető emulátoron, vagy fejlesztői regisztrációt követően közvetlenül a készüléken is. A regisztráció díja jelenleg egyéni fejlesztőként 19$ (Magyarországról 4 237 Ft), céges regisztráció esetén 99$ (Magyarországról 18 800 Ft), és szükséges hozzá egy Microsoft fiók, mely a regisztráció során is elkészíthető. A bejelentkezést követően egyaránt lehetőség van Windows asztali alkalmazások és Windows Phone mobil applikációk közzétételére a megfelelő Store áruházon keresztül. [46] A fizetős alkalmazások után járó bevétel 30%-a a Microsofthoz kerül, míg 70% illeti meg a fejlesztőt. 200 $-os havi bevétel alatt azonban a Microsoft nem teljesíti a kifizetést, ilyen esetben a nyereség a következő hónap bevételeihez adódik mindaddig, amíg kifizetésre váró összeg el nem éri a 200 $-os minimumot. [47] A Windows Phone Store áruházban elérhető mobil alkalmazások száma a tavalyi évben meghaladta a 300 000-et, és a fejlesztők száma is folyamatosan emelkedik, 2014ben számuk 50%-kal nőtt. Egyelőre azonban még sok a hiányosság, és habár számos népszerű alkalmazás már megtalálható a kínálatban, olyan keresett applikációk még mindig nem érhetőek el Windows Phone-ra, mint a Mozilla Firefox vagy a Youtube. [48]
31
3. Az Android platform részletes ismertetése
3. Az Android platform részletes ismertetése Amint arról már a korábbi fejezetekben is szó volt, az Android jelenleg a világ legnépszerűbb mobil operációs rendszere, naponta több mint 1 millió Androidot futtató eszköz
kerül
forgalomba
világszerte.
A
rendszer
folyamatosan
fejlődik,
új
szolgáltatásokkal bővül, az új verziók pedig mind kompatibilisek a korábbiakkal, így a felhasználó
számára
egy
esetleges
verzióváltás
nem
jár
semmilyen
negatív
következménnyel. Nyílt forráskódjának és ingyenességének köszönhetően hamar elterjedt a gyártók körében is, változatos készülék-kínálatot biztosítva ezzel a platformhoz. Előnyeinek köszönhetően néhány év alatt szinte teljesen kiszorította a többi mobil operációs rendszert a piacról (4. ábra).
4. ábra – A mobil operációs rendszerek piaci részesedésének alakulása 2009 és 2013 között [49]
Amint az a fenti ábrán is látható, az Android 2009 és 2013 között évről évre 1525%-os piaci növekedést ért el, a legfrissebb adatok szerint részesedése idén már a 80%-ot is meghaladta. [50] Az iOS rendszerének mutatói stagnálnak, a Windows Phone pedig egyelőre nem tudja felvenni a versenyt a Google és az Apple által fejlesztett operációs rendszerekkel. Ezzel egy időben a Symbian teljesen megszűnt és az RIM Blackberry piaci részesedése is folyamatosan csökken. 32
3. Az Android platform részletes ismertetése
3.1. A platform felépítése [51] Az Android egy Linux-alapú mobil operációs rendszer, szerkezetét az 5. ábra mutatja be:
5. ábra – Az Android platform szerkezete [52]
Az alsó szinten található a Linux-kernel, melynek feladati közé tartozik a memóriakezelés, a folyamatok ütemezése, valamint a teljesítmény optimalizálása. Itt találhatók a gyártók által fejlesztett eszközmeghajtók is, melyek a perifériák működéséért felelnek. A következő szinten (Libraries) a különböző programkönyvtárak foglalnak helyet, melyek jellemzően C/C++ nyelven íródtak. Ezekre épül a futtatókörnyezet a Dalvik virtuális géppel, melynek feladata az Androidra fejlesztett, Java nyelven íródott programok futtatása. A Dalvik a személyi számítógépeken megszokott Java virtuális gép (JVM) egy átdolgozott verziója. Megújult utasításkészlettel rendelkezik, emellett a programokat nem egy .class állományba fordítja, hanem egy kisebb méretű .dex (Dalvik Executable) kiterjesztésű fájlba.
A Dalvikot a 2014-ben megjelent, 5.0-ás verziótól kezdődően
felváltotta az Android Runtime (ART) futtatókörnyezet. A felső rétegben az operációs rendszer Java-alapú, felhasználó által érzékelhető része található. Két egységre bontható, melyek az alkalmazásokat kiszolgáló és az 33
3. Az Android platform részletes ismertetése erőforrásokhoz hozzáférést biztosító alkalmazás-keretrendszer, valamint maga az alkalmazásréteg, amelyben a felhasználó által kezelhető applikációk futnak.
3.2. Az alkalmazások általános jellemzői [53] Az Androidra készített alkalmazások fejlesztése Java nyelven történik, amelyhez a Google egy SDK-t (Software Development Kit) biztosít. Az alacsonyabb szintű funkciók programozása natív kóddal lehetséges, ehhez az NDK (Native Development Kit) használható. Egy projekten belül lehetőség van Java és C++ kódrészletek elhelyezésére is. Az elkészült alkalmazások az Android verziójától függően a Dalvik vagy ART virtuális gépen futnak felügyelten (managed code), ami az applikációk futását rendkívül biztonságossá teszi, hiszen így egy alkalmazás csak nagyon nehezen tudja megbénítani a teljes rendszert. A rendszer minden applikációhoz egyedi Linux felhasználói azonosítót rendel, és az alkalmazások kódja a többi processztől elkülönülten fut. A memória felszabadítását a Garbage Collector („szemétgyűjtő”) végzi, ennek ellenére azonban fontos kerülni a felesleges memóriafoglalásokat. A rendszer alapértelmezetten engedi a háttérben futni az alkalmazásokat, azonban ha a rendelkezésre álló memória csökken, egy prioritási sort követve leállítja a kevésbé fontos processzeket, hogy a használatban lévő alkalmazások zökkenőmentesen tudjanak futni. Az eseménykezelés a Javában megszokott Listenerek használatával történik, a kivételkezelés pedig a szokásos try-catch-finally blokkal lehetséges. A forráskód és a felhasználói felület a fejlesztés során teljesen különválik. A felhasználói felület definiálására XML állományok használhatók, és a projektleíró állomány is XML-ben érhető el (manifest), melyben többek között a hozzáférési jogosultságok, valamint a kompatibilis Android verziók beállítása történik. A projekten belül a forráskód az src, míg az XML állományok a res könyvtárban foglalnak helyet. Az XML-leírásokat és a forráskódot egy R.java állomány köti össze egymással, melyet a fejlesztőkörnyezet automatikusan generál és frissít. A fordítási folyamat eredményeképpen elkészül a rendszer által aláírt, telepíthető apk állomány, amely becsomagolva tartalmazza magát az applikációt. A telepítést a PackageManagerService végzi, melynek során áttekintésre kerülnek a metainformációk, kiválasztásra kerül a tároló (eszközmemória vagy SD kártya), és megtörténik a hozzáférési jogosultságok jóváhagyása is. Érdemes a jogosultságok listáját mindig gondosan áttekinteni, így kiszűrhetők a kártékony alkalmazások, melyek például a felhasználó tudta nélkül képesek telefonhívást indítani.
34
3. Az Android platform részletes ismertetése Az apk állomány tartalmaz egy META-INF könyvtárat, melyben az alkalmazás tanúsítványa (CERT.RSA), a metainformációk (MANIFEST.MF), valamint az erőforrások listája (CERT.SF) találhatók. A res könyvtárban foglalnak helyet az erőforrások és egyéb médiaelemek (képek, hangok, stílusok, stb.), az AndroidManifest.xml állomány pedig a nevet, verziószámot és a jogosultságokat tartalmazza. A classes.dex állományban találhatóak a lefordított osztályok, a resources.arsc fájlban pedig az erőforrásadatok.
3.3. Alkalmazás-komponensek [54] Egy Android platformra fejlesztett alkalmazás különböző komponensekből épülhet fel. Négy különböző komponenstípust különböztetünk meg, melyek közül az applikációnak elegendő egyet tartalmaznia, de egy típusból akár többet is tartalmazhat. A komponensek különböző célokat szolgálnak, önállóan aktiválódhatnak, és eltérő életciklusmodellel rendelkeznek. Az alkalmazás által tartalmazott komponensek a manifest XML állományban kerülnek felsorolásra. Activity Az Activity a leggyakrabban használt komponenstípus, mely saját, önálló felülettel rendelkezik. Az a látható, teljes képernyős vagy felugró (pop-up) oldal, amelyen keresztül a felhasználó az utasításokat kiadhatja. Egy alkalmazáson belül általában több Activity található, melyek különböző funkciókat töltenek be. Egy alkalmazás meghívhatja egy másik applikáció Activity-jét is, így akár saját alkalmazásból elindíthatjuk többek között a fényképezőgép, a böngésző, az e-mail kliens vagy akár a telefonhívás Activity komponensét. Ez jelentősen leegyszerűsíti a fejlesztést, hiszen ezen funkciók használatához nem szükséges saját kódot írnunk, hanem könnyedén használhatjuk a telefon beépített alkalmazásait. Amikor egy Activity elindul, az megkapja a vezérlést, az előző Activity pedig leáll. A rendszer az úgynevezett Back Stacken tárolja az adatokat, ami egy „last in, first out” veremként működik. Egyszerre mindig csak egy Activity lehet aktív. A vissza gomb megnyomása esetén a legfelső Activity kikerül a veremből, és a soron következő lesz aktív. Az Activity-k életciklus-metódusokon (callback) keresztül kommunikálnak egymással. Ennek eredményeképpen egy Activity 3 különböző állapotban lehet. Resumed (running) állapotban az Activity aktív, előtérben van. Paused állapot esetén az Activity létezik, látszik a képernyőn, azonban egy másik Activity transzparens vagy pop-up módon előtte van. Stopped állapotban az Activity létezik, de nem látszik a képernyőn, egy másik Activity van előtérben. 35
3. Az Android platform részletes ismertetése Service A Service komponens egy a háttérben futó folyamat. Saját felülettel nem rendelkezik, azonban indíthat Activity-ket, megjelentethet értesítéseket. A rendszer számos szolgáltatást futtat a háttérben, melyek a beállításokban is megtekinthetők a futó alkalmazások között. A Service komponens olyan funkciókat tölt be, mint a háttértartalom szinkronizálása, használat nyomon követése, helymeghatározás, zenelejátszás, valamint a nagyméretű letöltések. Végrehajthatnak ütemezett és periodikus feladatokat is. A Service-eket a rendszer automatikusan leállíthatja, ha kevés a memória. Ebben az esetben először azokat állítja le, amelyek már régóta futnak, a memória felszabadulása esetén pedig képes őket újraindítani. A fejlesztés során a Service komponensek használata nagy odafigyelést igényel, mivel könnyen létrehozható olyan szolgáltatás, amely feleslegesen túl nagy adatforgalmat generál a háttérben, lassítva ezzel a készüléket és merítve az akkumulátort. ContentProvider A ContentProvider feladata a tartalomszolgáltatás, egy adatforrás kezelése és az arra vonatkozó kérések kiszolgálása. Az adatforrás lehet egy a készüléken található adatbázis, webes forrás vagy akár RSS szolgáltatás is. A ContentProvider felel a kommunikáció sebességéért, a kérés mielőbbi kiszolgálásáért. BroadcastReciever A BroadcastReciever saját felhasználói felülettel nem rendelkezik, de megjeleníthet egy figyelmeztetést, vagy elindíthat másik alkalmazáskomponenst. Események hatására aktiválódik, és különböző feladatokat hajt végre. Broadcast esemény lehet például egy bejövő telefonhívás, vagy az alacsony akkumulátor-töltöttségi szint. Amikor egy ilyen esemény bekövetkezik, a rendszer megvizsgálja,
hogy
mely
alkalmazások
tartalmaznak
olyan
BroadcastReciever
komponenst, amelyeket az esemény érinthet, és elindítja őket. A fejlesztő feladata meghatározni, hogy a BroadcastReciever milyen feladatot hajtson végre, valamint lehetőség van saját broadcast események indítására is.
36
4. A fejlesztés lépései
4. A fejlesztés lépései Egy alkalmazás fejlesztésének első lépése a tervezés. Fontos, hogy az applikáció hasznos vagy szórakoztató legyen, emellett törekedni kell az egyediségre, hiszen nem érdemes olyan alkalmazást fejleszteni, amiből már tucatnyi másik példány elérhető a Google Play áruházban. A kínálatot és a letöltések számát figyelembe véve megállapítható, hogy a játékok, valamint az olyan hétköznapi applikációk a legnépszerűbbek, mint a chat-programok vagy a zenelejátszók. Érdemes végigböngészni a különböző alkalmazások értékeléseit is, feltárva ezzel a hiányosságokat, hiszen remek ötleteket meríthetünk ezen véleményekből. A fejlesztésre különböző eszközök állnak rendelkezésre, számos fejlesztőkörnyezet közül választhatunk. A Google ajánlásokkal, mintákkal és kódrészletekkel is segíti a munkát.
4.1. Fő szempontok a fejlesztésben A felhasználók számára a minőség a legfontosabb szempont, mely több tényezőből tevődik össze, és amit a Google is nyomatékosan hangsúlyoz fejlesztői oldalán. [55] Egy alkalmazás sikeressége a minőségen múlik, hiszen a széles kínálat miatt nagy a verseny a piacon. A letisztultság és a könnyen kezelhetőség mellett számos egyéb előírás vonatkozik a felhasználói felületre. A rendszer által használt ikonokat tilos felüldefiniálni, valamint az ismert Androidos ikonokat olyan funkciókra használni, ami félrevezetheti a felhasználót. Nem ajánlott saját „vissza” gombot elhelyezni a képernyőn, erre a célra az eszköz „vissza” gombja használható. Az eszköz „kezdőképernyő” gombja mindig a főoldalra navigáljon. Az értesítések csak abban az esetben legyenek állandó jelleggel megjelenítve, ha egy folyamatban lévő eseményhez kötődnek. Ilyen értesítés lehet például a háttérben történő zenelejátszás vagy egy telefonbeszélgetés kijelzése. Ajánlott a képernyő elforgatásának támogatása, valamint a teljes képernyős megjelenítés álló és fekvő nézet esetén is. Ügyelni kell a képernyő gyors újrarajzolására, a felhasználó nem tapasztalhat semmilyen grafikai torzulást a kijelzőn. A fejlesztés során nagyon fontos lépés az alkalmazás jogosultságainak beállítása, hiszen az applikációnak csak azokhoz a szolgáltatásokhoz szabad hozzáférnie, amelyekre ténylegesen szüksége van. Így az Android biztonságos környezetet tud biztosítani mind az alkalmazás, mind a rendszer számára. Nem szabad hozzáférést biztosítani az érzékeny adatokhoz, mint például a névjegyzék vagy az üzenetek. Azon szolgáltatásokhoz, amelyek 37
4. A fejlesztés lépései használatáért díjat kell fizetni (SMS küldés, telefonhívás, stb.) csak az olyan alkalmazások férhetnek hozzá, amelyek kifejezetten erre a célra szolgálnak. A mobil eszközök erőforrásainak korlátai miatt nagyon fontos a takarékos működés. Ha egy alkalmazás nincs előtérben, akkor nem szabad szolgáltatásokat futtatnia a háttérben, hacsak nem ez a fő funkciója. Ezzel elkerülhető a memória, a processzor és az akkumulátor felesleges terhelése. A 10 MB-nál nagyobb alkalmazások esetén biztosítani kell az SD kártyára történő telepítés lehetőségét is. Kivételt képeznek ez alól többek között a Service és a rendszer betöltésére váró Broadcast Reciever komponenseket tartalmazó alkalmazások, a fiók- és eszközkezelők, továbbá az elő háttérképek és a minialkalmazások (widget) is, mivel ha a készülék USB háttértárként csatlakoztatva van egy számítógéphez, vagy az SD kártya eltávolításra kerül, ezek az applikációk elérhetetlenné válnak. Fontos, hogy a feltelepített alkalmazás betöltése minél rövidebb időt vegyen igénybe, működése pedig stabil legyen, lehetőség szerint el kell kerülni az applikáció lefagyását vagy összeomlását. Az alkalmazást fel kell készíteni a váratlan eseményekre is, például ha egy hálózati szolgáltatást használó applikáció futtatásakor megszakad a hálózati kapcsolat. Ilyen esetben nem történhet semmilyen adatvesztés, a kapcsolat helyreállását követően pedig automatikusan újra kell kapcsolódnia. [56] Az alkalmazásokat, amennyiben azt a tervezett funkciók lehetővé teszik, általánosan a 2.2/2.3-as verziókra érdemes fejleszteni, hiszen így érhető el a lehető legnagyobb célközönség, az újabb verziók pedig mind kompatibilisek a korábbiakkal. A Google 2015. novemberi adatai szerint a jelenleg forgalomban lévő mobilkészülékeknek körülbelül 10%-án fut a 4.0-ás verziónál régebbi kiadású Android operációs rendszer (6. ábra).
6. ábra – A forgalomban lévő Android verziók eloszlása 2015. novemberben [57]
38
4. A fejlesztés lépései
4.2. A fejlesztőkörnyezet előkészítése A fejlesztéshez többféle eszköz áll rendelkezésre, amelyek közül igényeinknek megfelelően választhatunk. A Google az Android Studiot ajánlja, mely a cég fejlesztői oldaláról ingyenesen le is tölthető. Támogatják azonban egyéb programok használatát is, melyekhez a szükséges kiegészítő eszközök szintén díjmentesen elérhetőek a Google weboldalán. [58] A különböző könyvek az Eclipse-t részesítik előnyben, mely szintén ingyenes, azonban ez a legtöbb funkciót biztosító, mégis egyszerűen használható Java fejlesztőkörnyezet. Számos különböző verziója létezik Java, C/C++, PHP és további nyelvekhez, melyek a Windows mellett Linux és OS X operációs rendszerekre is elérhetők. A legújabb verzió az Eclipse Mars 1, amely a https://www.eclipse.org/downloads/ weboldalról tölthető le a megfelelő operációs rendszer kiválasztását követően. A letöltött fájl azonnal futtatható, nincs szükség kicsomagolásra és külön telepítésre. A fejlesztésnek nem feltétele a legújabb verzió megléte, egy korábban kiadott Eclipse a megfelelő Android SDK kiegészítéssel ugyanúgy használható. Érdekesség, hogy a Java mellett ActionScript nyelven is van lehetőség a fejlesztésre, ehhez az Adobe Flash Builder fejlesztőeszközre van szükség. A nyelv gyorsan tanulható, az elkészített alkalmazások minősége pedig semmiben nem tér el a Java nyelven fejlesztett applikációkétól. [59] A programból azonban csak a próbaverzió használható ingyenesen, a 30 nap letelte után meg kell vásárolni a szoftvert.
4.2.1. Az Eclipse használata Az Eclipse az egyik legkedveltebb fejlesztőkörnyezet, mely a számos kiegészítésnek és rugalmasságának köszönhetően teljes mértékben testre szabható. Az Android SDK telepítése után képes az alkalmazásokat egy emulátorban elindítani és támogatja az USB porton csatlakoztatott készüléken történő tesztelést is. Felhasználói felületének elemei igény szerint átméretezhetők és átrendezhetők. Az alapértelmezett képernyő 5 fő egységből tevődik össze (7. ábra). A felső menüsorban az Eclipse főbb funkciói érhetők el, valamint a különböző perspektívák közül választhatunk (Java, debug, DDMS, stb.). A bal oldali Package Explorer elemen az elérhető projektek láthatók, a középső panelen az éppen megnyitott állomány kódja szerkeszthető, a jobb oldali Outline segítségével pedig a szerkesztett kód főbb szakaszai találhatók, melyek segítségével szükség szerint ugrálhatunk a kódban. Az ablak alsó részén, a Console ablakban a program kimenete, valamint az esetleges hibaüzenetek jelenhetnek meg.
39
4. A fejlesztés lépései
7. ábra – Az Eclipse felhasználói felülete
Az Eclipse számos jól használható billentyűkombinációt támogat, melyeknek köszönhetően időt spórolhatunk a fejlesztés során. Ilyenek többek között a „kódgenerálás” (Ctrl + space), az importfix (Ctrl + Shift + O), az automatikus formázás (Ctrl + Shift + F), a forrásfájlok közötti váltás (Ctrl + F6), az átnevezés (Alt + Shift + R) vagy a típuskeresés (Ctrl + Shift + T). Javasolt továbbá az úgynevezett Save Action használata is, melynek segítségével
a
forrásfájl
mentésekor
az
Eclipse a beállításoknak
megfelelően
automatikusan végrehajt olyan műveleteket, mint például az importfix vagy a formázás.
4.2.2. Android SDK telepítése Az
Androidra
történő
alkalmazásfejlesztéshez
szükséges
SDK
(Software
Development Kit) a https://developer.android.com/sdk/index.html weboldalról tölthető le, a használt operációs rendszernek megfelelően. Az SDK egy olyan fejlesztői csomag, amely a fordításhoz szükséges eszközök mellett emulátort, dokumentációt, példaprogramokat és számos egyéb hasznos kiegészítőt is tartalmaz. A letöltött installer fájl telepíti a fejlesztőeszközöket, melynek következményeképp az Eclipse-en belül a Window fülön megjelenik egy Android SDK Manager és egy Android Virtual Device Manager menü. Előbbit elindítva egy felugró ablakban megtekinthetők a telepített csomagok, új komponensek tölthetők le, valamint itt lehet kiválasztani, hogy melyik Android verziót kívánjuk letölteni. Ez nagyon fontos lépés, hiszen kizárólag a telepített verzióknak megfelelő emulátorokat lehet létrehozni (8. ábra).
40
4. A fejlesztés lépései
8. ábra – Android SDK Manager
4.2.3. VDM beállítása, tesztelés Az elkészült alkalmazások tesztelés céljából egy emulátoron futtathatók, mely egy megfelelő konfiguráció megadásával indítható. A virtuális eszközt az Android Virtual Device Manager segítségével lehet beállítani a név, Android verzió, processzor-típus, képernyőadatok, memória, belső tárhely és SD-kártya méret megadásával (9. ábra).
9. ábra – Virtuális eszköz létrehozása
41
4. A fejlesztés lépései A megfelelő beállítást követően a virtuális eszköz elindítható (10. ábra). Ekkor a teljes operációs rendszer emulálása megtörténik, így működése a megszokottnál lassabb, azonban előnye, hogy az Android beépített alkalmazásait is tartalmazza.
10. ábra – Android-emulátor
Az emulátor ablakának bal felső sarkában, az eszköz neve mellett látható egy portszám, amelyen a virtuális eszköz kommunikál. Ezen keresztül különböző utasítások küldhetők neki, egy Telnet-klienssel például SMS és hanghívás is szimulálható. [60] Az Android lehetővé teszi az elkészült alkalmazások közvetlenül a készüléken történő tesztelését is, melyhez az eszköz beállításaiban, a Fejlesztői lehetőségek között, az USB-hibakeresési mód bekapcsolására van szükség. Ezután a készülék USB porton keresztül csatlakoztatható a számítógéphez, amely automatikusan telepíti az eszközillesztőszoftvert. Amennyiben ez nem történik meg, a szükséges driver a gyártó oldaláról is letölthető, és manuálisan telepíthető. Ezt követően az Eclipse-ben a Run paranccsal elindítható az alkalmazás. A fejlesztőkörnyezet ekkor már a csatlakoztatott készüléket is felkínálja, mint futtató eszközt, melynek kiválasztása után az applikáció azonnal elindul a készüléken. Ezzel egy időben lehetőség van az úgynevezett LogCat nézet elindítására is, melynek segítségével egy külön ablakban megtekinthetők a rendszer által küldött esetleges hibaüzenetek. A tesztelés ezen módjának nagy előnye, hogy az alkalmazást natív környezetében, egy kézzel fogható készüléken is megtekinthetjük működés közben, emellett futtatása is sokkal gyorsabb, mint egy virtuális eszközön.
42
5. Egy felhőszolgáltatást használó alkalmazás elkészítése
5. Egy felhőszolgáltatást használó alkalmazás elkészítése A következő fejezet egy Androidra fejlesztett alkalmazás elkészítésének lépéseit mutatja be, melyhez a Google Drive szolgáltatásait kívánom használni. Ennek oka, hogy mivel az Androidos készülékek funkcióinak kihasználásához elengedhetetlen egy Google fiók megléte, feltételezhető, hogy a készülék tulajdonosa rendelkezik saját Google Drive hozzáféréssel. Az általam fejlesztett alkalmazás használatát így jelentősen megkönnyíti majd, hogy a szinkronizációhoz nem lesz szükség újabb regisztrációra, a felhasználó a Google fiókazonosítókkal történő bejelentkezést követően a saját tárhelyére töltheti fel adatait, így biztosítva azok elérését további eszközeiről is.
5.1. Tervezés Az előkészítés során igyekeztem olyan alkalmazást tervezni, amelyre nagy igény mutatkozik, egyszerűen kezelhető és a mindennapi életben hasznos szolgáltatást nyújt. Ehhez a Google Play áruházban megtalálható applikációk választékát, az azokra érkezett értékeléseket, valamint saját és környezetem igényeit vettem figyelembe. Választásom egy személyi költségvetést nyilvántartó rendszerre esett, amely biztosítja a felhasználó számára, hogy adatait különböző készülékei között felhőszolgáltatás használatával szinkronizálni tudja.
5.1.1. Hasonló alkalmazások és hiányosságaik felkutatása A Google Play áruházban számos magyar és idegen nyelvű költségvetési alkalmazás található, azonban a vélemények alapján ezek legnagyobb hiányossága a szinkronizációs lehetőség hiánya. Az értékelésekből és hozzászólásokból egyértelműen kiderül, hogy sok felhasználó rendelkezik több készülékkel, vagy költségvetési applikáció lévén családtagokkal szeretné közösen használni a szoftvert, azonban az elérhető alkalmazások közül jelenleg sajnos csak nagyon kevés alkalmas arra, hogy a különböző eszközökön bevitt adatokat egymás között szinkronizálják. Számos letölthető program még biztonsági mentés funkcióval sem rendelkezik, annak ellenére, hogy egy pénzügyi adatokat tároló rendszer esetében ez elengedhetetlen lenne, hiszen az információk visszamenőleg csak igen nehezen, vagy egyáltalán nem pótolhatók. Ugyanezen okból kifolyólag azon alkalmazások sem tökéletesen megbízhatók, amelyek biztosítják a biztonsági mentést, hiszen az adatokat a készüléken tárolják, ami az applikáció meghibásodása esetén ugyan lehetőséget nyújt az adatok visszaállítására, azonban a készülék meghibásodása, sérülése vagy elvesztése esetén azok végleg elérhetetlenné válhatnak.
43
5. Egy felhőszolgáltatást használó alkalmazás elkészítése
5.1.2. A tervezett költségvetési alkalmazás bemutatása Az általam tervezett alkalmazás a felhőszolgáltatás használatával védelmet nyújt az adatoknak a felhasználón kívülálló okokból történő elvesztése ellen, emellett biztosítja a különböző készülékek közötti szinkronizáció lehetőségét is. Az alkalmazás a listanézeteknek köszönhetően áttekinthető, egyszerűen kezelhető felülettel rendelkezik, és mentes a futást lassító, valamint az applikáció méretét növelő, olyan felesleges funkcióktól, mint a diagramok és statisztikák. Fő funkciója a mindennapi bevételek és kiadások nyilvántartása, melyek havi bontásban, időrendben jelennek meg a képernyőn. A rögzített költségek módosíthatók és törölhetők, az aktuális egyenleg pedig egyben vagy akár számlánként is megtekinthető. A különböző számlák és költségkategóriák a felhasználó által is bővíthetők, szerkeszthetők vagy törölhetők, a szinkronizáció pedig a felhasználó igénye szerint engedélyezhető vagy letiltható.
5.2. Implementáció Az implementációhoz az Eclipse Kepler Service Release 2 verziót használom, API 10 és API 22 Android SDK kiegészítésekkel. Az újonnan létrehozott Android Application Project a Pénztárca nevet kapja, mely 3 csomagot tartalmaz. A kód áttekinthetőségének érdekében külön-külön csomagban kerülnek elhelyezésre a program alapvető funkcióit biztosító, az adatbázist létrehozó és kezelő, valamint a listanézeteket megjelenítő .java osztályok. A projekt létrehozását követően az első lépés AndroidManifest.xml fájl beállítása, melyben az applikáció nevének, verziójának és ikonjának, a felhasználói felület stílusának, valamint
a
nyitóképernyő
beállítása
mellett
megadhatók
a
minimális
rendszerkövetelmények és a szoftver használathoz szükséges jogosultságok is. A Google Drive igénybe vételéhez 3.0-ás, vagy annál újabb Android verzió szükséges, így az alkalmazás minimális rendszerkövetelménye a 11-es, míg a célrendszer a 22-es API lesz, mivel utóbbi a legújabb olyan Android verzió, amely már szélesebb körben elterjedt: <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="22" /> A szinkronizációs lehetőség használatához az applikáció számára a jogosultságok megfelelő beállításával biztosítani kell az internethez, a hálózat állapotához, valamint a fiókinformációkhoz történő hozzáférést:
44
5. Egy felhőszolgáltatást használó alkalmazás elkészítése <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> A fentieken túl a manifest állományban kötelezően ki kell jelölni az alkalmazás indításkor betöltődő Activityt. Ezt az android.intent.category.LAUNCHER konstans segítségével lehetséges:
5.2.1. A felhasználói felület és az action bar előkészítése A manifest állomány beállítása után a felhasználói felületek elkészítése következik. A különböző nézeteket a projekten belül a res/layout könyvtárban létrehozott XML állományok tartalmazzák. Minden képernyőnézethez külön XML forrás tartozik. A felületek szöveges elemeit a res/values/strings.xml fájlban létrehozott forrásokra történő hivatkozással szokás megadni, ezzel biztosítható az alkalmazás későbbi többnyelvűsítése. Hasonlóan érdemes a színeket és stílusokat is előre rögzíteni, így egy esetleges felületváltoztatás esetén elegendő csak az erőforrás állományt módosítani. A felhasználói felület fontos eleme az action bar (11. ábra), amely az applikáció fejlécének szerepét tölti be. Itt igény szerint elhelyezhető az alkalmazás ikonja, az aktuális képernyő címe, gyorsindító gombok, valamint egy legördülő menü a további szolgáltatásoknak. A Pénztárca alkalmazás action bar elemeit a res/menu/main.xml állomány tartalmazza. Itt kapott helyet az új költség felvitelére szolgáló gyorsindító gomb, valamint a fiókbeállításokat, a kategóriák és számlák kezelését,
45
11. ábra – Action bar
5. Egy felhőszolgáltatást használó alkalmazás elkészítése az összes tranzakció törlését, továbbá a névjegy információkat tartalmazó legördülő menü is. Az action bar definiálása a MainActivity osztály onCreateOptionsMenu(…) függvényében történik, míg az ikonokra és menüelemekre történő koppintás eseményeit az onOptionsItemSelected(…) metódus tartalmazza. A Pénztárca alkalmazás elindítását követően a com.penztarca.penztarca csomag MainActivity.java osztálya töltődik be, amely az Android FragmentActivity osztályának leszármazottja. A Fragmentek önálló életciklussal rendelkező Activityk, melyek használatával lehetőség nyílik az osztott képernyős megjelenítésre. Így más-más felhasználói felületet tervezhetünk a mobilkészülékek álló és fekvő nézetére, valamint a nagyobb képernyővel rendelkező táblagépekre.
5.2.2. Adatbázis létrehozása Az alkalmazás adatait a com.penztarca.database csomagban elhelyezett adatbázis tárolja. A Pénztárca alkalmazás működéséhez 3 táblára van szükség (12. ábra), melyek az előre definiált számlákat és kategóriákat, valamint a felhasználó által rögzített tranzakciókat tárolják. Mindegyik tábla rendelkezik egy _ID oszloppal, melyben az adatok elsődleges kulcsértéke található. A kulcsok egyediségét az AUTOINCREMENT kulcsszó biztosítja, melynek segítségével az SQLite maga látja el azonosítóval a rekordokat. A szinkronizáció megvalósításához minden táblának tartalmaznia kell egy SAVE_DATE oszlopot is, melyben az egyes rekordok utolsó módosításának időpontját tároljuk.
12. ábra – A Pénztárca alkalmazás adatbázis táblái
Az adatbázis létrehozása az SQLiteOpenHelper osztályból leszármaztatott DataBaseHelper osztály segítségével történik. Az SQLiteOpenHelper osztályból történő származtatás a konstruktoron kívül az onCreate() és az onUpgrade() absztrakt metódusok felüldefiniálását írja elő. Előbbi az adatbázis sémájának létrehozására szolgál, utóbbiban pedig az adatbázis verzióváltásával kapcsolatos feladatok kezelhetők. Az adatbázis használata az execSQL() és query() függvények valamelyik variánsának hívásával történik, a lekérdezések eredményein pedig egy rekordról rekordra lépő Cursor objektummal lehet
46
5. Egy felhőszolgáltatást használó alkalmazás elkészítése végigmenni. Az adatok beszúrása, módosítása és törlése a jól ismert INSERT, UPDATE, és DELETE parancsokkal lehetséges, a ContentValues osztály segítségével. [61] A Pénztárca alkalmazás előre definiált számlákat és költség-kategóriákat tartalmaz, melyek telepítéskor betöltődnek az adatbázisba. Az ehhez szükséges szöveges adatokat a res/values könyvtárban található account_types.xml és category_types.xml erőforrás állományok tartalmazzák. A táblák automatikus feltöltéséért a setDefaultValues() függvény felel, melyet az adatbázis létrehozásakor az onCreate() metódus hív meg: public void setDefaultValues(SQLiteDatabase db){ String saveDate = saveDateFormat.format(Calendar.getInstance().getTime()); for (int i=0; i
5.2.3. Az alkalmazás alapvető funkcióinak implementálása A felhasználói felületek és az adatbázis előkészítését követően az alkalmazás offline funkciónak implementálása következik. Az alapvető feladatok közé tartozik a felhasználó által rögzített pénzügyi tranzakciók havi bontásban, dátum szerint emelkedő sorrendben történő megjelenítése, azok módosítása vagy törlése, az új összeg felvitele, valamint a számlánkénti és együttes egyenlegek kiírása. További hasznos funkcióként
47
5. Egy felhőszolgáltatást használó alkalmazás elkészítése szolgál a kategóriák és számlák kezelésének lehetősége, valamint az összes tranzakció törlése, amely kiüríti a költségeket tároló adatbázis táblát. Első lépesként létre kell hozni a költségeket, számlákat és kategóriákat megvalósító osztályokat, melyek példányosításával objektumokként tárolhatók az információk. A Cost, Account és Category osztályok implementálják a Parcelable interfészt, amely biztosítja az alkalmazás-komponensek
közötti
információcserét.
Használatához
kötelezően
implementálni kell egy publikus, statikus, Parcelable.Creator típusú CREATOR adattagot is. Az egyenlegek példányosítása a Balance osztály segítségével történik. A létrehozott Cost, Account, Category és Balance elemek kezelése és listában történő megjelenítése a BaseAdapterből származtatott, com.penztarca.adapter csomagban elhelyezett
CostAdapter,
AccAdapter,
CatAdapter
és
BalanceAdapter
osztályok
segítségével történik. A getView(…) függvényen belül a LayoutInflater felel a lista egy sorának elrendezéséért, mely a megfelelő erőforrásra történő hivatkozással állítható be: LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.list_item, parent, false); A teljes lista kiírását a CostListFragment (13. ábra), AccountHandlerFragment (14. ábra), CategoryHandlerFragment (15. ábra) és BalanceListFragment osztályok biztosítják. Előbbi három esetében szükséges az onItemClickListener interfész implementálása, amely az elemekre történő rövid koppintások kezeléséért felel. Az onItemClick(…) metódus felüldefiniálását követően az elemre koppintás esetén egy dialógusablak jelenik meg, amely az adott elem módosításának lehetőségét biztosítja (16., 17. ábra). A dialógust és annak működését az aktuális listának megfelelően a CustomCostDialogFragment, a CustomAccountDialogFragment, valamint a CustomCategoryDialogFragment osztályok valósítják meg, melyek a DialogFragment osztály leszármazottai. Az onCreateDialog(…) függvény a dialógus szerkeszthető elemeinek helyére betölti az aktuális adatokat, melyek a felhasználó által tetszőlegesen módosíthatók. A dialógus bezárását követően a vezérlés az azt hívó folyamathoz kerül vissza.
48
5. Egy felhőszolgáltatást használó alkalmazás elkészítése
13. ábra – Költségek listanézete
14. ábra – Számlák listanézete
15. ábra – Kategóriák listanézete
Az egyes listaelemek hosszan történő lenyomva tartásának eredményeképp egy helyi menü jelenik meg, amely a listaelem törlésének lehetőségét biztosítja (18. ábra). A menü leírását a res/values könyvtárban található costmenu.xml fájl tartalmazza. A lenyomva
tartás
kezeléséhez
a
listát
megjelenítő
Fragment
onCreateView(…)
függvényének tartalmaznia kell a registerForContextMenu(…) sort, továbbá az osztályon belül felül kell definiálni a helyi menüt megjelenítő onCreateContextMenu(…), valamint az egyes menüelemek kiválasztásának hatására bekövetkező események megadására szolgáló
onContextItemSelected(…)
metódusokat.
Az
egyenlegek
esetében
ezek
használatára nincs szükség, mivel ez a lista csak információval szolgál a felhasználó számára, így elemei nem kattinthatók.
16. ábra – Költség módosítása
17. ábra – Kategória módosítása
49
18. ábra – Helyi menü az elem törléséhez
5. Egy felhőszolgáltatást használó alkalmazás elkészítése Az implementációs folyamat soron következő lépése az új listaelemek hozzáadásának megvalósítása. Az új pénzügyi tranzakciók rögzítését egy önálló Fragment, míg a számlák és kategóriák hozzáadását egy egyszerű dialógus biztosítja. Az új összeg felvétele az action bar „+” gombjára történő koppintás eredményeképp betöltődő NewAmount osztály segítségével lehetséges. A megjelenő Fragment
a
tranzakció
rögzítésének
megkönnyítése
és
gyorsítása
érdekében
alapbeállításként kiválasztja, hogy kiadást fogunk rögzíteni, beírja az aktuális dátumot, továbbá a kategória- és számla-kiválasztó menüből kijelöli az első elemet (19. ábra). Ezeket a felhasználó igény szerint módosíthatja, valamint meg kell adnia az új költség megnevezését és a pontos összeget is. A dátumra koppintva egy dialógusból választható ki a megfelelő dátum (20. ábra), amely az Android DatePickerDialog osztályának példányosítását követően a show() metódus hívásával kerül megjelenítésre. A mentés csak akkor lehetséges, ha minden mező kitöltésre került, ellenkező esetben az alkalmazás egy rövid felugró üzenettel jelzi, hogy melyik adat hiányzik. A Kiadás/Bevétel választógombok XOR kapcsolatban állnak egymással, így egyszerre kizárólag az egyik kijelölése lehetséges. Kiadás rögzítése esetén az összeg mínusz előjellel, míg bevétel hozzáadása esetén előjel nélkül jelenik meg a tranzakciós listában. Az összeg mező kizárólag számokat fogad el, egyéb karakterek beírása nem lehetséges.
19. ábra – Új tranzakció rögzítése
20. ábra – Dátumválasztó dialógus
21. ábra – Új kategória hozzáadása
A kategória és számla kiválasztását biztosító lenyíló menü elemei aszinkron módon, egy belső AsyncTask osztály segítségével töltődnek be. Ez biztosítja az adatok háttérben történő lekérdezését, melynek révén az alkalmazás akkor sem lassul le, ha
50
5. Egy felhőszolgáltatást használó alkalmazás elkészítése egyszerre nagyszámú adatot kell beolvasnia az adatbázisból. A háttérben történő futást a doInBackground(…) metódus biztosítja, amely a lekérdezett adatok listájával tér vissza. A számlatípusok lekérdezésének módját az alábbi kódrészlet szemlélteti. A kategóriák listájának elkészítése hasonló módon történik. protected List<String> doInBackground(Void... arg0) { List<String> accList = accDAO.getAccountNames(); return accList; } Az elkészített lista ezután átadásra kerül az onPostExecute(…) függvénynek, amely a kapott információkból elkészíti és megjeleníti a legördülő menüt: ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(activityWeakRef.get(), android.R.layout.simple_list_item_1, accounts); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); selectAccount.setAdapter(dataAdapter); Az új számla és kategória rögzítése a megfelelő listanézet alján megjelenő Új számla hozzáadása és Új kategória hozzáadása gombra koppintva lehetséges. A megjelenő dialógusablakban mindössze a megnevezés beírása szükséges, mely mező kitöltése természetesen itt is kötelező (21. ábra). A számlánként részletezett egyenleginformáció (22. ábra) a
tranzakciós
lista
alatt
elhelyezett,
egyenleg-
és
szinkronizációval kapcsolatos információkat tartalmazó sávra történő
koppintással
érhető
el.
Egy
szöveges
tartalmat
megjelenítő TextView elemet, vagy akár egy több elemet tartalmazó Layoutot az azt leíró XML állományban, az elem vagy
nézet
beállításával
paraméterének
android:clickable=”true” lehet
koppinthatóvá
tenni.
A
koppintásra
bekövetkező eseményeket – az egyszerű gombokhoz hasonlóan – az onClick(…) metódus törzsében tudjuk kezelni. A költségek, számlák, kategóriák és egyenleginformációk
22. ábra - Egyenlegek
listáinak lekérdezése az adatbázisból aszinkron módon történik a megjelenítése számlánként korábban már ismertetett módon, a belső AsyncTask osztály updateView() metódusának köszönhetően pedig a megjelenített lista minden egyes módosításkor azonnal frissül. A
51
5. Egy felhőszolgáltatást használó alkalmazás elkészítése dátumok és pénzösszegek mindenhol a készülék alapértelmezett nyelvi beállításainak megfelelően kerülnek kiírásra.
5.2.4. Kapcsolódás a Google Drive-hoz, adatbázis mentése a felhőbe A Google Drive-hoz történő csatlakozás biztosításának első lépése a bejelentkezési képernyő elkészítése. Az action bar Fiókbeállítás menüje indítja el a Login Page Activityt, mely a be- és kijelentkezéshez szükséges gombokat tartalmazza (23., 24. ábra).
23. ábra - Bejelentkezési képernyő
24. ábra - Kijelentkezési képernyő
A 23. és 24. ábrán látható képernyőnézetek egyazon XML fájlban kerülnek definiálásra, a két szöveg és két gomb közül pedig mindig csak az aktuális kapcsolódási állapotnak megfelelő látható. Erről a setVisiblity() metódus gondoskodik, mely elrejti a nem használt felületi elemeket a felhasználó elől, valamint biztosítja, hogy csak az aktív gomb legyen koppintható. Az isSignedIn boolean típusú adattag ellenőrzi, hogy a felhasználó be van-e már jelentkezve. Értéke a MainActivity által, a LoginPage Activity indításkor, az intent.putExtra(…) metódusban átadott információ alapján állítódik be. isSignedIn = getIntent().getExtras().getBoolean("connected"); private void setVisiblity() { if (isSignedIn == false) { textIn.setVisibility(View.VISIBLE); btnLogin.setVisibility(View.VISIBLE); textOut.setVisibility(View.GONE); btnLogout.setVisibility(View.GONE); btnLogin.setOnClickListener(this); } else if (isSignedIn == true) { … } } 52
5. Egy felhőszolgáltatást használó alkalmazás elkészítése Az aktuális kapcsolódási állapotot el kell menteni az alkalmazás számára, hogy a program az újraindítást követően felhasználói beavatkozás nélkül is képes legyen automatikusan bejelentkezni. Az applikáció beállításainak és állapotainak tárolására a Preferences keretrendszert használjuk, melynek SharedPreferences állományába írjuk be futás közben a szükséges kulcs – érték párokat. Ennek megfelelően a kapcsolódási állapotot egy editor segítségével sikeres bejelentkezés esetén igaz, kijelentkezéskor pedig hamis értékre állítjuk, az alábbi kódrészletnek megfelelő módon: static SharedPreferences settings; settings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("connected", true); editor.commit(); A Google kliens létrehozása a MainActivity osztály onCreate(…) metódusában történik. A Drive API az alkalmazás megfelelő jogosultságainak beállításával együtt biztosítja a készüléken tárolt Google fiók hozzáférhetőségét, így nem szükséges új azonosítókat létrehozni a szinkronizáció használatához. Az első bejelentkezéskor a felhasználó választhat az eszközön tárolt fiókok közül, melyet az alkalmazás a korábban már ismertetett módon eltárol a SharedPreferences fájlban. A továbbiakban ez lesz az applikáció számára kijelölt alapértelmezett fiók, amelynek felhőtárhelyén az adatbázis másolata tárolásra kerül. A kliens létrehozásakor szükséges megadni a Drive-on található fájlokhoz, valamint az alkalmazás saját mappájához történő hozzáféréshez szükséges engedélyeket, továbbá a hitelesítés módját is: private GoogleApiClient mGoogleApiClient; protected void onCreate(Bundle savedInstanceState) { … mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Drive.API)
.
.addScope(Drive.SCOPE_FILE) .addScope(Drive.SCOPE_APPFOLDER) .addApi(Auth.CREDENTIALS_API) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this).build(); … } 53
5. Egy felhőszolgáltatást használó alkalmazás elkészítése A kapcsolódási kísérlet az mGoogleApiClient.connect() metódus hívásával kezdődik, melynek használatához kötelezően felül kell definiálni a sikeres kapcsolódás esetén
hívásra
kerülő
onConnected(…),
onConnectionSuspended(…),
valamint
a a
kapcsolódás
megszakítását
vezérlő
hibákat
lekezelő
kapcsolódási
onConnectionFailed(…) függvényeket. Utóbbi törzsében külön kell kezelni az olyan hibákat, amelyek az alkalmazáson belül, akár egy egyszerű újrakapcsolódással megoldhatók (például: hálózati hiba), valamint azokat, melyek esetén a bejelentkezés egyáltalán nem lehetséges (például: hitelesítési probléma). Ekkor egy hibaüzenet jelzi a felhasználó
számára
a
kapcsolódási
hiba
okát.
A
kijelentkezés
az
mGoogleApiClient.disconnect() metódus hívásával lehetséges. Az onConnected(…) függvény törzsében adható meg azon utasítások sorozata, amelyek
a
sikeres
bejelentkezést
követően
mennek
végbe.
A
szinkronizáció
megvalósításához elsőként ellenőrizni kell, hogy az alkalmazás korábban használta-e már a Drive-ra mentett adatbázist. A felhőn tárolt adatbázis-másolat azonosítóját az első megnyitáskor tároljuk a SharedPreferences állományban, így a további használatkor elegendő a DriveId meglétének ellenőrzése, mely alapján a fájl azonnal hozzáférhető. Amennyiben az adott készülékről még nem történt bejelentkezés, az első kapcsolódáskor vizsgáljuk, hogy létezik-e már a Penztarca_backup nevű állomány a Drive tárhelyen. Ehhez egy lekérdezéssel végigtallózzuk a felhőben tárolt állományokat, és névegyezés esetén elmentjük annak azonosítóját. A Drive ugyan megengedi az azonos megnevezésű állományok tárolását, azonban az első bejelentkezéskor történő ellenőrzés biztosítja, hogy ha már egy másik készülékről létrehoztuk az adatbázis-másolatot, akkor az újonnan csatlakozott eszköz is azt a fájlt használja. Fontos, hogy a felhőbe mentett állományok mindegyike készülékenként egyedi DriveId azonosítóval rendelkezik, így a keresett fájl beazonosításához a forrás azonosítója szükséges, amely a getResourceId() metódus hívásával érhető el. Ez alapján a Drive.DriveApi.fetchDriveId(…) függvény segítségével kérhető le az egyedi DriveId azonosító, mely a fájl megnyitásához szükséges. Ha a Drive-on történő keresés sem hozott eredményt, azaz korábban még nem használtuk a szinkronizációs szolgáltatást, akkor létre kell hozni a Penztarca_backup állományt. A megnevezés és kiterjesztés megadása mellett ki kell jelölni azt a könyvtárat, amelyben a fájl létrehozásra kerül. Mivel különböző eszközökről kívánjuk hozzáférhetővé tenni az adatbázis-mentést, nem javasolt az alkalmazás saját mappájának használata. Ennek oka, hogy egy a Google által is elismert hiba miatt az alkalmazás újratelepítését követően az AppFolder szinkronizációja nem működik megfelelően. Emiatt az alkalmazás 54
5. Egy felhőszolgáltatást használó alkalmazás elkészítése bejelentkezéskor nem találja a korábban használt állományt, vagyis újat hoz létre, ami lehetetlenné teszi az applikáció adatainak további szinkronizációját. Az adatbázis-másolat tárolásához tehát vagy egy új, általunk létrehozott mappát, vagy a tárhely gyökérkönyvtárát érdemes használni. A Pénztárca alkalmazás esetén a mentés a gyökérben történik, ahol a Penztarca_backup állomány csillaggal ellátva jelenik meg (25. ábra).
25. ábra – Penztarca_backup fájl megjelenítése a Google Drive tárhelyen
A fájl létrehozásának módját a következő kódrészlet tartalmazza: String mimeType = MimeTypeMap.getSingleton().getExtensionFromMimeType("db"); MetadataChangeSet changeSet = new MetadataChangeSet.Builder() .setTitle("Penztarca_backup") .setMimeType(mimeType) .setStarred(true).build(); Drive.DriveApi .getRootFolder(mGoogleApiClient) .createFile(mGoogleApiClient, changeSet, result.getDriveContents()) .setResultCallback(fileCallBack); Az újonnan létrehozott állományt ezután az mfile.open(mGoogleApiClient, DriveFile.MODE_WRITE_ONLY, null) utasítással megnyitjuk írásra, feltöltjük a helyi adatbázis tartalmával, majd lezárjuk a kapcsolatot. Az adatbázis-mentés tartalmát a Google Drive által biztosított SQL Database Browser segítségével tudjuk ellenőrizni (26. ábra).
26. ábra – A feltöltött adatbázis fájl tartalmának ellenőrzése
55
5. Egy felhőszolgáltatást használó alkalmazás elkészítése
5.2.5. Szinkronizáció A szinkronizáció során a felhőbe mentett adatbázis adatait kell összevetni a helyi adatbázisban tárolt információkkal. Ehhez szükség lesz egy új adatbázisra, ahol a Drive-ról letöltött információkat átmenetileg tárolni tudjuk. A com.penztarca.database csomagban létrehozzuk a DataBaseSyncHelper osztályt, amely a costdb_backup adatbázist valósítja meg, valamint az AccSyncDAO, CatSyncDAO és CostSyncDAO osztályokat, amelyek a táblákon végzett műveleteket biztosítják. Végül a CostDBDAO osztályt kiegészítjük az új adatbázis megnyitására és bezárására vonatkozó utasításokkal. A costdb_backup adatbázis szerkezetileg tökéletes másolata az eredeti costdb adatbázisnak, azonban előre betöltött adatokat nem tartalmaz. A szinkronizáció első lépéseként a felhőben tárolt adatbázist megnyitjuk olvasásra, majd az abban található adatokkal feltöltjük a costdb_backup adatbázist. Ezzel egy időben a Drive-on megnyitott állomány metainformációiból lekérjük az utolsó módosítás dátumát, és elmentjük a SharedPreferences fájlba. A következő lépés a két adatbázisban található táblák adatainak soronként történő összevetése. Az adatok ellenőrzését és a szükséges módosítások elvégzését a DatabaseSync osztály biztosítja, mely a szinkronizáció megkezdése előtt letárolja a helyi adatbázis utolsó módosításának időpontját is. Az információk összehasonlítása listák segítségével történik, melyeket egy-egy adatbázis tábla adataival töltünk fel. Az adatok lekérdezése és a listák felöltése a doInBackground(…) metódus használatának eredményeképp a háttérben fut. Az információk a listákban az adatokat lekérdező függvény rendezésének köszönhetően _ID szerint növekvő sorrendben kerülnek tárolásra. A listák elkészültét követően az onPostExecute(…) metódus meghívja a syncArrayLists() függvényt, amely a tényleges szinkronizációt végzi. A szinkronizáció során két egymásba ágyazott while ciklus segítségével elsőként azonos _ID-val rendelkező elemeket keresünk az egyforma objektumokat tartalmazó listákban. Amennyiben egyezést találunk, összevetjük a két elem utolsó módosításának dátumát, és az újabbat tároljuk a helyi adatbázisban. Ezzel egy időben mindkét listából töröljük az egymással megegyező elemeket. A ciklusok lefutása után ellenőrizzük, hogy maradt-e elem a listákban. Ha a helyi adatbázis adatait tartalmazó listák valamelyike nem üres, és a helyi adatbázis utolsó módosításának dátuma régebbi, mint a felhőből letöltött adatbázisé, akkor az azt jelenti, hogy az utolsó szinkronizáció óta egy másik készüléken már törlésre kerültek az elemek. Ezeket tehát törölni kell a helyi adatbázisból is. Hasonlóan, ha a letöltött adatbázis adatait 56
5. Egy felhőszolgáltatást használó alkalmazás elkészítése tartalmazó listák valamelyike nem üres, és a helyi adatbázis utolsó módosításának dátuma régebbi, mint a felhőből letöltött adatbázisé, akkor az utolsó szinkronizáció óta egy másik készüléken új elemek kerültek hozzáadásra, melyeket el kell menteni a helyi adatbázisba is. Új elem hozzáadása esetén nagyon fontos, hogy az _ID is a letöltött információk szerint kerüljön tárolásra, hiszen ha a rendszer automatikusan rendel _ID-t az elemhez, akkor a két elem azonosítói nem fognak megegyezni. A DatabaseSync Activity befejezését követően a vezérlés visszatér a MainActivityhez, ahol a felhőben tárolt fájlt megnyitjuk írásra, és felülírjuk a helyi adatbázis frissített adataival. Végül minden adatot törlünk a costdb_backup adatbázis tábláiból. A Pénztárca alkalmazás kapcsolódott állapotban minden indításkor és adatmódosításkor elvégzi a szinkronizációt.
5.3. A futtatható apk állomány létrehozása Az alkalmazás összes funkciójának implementálását követően előállítható az apk telepítő fájl. Az Eclipse-ben a Package Explorer panelen belül jobb gombbal rákattintunk a projekt nevére, megnyitjuk az Export… menüt, majd a felugró ablakban kiválasztjuk az Android/Export Android Application lehetőséget (27. ábra). A tovább gombra kattintva meg kell adni a projekt nevét, majd alá kell írni az alkalmazást a korábban előállított titkos kulcshoz tartozó jelszó megadásával. Amennyiben még nem rendelkezünk ilyennel, ugyanebben az ablakban tudjuk létrehozni az azonosítókat (28. ábra). A jelszó beírását követően meg kell adni, hogy hová szeretnénk menteni az elkészült apk állományt, és itt tekinthetjük át a projekt egyedi azonosítóit is (29. ábra).
27. ábra – Android projekt exportálása
Az
alkalmazás
29. ábra – Az alkalmazás egyedi azonosító adatai
28. ábra – Titkos azonosítók létrehozása
fejlesztői
oldalon
történő
regisztrációja
a
https://console.developer.google.com oldalon történik. A regisztrációt és bejelentkezést 57
5. Egy felhőszolgáltatást használó alkalmazás elkészítése követően azonnal létrehozható az új projekt, melyhez a konzolon további fontos kiegészítések rendelhetők. A Google Drive szinkronizáció használatához az API Manager Overview menüjében engedélyezni kell a Drive API-t, majd a Credentials menüben az OAuth client ID 2.0 használatával létre kell hozni egy kliens azonosítót az alkalmazáshoz, amely az applikáció Google fiókhoz való hozzáférését biztosítja. Ennek során ki kell választani az alkalmazás típusát (webes alkalmazás, Androidra telepített alkalmazás, stb.), végül meg kell adni az apk állomány létrehozása során kapott egyedi SHA1 azonosítót és az AndroidManifest.xml állományban beállított csomagnevet (30. ábra).
30. ábra – OAuth client ID 2.0 kliens létrehozása a Google fiókba történő bejelentkezéshez
A fejlesztői módban történő teszteléshez külön OAuth client ID 2.0 klienst kell létrehozni, az ehhez szükséges, Android SDK által automatikusan generált SHA1 azonosító az Eclipse Window/Preferences/Android/Build menüjében található meg.
5.4. Tesztelés A
kifejlesztett
applikáció
tesztelését
a
valós
megjelenítés
és
sebesség
érzékelhetősége érdekében virtuális eszköz helyett saját mobilkészülékeimen végzem el, USB porton csatlakoztatva, hibakeresési módban, valamint az apk állományt telepítve, normál üzemmódban is. Ehhez egy 4.2-es Androidot futtató, 4,3 colos érintőkijelzővel rendelkező Sony Xperia L okostelefon, valamint egy 5.0-ás Android verziójú, 5,1 colos kijelzővel ellátott Samsung Galaxy S5 készülék áll rendelkezésemre.
58
5. Egy felhőszolgáltatást használó alkalmazás elkészítése
5.4.1. Offline funkciók tesztelése Az alkalmazás első indításakor mindkét készüléken azt tapasztalom, hogy a tranzakciós lista teljesen üres, az egyenleg pedig „0 Ft”. A számlánkénti egyenleg megtekintésekor a „Nincs megjelenítendő elem.” üzenet megfelelően megjelenik. A Számlák kezelése és Kategóriák kezelése menükben az előre definiált elemek mindegyike abc sorrendben listázva van. A tesztelést néhány új költség hozzáadásával kezdem. Az „Új összeg felvétele” nézet az előre beállított értékekkel indul el, ennek megfelelően a „Kiadás” gomb ki van jelölve, az aktuális dátum be van írva, és kiválasztásra került a név szerinti sorrendben első kategória és számla. Ellenőrzöm, hogy a „Kiadás” és „Bevétel” gombok kiválaszthatók-e egyszerre, továbbá hogy a dátumra koppintva megjelenik-e a dátumválasztó dialógus. Utóbbi esetében különböző dátumokat kiválasztva tesztelem, hogy hibátlanul beírja-e az alkalmazás a kívánt időpontot a megfelelő mezőbe. A legördülő listákban megvizsgálom, hogy minden kategória és számla feltüntetésre került-e, majd különböző elemek kiválasztásával tesztelem a mező kitöltését. Ezt követően a mentés gombra kattintva ellenőrzöm, hogy hiányzó adatokkal sikerül-e elmenteni a költséget. A megnevezés hiányában azonnal a „Hiányzó megnevezés!” üzenetet kapom, üres összeg mező esetén pedig az „Add meg az összeget!” figyelmeztetés jelenik meg. Nyugtázom, hogy a mentés sikertelensége esetén sem záródik be az „Új összeg felvétele” nézet, az applikáció vár a hiányzó adatok pótlására. Végül megpróbálok az összeg mezőbe nem numerikus karaktereket írni (aminek nem szabad sikerülni). Megfigyelhető, hogy a 5.0-ás Androidot futtató készüléken az integer adatot váró „Összeg” mezőbe történő íráskor egy kizárólag számokat tartalmazó billentyűzet jelenik meg, míg a 4.2-es Android rendszer billentyűzetén minden karakter megjelenítésre kerül, annak ellenére, hogy a mezőbe ezzel is csak számokat lehet írni. Az adatok kitöltését követően elmentem a költséget, és ellenőrzöm a listaelem megjelenítésének helyességét az elrendezés és nyelvi beállításoknak megfelelő formátum szempontjából. Néhány további tranzakció felvitelét követően ellenőrzöm, hogy a listaelemek a hozzáadás időpontjától függetlenül dátum szerint növekvő sorrendben követik-e egymást, továbbá, hogy a kiadások és bevételek a megfelelő előjellel kerülnek-e rögzítésre. Ellenőrzöm az „Új összeg felvétele” nézet „Mégse” gombjának megfelelő működését is, melynek hatására a nézet bezáródik és újra a kezdőképernyő jelenik meg. Végül megvizsgálom, hogy a tranzakciós lista dátumválasztó gombjai megfelelően működnek-e, havi bontásban lapozható-e a lista, illetve a dátumra kattintva kiválasztható-e akár egy távolabbi időpont is. 59
5. Egy felhőszolgáltatást használó alkalmazás elkészítése Ezt követően tesztelem, hogy az összes és számlánkénti egyenlegek lekérdezése és kiírása megfelelően működik-e. Az egyenlegek helyességét a rögzített költségek összegeinek manuális összeadásával ellenőrzöm, és vizsgálom, hogy a számlánként listázott egyenlegek esetén minden olyan számla megjelenik-e, amelyhez már valamilyen tranzakciót hozzárendeltem. A tesztelés következő fázisában a módosítás funkciót vizsgálom. Az egyes költségekre koppintva ellenőrzöm, hogy a dialógusban minden mező megfelelően ki van-e töltve, továbbá az új összeg hozzáadása esetén ismertetett módon tesztelem a gombokat, legördülő menüket, az összeg mező nem numerikus adatokkal való kitöltését, valamint az üresen hagyott mezők esetén megjelenő hibaüzeneteket. A módosítás elmentését követően vizsgálom, hogy a tranzakciós lista az új adatoknak megfelelően frissült-e. A rögzített költségek törlését egyesével tesztelem, ellenőrzöm a helyi menü elemeinek működését, valamint törlés esetén a tranzakciós lista frissítését. Ezután az action bar menüjének Tranzakciók törlése elemét kiválasztva megvizsgálom a megerősítő képernyő megjelenítésének helyességét, valamint a „Mégse” gomb megnyomásának hatására a kezdőképernyőre történő visszatérés folyamatát, végül a „Törlés” gombra koppintva ellenőrzöm, hogy az összes rögzített költség törlésre került-e az adatbázisból. A „Kategóriák kezelése” és „Számlák kezelése” menükben a költségekhez hasonlóan vizsgálom a listanézet megjelenítését, az egyes listaelemek módosítását és törlését, valamint az új listaelem felvitelét. Itt is ellenőrzöm, hogy hiányos adatok megadása esetén megjelenik-e a figyelmeztető üzenet és várakozik-e a dialógus az információ pótlására. A kategória- és számlalista módosításait követően külön tesztelem, hogy az „Új összeg felvétele” nézet lenyíló menüiben megfelelően módosult-e a választható elemek listája. Az offline funkciók tesztelése során minden egyes nézetben ellenőriztem az action baron megjelenő címet, valamint a dialógusok fejlécében kiírt információkat is.
5.4.2. Szinkronizációs szolgáltatás tesztelése A szinkronizáció tesztelését a Google fiókkal történő bejelentkezéssel kezdem. A bejelentkezés gombra koppintva egy dialógus jelenik meg, amelyből kiválasztom a használni kívánt fiókot. Néhány másodperc múlva egy felugró üzenet jelzi a kapcsolódás sikerességét. Ellenőrzöm, hogy létrejött-e az adatbázis adatait tartalmazó fájl a Drive tárhelyen, és annak tartalma megegyezik-e a készüléken tárolt információkkal. A Fiókbeállítások menüben ekkor a kijelentkezésről tájékoztató szöveg és a „Kijelentkezés”
60
5. Egy felhőszolgáltatást használó alkalmazás elkészítése gomb látható. A gombra kattintva a készülék kijelentkezik a fiókból, és újra a bejelentkezési információk láthatók a menüben. Újrakapcsolódáskor tesztelem, hogy a bejelentkezés automatikus-e, tehát a fiókot nem kell újra kiválasztani. Ezt az alkalmazásból kilépve, majd azt újra elindítva is ellenőrzöm. A készüléken kapcsolódott állapotban egyesével törlök, módosítok és hozzáadok egy-egy számlát, kategóriát és költséget, a változásokat pedig folyamatosan ellenőrzöm az SQL Database Browser segítségével. Ezután kijelentkezem a fiókból, és több, különböző módosítást végzek az adatokon. Újra bejelentkezek, és ellenőrzöm, hogy minden adat szinkronizálásra került-e. Ezt követően egy másik eszközre is feltelepítem az alkalmazást. Indítást követően vizsgálom, hogy azt a fájlt nyitotta-e meg olvasásra, amelyet a másik készülék hozott létre a tárhelyen. Az újonnan csatlakoztatott készüléken megvizsgálom, hogy az adatok megegyeznek-e a másik eszközön tárolt információkkal. Mindkét eszközön módosítom az adatokat és ellenőrzöm, hogy a szinkronizáció során minden adat megfelelően módosult-e a másik készüléken. Leállítom az internet kapcsolatot és ellenőrzöm, hogy hogyan reagál az alkalmazás a változtatásokra. Azt tapasztalom, hogy hibaüzenet nem érkezik, a szinkronizáció pedig megtörténik, amint újra van internetkapcsolat. A következő lépés az alkalmazás viselkedésének vizsgálata abban az esetben, ha a Penztarca_backup fájl törlésre kerül a Google Drive tárhelyről. Ebben az esetben sajnos adatvesztés lehetséges, amire figyelmeztetni kell a felhasználót, valamint fel kell készíteni az alkalmazást a fájl hiányának kezelésére. Amennyiben nem sikerül megnyitni a keresett állományt, az alkalmazás üzenetet küld a felhasználónak arról, hogy hiányzik a biztonsági mentés és adatvesztés történhet. Ezzel egy időben az applikáció törli az elmentett DriveId-t a SharedPreferences fájlból, hiszen annak elérése a továbbiakban nem lehetséges. Ennek eredményeképpen a következő bejelentkezéskor az alkalmazás új Penztarca_backup fájlt hoz létre az aktuális adatottal, a további készülékeken az utolsó szinkronizáció óta végbement változások azonban ebben az esetben sajnos elvesznek. Ugyanez a folyamat kezeli azt az esetet, ha a felhasználó szándékosan leválasztja az alkalmazást a Drive fiókról. Ekkor azonban a gyökérkönyvtárban tárolt eredeti fájl nem kerül törlésre, így a duplikáció miatt a továbbiakban probléma lehet a szinkronizációval.
61
5. Egy felhőszolgáltatást használó alkalmazás elkészítése
5.5. Továbbfejlesztési lehetőségek Szakdolgozatom témája a felhőszolgáltatások bemutatása és egy felhőszolgáltatást használó mobilalkalmazás elkészítése, így a Pénztárca applikáció fejlesztése során célom elsősorban egy könnyen kezelhető, alapszintű szoftver felépítése volt, mely révén egy egyszerű alkalmazás implementálásának lépései mellett bemutatható a hálózati kapcsolódás, a Google Drive fiókba történő bejelentkezés, valamint az adatok szinkronizációjának folyamata is. Emiatt kisebb hangsúlyt fektettem a felhasználói élmény fokozására, továbbá az olyan funkciók beépítésére, amelyek nem kapcsolódnak szorosan a felhőszolgáltatás használatának témaköréhez. Az alkalmazás továbbfejlesztésére vonatkozó elképzeléseim között szerepel egy új felhasználói felület elkészítése nagyméretű képernyőkre, mely révén táblagépekre optimalizálva jelennének meg az adatok a 7 colosnál nagyobb kijelzőn. Emellett érdemes lenne az álló és fekvő nézetekre külön-külön felületet létrehozni, így fekvő nézetben a képernyő felső és alsó részén megjelenő információk nem takarnák el a megjelenített lista egy részét. A fejlesztés során használt Fragmentek használatával kialakíthatók az eltérő nézetek. A nagyobb célközönség elérése érdekében javasolt az alkalmazás többnyelvűsítése, mely az erőforrás állományok használatával már előkészítésre került. A strings.xml állományban tárolt szöveges adatok könnyedén lefordíthatók különböző nyelvekre, ezek használatához pedig mindössze egy új values könyvtárra van szükség, ahol a lefordított adatokat tartalmazó strings.xml állományok tárolásra kerülnek. A res mappában létrehozott új values könyvtár nevét ki kell egészíteni az adott nyelv ISO kódjával (például: valuesen), így az applikáció a készülék nyelvi beállításainak megfelelő könyvtárból olvassa be a szöveges adatokat. A többnyelvű források elkészítését követően további fejlesztési lehetőség lehet a nyelv és a valutanem alkalmazáson belüli választhatóságának biztosítása, így a felhasználó szabadon személyre szabhatná az applikációt. Az új költségek rögzítését érdemes lenne kiegészíteni egy olyan funkcióval, amely a számlák közötti átvezetést kezeli. Az alkalmazás jelenlegi verziójában egy készpénzfelvétel csak úgy rögzíthető, hogy az összeget kiadásként vesszük fel a folyószámlán, majd külön tételként, bevétel megjelöléssel rögzítjük a készpénz számlán. Ezt egyszerűsíthetné az új szolgáltatás, mely révén mindössze a forrás és célszámla, valamint az összeg megadására lenne szükség, mely információkból az applikáció automatikusan elkészítené a bevétel és kiadás tételeket a megfelelő számlákhoz.
62
5. Egy felhőszolgáltatást használó alkalmazás elkészítése Szintén az összegek rögzítését könnyítené meg a felhasználó számára, ha lehetőség lenne ismétlődő tranzakciók felvitelére. A funkció az adott költség részleteinek előre történő megadása mellett lehetőséget biztosítana egy fix ismétlődési gyakoriság beállítására is, és az alkalmazás minden fordulónapon automatikusan rögzítené az így létrehozott tranzakciót. A felhasználói felület fejlesztése, valamint az új szolgáltatások beépítése mellett a lehető legnagyobb biztonság elérésére kell törekedni, hiszen az alkalmazás érzékeny adatokat tárol és hozzáfér a Google Drive fiókhoz is. Az információk illetéktelen kezekbe kerülésének elkerülése érdekében jelszóval lehetne védeni az applikációt, mely funkció természetesen igény szerint ki- és bekapcsolható lenne, azonban használatával még nagyobb biztonságot nyújtana a felhasználó számára. A szinkronizációs szolgáltatás biztonságosabb lenne, ha az alkalmazás saját mappájában lehetne tárolni az adatbázis másolatát, így a felhasználó közvetlenül nem férne ahhoz hozzá, mindössze az applikáció által felhasznált tárhely méretét tekinthetné meg. A Google a Play szolgáltatások egy későbbi frissítésével ígérte az ehhez kapcsolódó szinkronizációs hiba javítását, ha ez megtörténik a biztonsági mentést érdemes lenne a rejtett AppFolderben tárolni a Drive gyökérkönyvtára helyett.
63
Összegzés
Összegzés Dolgozatom
részletesen
bemutatta
a
jelenleg
elterjedten
használt
felhőszolgáltatásokat és mobil operációs rendszereket, összehasonlította azokat többféle szempont szerint. Ismertette egy Androidra tervezett alkalmazás elkészítésének menetét és az ehhez szükséges fejlesztőeszközöket. Végül részletesen bemutatta egy felhőszolgáltatást használó applikáció elkészítésének lépéseit a hasonló alkalmazások felkutatásától a tervezésen és implementáción át egészen az elkészült funkciók teszteléséig. Az elkészült alkalmazás megfelel a tervezett programnak, az alapvető működéshez szükséges összes szolgáltatás megvalósult. Az applikáció alkalmas a különböző pénzügyi tranzakciók tárolására és nyilvántartására, egyszerűségének köszönhetően könnyedén használható. Az offline funkciók egyformán működnek különböző készülékeken és Android verziókon, emellett az első tesztek alapján a szinkronizációs szolgáltatás működése is megfelel az elvárásoknak. A fejlesztés során elsősorban a szinkronizáció megvalósítása közben merültek fel nehézségek, mivel a Google dokumentációja a Drive szolgáltatások használatára vonatkozóan némileg hiányos, nem tér ki minden részletre, és az egyes hibajelenségek oka is csak nehezen deríthető ki. Nagyon hasznos azonban, hogy a stackoverflow.com weboldalon a Google programozói is válaszolnak a felmerült kérdésekre, továbbá a github.com oldalon számos mintaprogrammal és azok leírásával segítik a fejlesztők munkáját. Összességében sikerült az elsődlegesen kitűzött célokat megvalósítani, néhány kisebb fejlesztést és a szinkronizációs szolgáltatás hosszabb távú tesztelését követően pedig a Play áruházban is szeretném publikálni az elkészült applikációt, mely révén a felhasználók visszajelzései alapján is tovább tökéletesíthető az alkalmazás.
64
Summary
Summary My thesis provided a detailed description of today’s most popular cloud services and mobil operating systems, compared them to each other in many different ways. It showed the mode of making an application for Android platform, and the usage of the neccessary development tools. Finally, it presented the steps of developing an application, which uses some cloud services, from the seeking of similar programs through the designing and implementation to the testing of implemented functions. The completed application meets the prior requirements, all the services and functions needed for the basic operation were realized. It can be used for storing and registering of different financial transactions, it’s handling is very easy due to it’s simplicity. The offine functions work in the same way on the different devices and Android versions, and according to the first tests the operation of synchronization service also measure up to the expectations. During the development, difficulties occured mostly in connection with the synchronization, as the Google’s documentation about the usage of Drive services is slightly defective, it does not describe all details, and the cause of some failures can be detected only very hardly. However, it is really useful that the programmers of Google replies the raised questions on the stackoverflow.com website, moreover they help the work of developers with many sample programs and documentations on the github.com webpage. All things considered, the execution of the appointed objects was successful, so after some small development and a longer-term testing of synchronization services I would like to publish the application in Google Play Store, this way further improvements can be made through the feedback of users.
65
Irodalomjegyzék
Irodalomjegyzék [1] Farkas Bálint, Kovács Gábor, Király István, Turóczy Attila, Kőnig Tibor, Érsek Attila, Safranka Mátyás, Fülöp Dávid, Pellek Krisztián, Kiss Balázs: Windows Azure lépésről lépésre, Jedlik Oktatási Stúdió, 2013, ISBN: 978-615-5012-21-1 [2] Üdvözlet a fedélzeten – a felhő megjelenése az üzleti életben (http://www.hrportal.hu/hr/udvozlet-a-fedelzeten-a-felho-megjelenese-az-uzleti-eletben20141027.html) [3] Box UK | Free Cloud Storage, Secure Content & Online File Sharing (https://www.box.com) [4] Microsoft OneDrive – fájlok elérése bárhol (https://onedrive.live.com/about/hu-hu/) [5] Dropbox (https://www.dropbox.com) [6] SugarSync | Cloud File Sharing, File Sync & Online backup From Any device (https://www.sugarsync.com/index2.html) [7] The Bitcasa Cloud Storage Platform (https://www.bitcasa.com) [8] iCloud Storage Pricing – Apple Support (https://support.apple.com/en-us/HT201238) [9] Az iCloud rendszerkövetelményei – Apple Támogatás (https://support.apple.com/hu-hu/HT4759) [10] Drive tárhely (https://www.google.com/settings/storage) [11] Microsoft - Wikipédia (http://hu.wikipedia.org/wiki/Microsoft) [12] A OneDrive rendszerkövetelményei – OneDrive (http://windows.microsoft.com/hu-hu/onedrive/system-requirements) [13] Code of Conduct – Microsoft Research Services (http://research.microsoft.com/en-us/um/legal/codeofconduct.htm) [14] Microsoft Azure: felhőalapú számítási platform és szolgáltatások (http://azure.microsoft.com/hu-hu/) [15] Farkas Bálint, Kovács Gábor, Király István, Turóczy Attila, Kőnig Tibor, Érsek Attila, Safranka Mátyás, Fülöp Dávid, Pellek Krisztián, Kiss Balázs: Windows Azure lépésről lépésre, Jedlik Oktatási Stúdió, 2013, ISBN: 978-615-5012-21-1 [16] Apple Inc. - Wikipédia (http://hu.wikipedia.org/wiki/Apple_Inc.) [17] System requirements for iCloud – Apple Support (https://support.apple.com/en-us/HT204230) [18] iCloud terms and conditions (http://www.apple.com/legal/internet-services/icloud/en/terms.html)
66
Irodalomjegyzék [19] Google Inc. - Wikipédia (http://hu.wikipedia.org/wiki/Google_Inc.) [20] System requirements and browsers – Drive Help (https://support.google.com/drive/answer/2375082?hl=hu&ref_topic=14940) [21] Google Általános Szerződési Feltételek – Adatvédelmi és Általános Szerződési Feltételek – Google (http://www.google.com/intl/hu/policies/terms/) [22] 2 Billion Consumers Worldwide to Get Smart(phones) by 2016 – eMarketer (http://www.emarketer.com/Article/2-Billion-Consumers-Worldwide-Smartphones-by2016/1011694) [23] IBM Simon: World’s first smartphone is now 20 years old – Android Authority (http://www.androidauthority.com/ibm-simon-birthday-134255/) [24] Világszerte 128 millió eladott Nokia mobiltelefon a 2000. évben – PCWorld.hu (http://pcworld.hu/kozelet/vilagszerte-128-millio-eladott-nokia-mobiltelefon-a-2000evben-20010110.html) [25] EPOC (operating system) – Wikipedia, the free encyclopedia (http://en.wikipedia.org/wiki/EPOC_%28operating_system%29) [26] Symbian – Wikipédia (http://hu.wikipedia.org/wiki/Symbian) [27] BlackBerry OS – Wikipedia, the free encyclopedia (http://en.wikipedia.org/wiki/BlackBerry_OS) [28] iOS - Wikipédia (http://hu.wikipedia.org/wiki/IOS) [29] iOS version history – Wikipedia, the free encyclopedia (https://en.wikipedia.org/wiki/IOS_version_history) [30] Open Handset Alliance (http://www.openhandsetalliance.com/index.html) [31] Ekler Péter, Fehér Marcel Forstner Bertalan, Kelényi Imre: Android-alapú szoftverfejlesztés, Az Android rendszer programozásának bemutatása, Szak Kiadó, 2012, ISBN: 978-963-9863-27-9 [32] Android (operációs rendszer) – Wikipédia (http://hu.wikipedia.org/wiki/Android_%28oper%C3%A1ci%C3%B3s_rendszer%29) [33] Android version history – Wikipedia, the free encyclopedia (http://en.wikipedia.org/wiki/Android_version_history) [34] Ekler Péter, Fehér Marcel Forstner Bertalan, Kelényi Imre: Android-alapú szoftverfejlesztés, Az Android rendszer programozásának bemutatása, Szak Kiadó, 2012, ISBN: 978-963-9863-27-9 [35] Android KitKat | Android Developers (https://developer.android.com/about/versions/kitkat.html) 67
Irodalomjegyzék [36] Get Started with Publishing | Android Developers (http://developer.android.com/distribute/googleplay/start.html) [37] Tax-rates & valued-added tax (VAT) – Developer Console Help (https://support.google.com/googleplay/android-developer/answer/138000?hl=en) [38] Google: Android app downloads have crossed 50 billion, over 1M apps in Play | The Verge
(http://www.theverge.com/2013/7/24/4553010/google-50-billion-android-app-
downloads-1m-apps-available) [39] Publishing Overview | Android Developers (http://developer.android.com/tools/publishing/publishing_overview.html) [40] Windows Mobile – Wikipédia (http://hu.wikipedia.org/wiki/Windows_Mobile) [41] Windows Phone – Wikipédia (http://hu.wikipedia.org/wiki/Windows_Phone) [42] IDC: Smartphone OS Market Share 2015, 2014, 2013 and 2012 (http://www.idc.com/prodserv/smartphone-os-market-share.jsp) [43] Windows Phone-telefonok - Microsoft (https://www.microsoft.com/hu-hu/windows/phones?type=test) [44] Windows Phone-verziók – Wikipédia (http://hu.wikipedia.org/wiki/Windows_Phone-verzi%C3%B3k) [45] Windows Phone – Wikipédia (http://hu.wikipedia.org/wiki/Windows_Phone) [46] Windows Dev Center (https://dev.windows.com/en-US/) [47] App Developer Agreement – Windows app development (https://msdn.microsoft.com/en-us/library/windows/apps/hh694058.aspx) [48] Prim hírek – Jelentősen nőtt az appok száma a Windows Phone áruházban (http://hirek.prim.hu/cikk/106691/) [49] Global market share held by smartphone operating systems from 2009 to 2013 (http://1.bp.blogspot.com/f7kdmV8TjDw/VDBJy_DQdWI/AAAAAAABT2c/J9D9KXL5AeI/s1600/statistic_id263453_s martphone-operating-systems_-global-market-share-2009-2013%2B%282%29.png) [50] Smartphone OS market share unit shipments 2014-2019 | Statistics (http://www.statista.com/statistics/272307/market-share-forecast-for-smartphoneoperating-systems/) [51] Ekler Péter, Fehér Marcel Forstner Bertalan, Kelényi Imre: Android-alapú szoftverfejlesztés, Az Android rendszer programozásának bemutatása, Szak Kiadó, 2012, ISBN: 978-963-9863-27-9
68
Irodalomjegyzék [52] Fájl: Android system.png – Wikipédia (http://hu.wikipedia.org/wiki/F%C3%A1jl:Android_system.png) [53] Ekler Péter, Fehér Marcel Forstner Bertalan, Kelényi Imre: Android-alapú szoftverfejlesztés, Az Android rendszer programozásának bemutatása, Szak Kiadó, 2012, ISBN: 978-963-9863-27-9 [54] Ekler Péter, Fehér Marcel Forstner Bertalan, Kelényi Imre: Android-alapú szoftverfejlesztés, Az Android rendszer programozásának bemutatása, Szak Kiadó, 2012, ISBN: 978-963-9863-27-9 [55] Core App Quality | Android Developers (http://developer.android.com/distribute/essentials/quality/core.html) [56] Fehér Krisztián: Androidos szoftverfejlesztés alapfokon, BBS-INFO Kiadó, 2014, ISBN: 978-963-9425-88-0 [57] Dashboards | Android Developers (http://developer.android.com/about/dashboards/index.html) [58] Download Android Studio and SDK Tools | Android Developers (https://developer.android.com/sdk/index.html) [59] Fehér Krisztián: Androidos szoftverfejlesztés alapfokon, BBS-INFO Kiadó, 2014, ISBN: 978-963-9425-88-0 [60] Ekler Péter, Fehér Marcel Forstner Bertalan, Kelényi Imre: Android-alapú szoftverfejlesztés, Az Android rendszer programozásának bemutatása, Szak Kiadó, 2012, ISBN: 978-963-9863-27-9 [61] Ekler Péter, Fehér Marcel Forstner Bertalan, Kelényi Imre: Android-alapú szoftverfejlesztés, Az Android rendszer programozásának bemutatása, Szak Kiadó, 2012, ISBN: 978-963-9863-27-9 A linkek utoljára ellenőrizve: 2015. november 18.
69