Archívum

Archive for 2010. március

Windows Phone 7 – Mi van a Multitask helyett?

március 29, 2010 4 hozzászólás

Sokak számára megdöbbentő hír, hogy a Windows Phone 7-ben jelenlegi állás szerint nincs multitasking. Bár lehetőségünk van alkalmazáson belül több thread-et futtatni, azaz lehet többszálú alkalmazásokat írni, de párhuzamosan futtatni két alkalmazást nincs! Persze ez sem egészen igaz, mert alapvetően több rendszer folyamat is képes párhuzamosan futni, azaz lehet zenét hallgatni, miközben netezel, stb… De tény, hogy két 3rd Party app jelen pillanatban nem tud párhuzamosan futni.

Mik az okai ennek?
Akármilyen alaphardvert is ír elő az MS ez ügyben, akkor is egy erősen korlátozott hardverkészletről van szó a PC esetén. Ennek megfelelően szembesülni kell a következőkkel:

1. Egy erősen korlátozott energia forráson kell osztozni, értsd lemeríti a sok program az aksid. Észre se veszed és a több napos standbyból 3 óra lett…
2. Foglalja a memóriád – értsd lassítja a többi alkalmazásodat
3. Foglalja a processzor időd – értsd lassítja a többi alkalmazásodat
4. Egy képernyőn egyszerre többnyire csak egy alkalmazást futtatsz. (ugyanis nem egy 24”-os monitorról beszélünk itt)

A fenti listán végig haladva egyértelműen megállapíthatjuk, hogy káros hatással lenne a multitasking a telefonunkra., a többi alkalmazásunkra és főleg a felhasználói érlményünkre nézve. De nézzük mit veszítünk a hiányával?

1. Az alkalmazásaink adatforrásokból táplálkoznak, de ha nem futnak a háttérben, az adatokat sem tudják letölteni.
2. Nem tudom “letenni a tálcára” az alkalmazásomat, majd egy másikat megnyitni, és miután azzal befejeztem a munkát, vagy akár közben visszatérni az előzőre és folytatni ott ahol abbahagytam.
3. Gyors váltás a futó alkalmazások között, hiszen futnak párhuzamosan… Multithreading nélkül ez problémás.

A fenti esetek kb le is fedik a multitask hiányából adódó problémakör bk 95%-át.

Mi erre a Windows Phone 7 Series válasza?

1. Push notification

Nem kell az alkalmazásnak futnia azért, hogy infórmációhoz jusson. Különben is milyen kommunikációs modellt akarnánk építeni? Folyamatosan pollozunk egy webservice-t, ezáltal szívva le az aksit, foglalva a memóriát és a processzort?

A modell a következő. Van egy szolgáltatásom, aki rendelkezik az információkkal. Én a mobil alkalmazásomból nyitok egy Http csatornát és elküldök neki egy url-t. Ez az URL azt tartalmazza, hogy ki vagyok én, mint telefon, illetve, hogy hol van az ún. Push Notification Service? Ugyanis a szolgáltatásom miután megkapta ez az url-t az adatokat adott időközönként nem nekem, hanem ennek az URL-nek, azaz a Push Notification Service-nek küldi el. Az URL része, a telefonunk azonosítója, így a Push Notification Service “csomagokban” az összes nekem címzett ilyen jellegű információt elküldheti, amit a telefonunkba épített Push Notification Kliens a megfelelő helyre továbbíthat is! Hova? Hát pl a Home Screenre Tile-ok formájában, vagy éppen Toast formájában, vagy simán Raw adatként is megkaphatja a futó alkalmazás az információt. Az első két esetben lehet, hogy az alkalmazásunk nem is fut már. De magára a kapott üzenetre bökve (értsd táácccsss) felugrik az alkalmazásunk és az információt izlése szerint kezelve, megjelenik.

 

Oké, akkor az üzenetket megkapjuk kötegelve, ez megoldódott, egyes pont pipa!

