A program a „Tudáshasznosulást, tudástranszfert segítő eszköz-, és feltételrendszer kialakítása, fejlesztése a Műegyetemen” (TÁMOP /1/KMR ) és a „Minőségorientált, összehangolt oktatási és K+F+I stratégia, valamint működési modell kidolgozása a Műegyetemen” (TÁMOP-4.2.1/B-09/1/KMR ) című projektek támogatásával valósul meg. Windows Phone a többi mobilplatform tükrében Kelényi Imre Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék
Tartalom Három platform – három világ? Kiemelt témák Multitasking Adattárolás és hozzáférés Memóriakorlátok Grafikus teljesítmény, UI skálázhatóság Push notification „Widgets” 2
3 platform – 3 világ? iOS Egységes Natív kód Android Szegmentáltság, “Android is the new Windows Mobile” Fejlesztői szabadság Windows Phone Egységes .NET, managed code, még sok fejlesztői megkötés
Fejlesztői szabadság Készülékpark egységesség
Multitasking 1/2 iOS Egy aktív alkalmazás, tetszőleges számű inaktív alkalmazás Background task: az alkalmazások deaktiválás előtt kérhetnek még plusz futási időt Android Process-ek igény szerint futhatnak a háttérben, míg ki nem lövi őket a rendszer Service-eket lövi ki utoljára, ill. újraindíthatja őket
Multitasking 2/2 Windows Phone Leginkább iOS-hez hasonlít: 1 akalmazás aktív (running), max 5 inaktív (két fázisú deaktiválás: dormant majd tombstoned) Háttérben engedélyezett műveletek Background Agent (Scheduled Tasks) Periodikus feléledés, max 6 MB RAM Scheduled notifications Mint iOS “Local Push Notification” Background File Transfers Background Audio
Memóriakorlátok iOS: hivatalosan 20 MB fölött nagy eséllyel kilövi a rendszer az alkalmazást Gyakorlatban: 512 MB RAM esetén MB, 256 MB RAM esetén MB a korlát Android: memória limit nagyon eszközfüggő, de 16 MB az átlag Nexus S: 32 MB, Nexus One: 24 MB Windows Phone: certificate követelmény: max 90 MB memória a 256 MB RAM-al rendelkező készülékeken Kódból dinamikusan lekérdezhető a limit: DeviceStatus.ApplicationMemoryUsageLimit property
UI skálázhatóság iOS Két felbontás, köztük 2-szeres szorzó: 480x x640 Logikai koordinátarendszer iPad/iPhone: különálló UI Android 4 pixelsűrűség és 4 képernyőméret (4x4 eset) Képek automatikus skálázása, ha nincs meg a méret Windows Phone Jelenleg csak 800x480 Pletyka: Tango-ban jön 480x320 (és 1280x720 ?)
Grafikus teljesítmény iOS Core Animation, kompozíció külön szálon “Könnyű gyorsan futó UI-t készíteni” Android Nagyon könnyű belassítani a UI thread-et Szegmentáltság miatt gyakran nincs kitesztelve az alkalmazás lassabb eszközökre Windows Phone Animációk (Storyboard) és cache-elt textúrák kirajzolása automatikusan külön, GPU-n futó szálon (Compositor) Animáció fut tovább, még akkor is ha UI thread blokkolva van Szubjektív tapasztalat: Androidnál jobb teljesítmény ugyanazon a hardveren
Adattárolás és megosztás 1/2 Mindhárom platformon sandbox modell Android External storage: alkalmazások írhatnak olvashatnak Content provider: alkalmazások egymásnak tetszőleges adatokat publikálhatnak iOS Alkalmazások URL sémákkal tudnak más alkalmazásokat meghívni és adatokat átadni (egyirányú kommunikáció) Az alkalmazások a Documents mappájukat elérhetővé tehetik PC/Mac-ről (iTunes) való szerkesztésre A sandbox tartalma titkosított
Adattárolás és megosztás 2/2 Windows Phone PC-ről vagy más alkalmazásból közvetlenül nem tudunk fájlokat küldeni az alkalmazásunknak Nem lehet fájltípusokat rendelni az alkalmazásokhoz Adobe Reader külön engedélyt kapott Megoldás: SkyDrive, egyéb cloud szolgáltatások… LiveSDK Sharpbox: egységes API sok cloud szolgáltatáshoz Isolated Storage nem titkosított! interop unlock-olt készüléken olvashatók Data Protection API
Push notification iOS: Push Notification Service Alkalmazásonként 1 üzenetet tárol ha a készülék offline Max 256 byte/üzenet, nincs üzenetszám korlát Android: Cloud to Device Messaging (C2DM) Max 1 KB/üzenet, üzenet/nap Windows Phone: Microsoft Push Notification Service Max 3 KB/üzenet Unathorized: 500 üzenet/nap, authorized: nincs korlát Késleltetés hasonló mindhárom platformon Szubjektív sorrend: Android < WP < iOS 12
Widgets Android: “natív” widgetek, 3 rd party is Különálló alkalmazás, periodikusan feléled Könnyű visszaélni vele, akkumulátorgyilkos iOS: fejlesztők egyelőre csak jailbreak-el Windows Phone: Live Tiles Frissítés push notification vagy egy kép automatikus időzített letöltése (ScheduleShellTile) Tile push notification tartalmazza a megjelenítendő tartalmat
Összefoglalás A Windows Phone a legfrissebb platformként jól átvette a többi platform bevált tulajdonságait UI terén nagyon más A fejlesztői eszközök egyre bővülnek Teljesítményben élmezőnyben van Szegmentáltság nem gond, de ki tudja meddig?
Tudományosan is bizonyítva: WP a leggyorsabb CES 2012 “Ben the PC guy” Különféle “versenyszámokban” lehetett kihívni (tipikus mobilos feladatok, pl. küldés) 30 győzelem 1 döntetlen 2 vereség (twitter képmegosztás)