2. Állapot és Task management

Mi a helyzet azzal, hogy meg akarok nyitni egy másik alkalmazást, talán épp egy ilyen toast-ból, és miután azt bezártam szeretném az előző alkalmazással a munkát ott folytatni, ahol abbahagytam. Szerencsére erre is van lehetőség. A standard “nem futok – indulok – futok, – kiléptem” életciklus sorozat némileg kibővül a wp7-en. És a következőképp nézz ki. Vannak bizony pause, suspended és resume állapotok is. Azaz, amikor az alkalmazást letesszük szunyókálni, kapunk egy üzenetet, miszerint valaki épp pausolni akar minket, itt konkrétan el tudjuk menteni az alkalmazás aktuális állapotát. Aztán jön a Suspended állapot, ahol igen nagy eséllyel a processzünk ténylegesen el is halálozik!! Ugye tekitnve, hogy CLR-ről meg garbage collector-ról van szó, nem tudhatjuk, hogy ez mikor következik be, a lényeg, hogy számítani kell rá, hogy meg fog történni. Node, mikor visszatérek az alkalmazásomhoz, pl egy Back button segítségével, akkor kapni fogok egy resume üzenetet, miszerint bizony folytatni kellene ott, ahol abbahagytuk!, itt bizony nekünk kell visszaállítani az alkalmazás előző állapotát. Aztán ismét “running”-olunk. Egy a lényeg: A USER NE VEGYEN ÉSZRE EBBŐL SEMMIT!

Kettes pont kipipálva, sőt a hármas pont is, mert ennek a rendszernek köszönhetően, bizony több processzor idő és több memória is marad, ami kompenzálni fog a váltási idők miatt, az energia spórolásról meg ne is beszéljünk. Vajon ha a user megkapja az alkalmazásához tartozó adatokat, amiket egy érintéssel be tud tölteni, az alkalamzásai között meg gyorsan tud váltogatni és ott tudja folytatni a munkát ahol abbahagyta, hiányozni fog neki a multitasking?

No, hát ezt tudja jelen pillanatban a wp7. (illetve ezt fogja tudni :P)

Ti mit gondoltok? Gyertek és osszátok meg velünk április 12-én a Visual Studio 2010 launch-on, a Windows Phone 7 Session alatt, vagy a délutáni Ask The Experts sarokban, vaaaaaagy gyertek el ma a Silverlight Klub –ba, a  ma esti találkozóra, 18:00-kor. Sőt a legjobban akkor jártok, ha ide is, oda is eljöttök :))

Kategóriák:Uncategorized

Windows Phone 7 – Elégtelen vagy csillagos ötös?

március 21, 2010 2 hozzászólás

Itt és most leszögezném. 2010 márciu 21 reggel 10:26 CET van ebben a pillanatban és ebben a szent másodpercben én egy IPhone 3GS rendkívül elégedett tulaja vagyok. Fél évvel ezelőtt még én is a Windows Mobile 6.1-es user-ek nem tűl népes, de annál elégedetlenebb csoportjának voltam roppant frusztrált tagja. (Ez a készülék egyébként egy HTC Touch Diamond volt.) Ezt azért tartom fontosnak kihangsúlyozni, hogy ne lehessen elfogultsággal vádolni 🙂

Szóval a Mix 2010-en ugye megtörtént a várva várt Windows Phone 7 bejelentés, ahol meg tudtunk jó sok információt arról, hogy mit várhatunk a platformtól. Rögtön ki is tört a frász developer körökben pár hiányosság miatt. Szeretném most ezeket tisztázni és egy helyen összefoglalni a veleményem ahelyett, hogy különböző forum post-okban tenném ezt meg.

1. Nincs Multi-Tasking.

Éééés tényleg nincs. Ebben a pillanatban a wp7 nem támogatja az alkalmazások párhuzamos futtatását és EZ jó! Mégis mekkora a kijelző azon a telefonon? Fogunk tudni rajta nyitva tartani 2-3 ablakot egyszerre? Dehogy! Arra a kis kijelzőre mindig azt az alkalmazást kell kirakni, amivel éppen dolgozunk! Ritka az a szitu, amikor tényleg szükséged van arra, hogy a háttérben fusson vmi extra alkalmazás. A legtöbb natív funkció párhuzamosított akárcsak az iphone esetén azaz (bár ezt még nem próbáltam ki) de pl lehetőséged lesz egyszerre zenét hallgatni és netezni. Képzeld el a szitut, amikor a háttérbe berakja a User az alkalmazásodat, ott hagyja, és az meg jó leszívja az aksiját… kicsit kiakadna… és mi a sz*r? Nem a te alkalmazásod, hanem a telefon!

Erre te azt mondod, hogy najó, de az alklalmazásaim real-time adatokat kell fogadjanak és megjelenítsenek! Én pedig azt válaszolom, hogy erre való a push notification. Van vmi üzenet, a push notification kirakja, a user rábök és elöjön az alkalmazásod egyetlen pillanat alatt. A Taskok közötti váltás baromi gyors, ezt az IPhone 3GS már bebizonyította. Ez az információ még nem is létezett a wp7-ről mikor már azt mondtam, hogy ha az MS észnél van, kihagyja a multitask-ot, mert ez mobil és nem PC. (Tanúm is van rá Orosz Gábor személyében! 🙂 )

2. Nincs Copy-Paste

Na igen a copy-paste tényleg egy olyan apróság, ami hiányzik. Akkor most építkeznék a saját és egy két imserősöm tapasztalatából, de pontosan mit is copy paste-elünk? Telefonszámot, email címet és hiperhivatkozást. Ha ezeket felismeri és a szükséges műveleteket el lehet végezni (call, create new contact, assign to contact stb…) akkor én erről le tudok mondani. Ettől függetlenül későbbi verziókba biztos bekerül ez a funkció is.

3. Nem fér az alkalmazás a filrendszerhez.

Helyes! Ne is férjen! Erre való az Isolated Storage! Valamit elbarmol a progi, mit mond a user? Sz*r a telefon! Dolgozzon csak oda, ahol senkit sem bánthat… Ez nem egy PC!

4. Nincs alklalmazás telepítés USB-rőr, csak a Marketplace-ről.

Na most a user 2 dolgot nem akar. 1: Ne legyen elég profi alkalmazás a telefonjára. 2: Hekkelni, hogy egy alkalmazás felmenjen. Mit akar a user? Két dolgot: 1: Stabil, ellenőrzött minőségi programokat. 2: Egy kattintásos telepítést… Kinéz vmit a marketplace-en és egy gombnyomással telepíti… esetleg olvasi némi review-t az alkalmazásról. Ismét bevált modell az Apple AppStore-ja a követendő példa.

Mit akar egy profi fejlesztő? Azt, hogy az alkalmazását könnyen tudja disztributálni, ne legyen vele probléma és el kérhesse az árát. (Ha ingyen adja, az ő dolga) Ha jó az alkalmazása, akkor szeretné, hogy a review-k, rating-ek ezt tükrözzék. Mi a megoldás? A marketplace!

Őszinte leszek, ha ez nem így lenne, hanem bárhogy fel lehetne kalózkodni a programokat a telefonra, engem, mint fejlesztőt abszolút nem érdekelne ez a platform!

5. Csak menedzselt kódot tudsz futtatni

Még jó! Gagyi kód –> memory leak –> user szerint sz*r a telefon! Erre való a garbage collector.. legalább miután az alkalmazásod leáll, hadd takarítsa ki a memóriát… Különben is mihez szeretnél hozzáférni alacsony szinten? A sensorok, GPS vevők, multitouch stb rendelkeznek normális menedzselt felületekkel. Az alap OS taskokat, sms küldés, email küldés stb elérhetjük szintén menedzselt felületen. Több dolog default 3d gyorsítást, vagy hardware gyorsítást kapott… Mi kellene még?

6. Túl sok a kényszer a megkötés miért van ez?

Ez nem egy PC. Nem a geekeknek, fejlesztőknek készült. A cél közönség az átlag egység sugarú user. A UX extrém fontosságot kap. Innentől kezdve, nem lehet semmi lassú, nem lehet semmi komplex, vagy átláthatatlan, one click experience mindehova ahováa csak kell… Alapvetően mire fogják használni ezt a telefont? Netezésre, email olvasásra, social networkingre, és játékra! Ez a main priority. Aztán jönnek az extra kisebb alkalmazások és a végén kullog valahol jelenleg az üzleti alkalmazás stb… Ennek megfelelően muszáj olyan megkötéseket bevezetni, ami nem engedi a felhasználót elveszni, nem engedi, hogy az alkalmazások hibájából a felhasználó azt mondja, hogy ez a telefon sz*r…

7. Beépített belső memória, ami nem bővíthető

Ha így is van / lesz… és? Én 16GB-on csellengek most és még nem csúsztam be 8GB alá… pedig használok ezt azt!

Összegezve, hogy csillagos ötös-e ez azt nem tudom, előbb a kezemben kell fogjak egy igazi nem prototípus release példányt. De az hogy egyes vagy akár hármas, magasan kizárnám. A developer élmény a csillagokban van még így is (pedig pár dolog azért hiányzik), a UX magáért beszél, az átlag user szeretni fogja! Pár hete olvastam egy közvélemény kutatást az IPhone-nal kapcsolatban, ahol arról volt szó, hogy a felhasználók egy jelentős része körében érzelmi kötödés alakul ki a telefonja iránt, elvesztése számukra egy nagyobb tragédia lenne, és gyakrabban hagyják otthon a pénztárcájukat, mint a telefonjukat. Ezt jelenleg egyetlen más telefon sem mondhatja el magáról… Ez az a piac ahova be kell törnie a Microsoftnak. És most jön el az a pont, amikor a Címeket olvasd át most MÉGEGYSZER! Szerinted melyik fog hiányozni a user-nek? Megsúgom. Egyik sem! És most szerencsére élhetek azzal a luxussal, hogy tapasztalatból mondhatom, hogy ha a fejlesztői gondolkodás átáll arra, hogy ez nem PC, hanem a felhasználó egy része!!!!! ami kapcsolattartást biztosít az online világgal, akkor a fejlesztőknek sem.

Ha érdekelnek további információk és részletek a Windows Phone 7-el kapcsolatban, akkor 1 hónapon belül 2 Mo-i eseményen is hallhatsz róla:

1. Silverlight Klub március utolsó hetében

2. Visual Studio 2010 Launch konferencia április 12-én – Windows Phone Session

Végül pedig, hadd idézzem egy MSFT-s fickó szavait: “Focus, focus, focus” … “focus on the end user”

Kategóriák:Uncategorized

Silverlight 4 RC és Windows Phone 7 tools

március 15, 2010 Hozzászólás

No, hát megvolt a MIX 2010 Keynote is és olyan dolgokat láttunk hogy a hajam letettem… a legnagyobb durranás persze a Windows Phone 7 volt, a hangsúly is 90%-ban azon volt. Mint kiderült a Windows Phone fejlesztés ingyenes lesz VS2010 Express-szel De az örömhír most jön. Lehet kedzeni fejleszteni:

Silverlight 4 RC Tools for Visual Studio 2010

Expression Blend 4 Beta

Silverlight Toolkit

WCF RIA Services

Windows Phone Developer Tools CTP

Expression Blend 4 Beta Add-in for Windows Phone

Expression Blend 4 Beta SDK for Windows Phone

Nyomás kipróbálni!!!

Kategóriák:Uncategorized