Category Archives: Mobil

Root CA tanúsítványának telepítése Windows Phone-ra

Könnyen előfordulhat, hogy amikor meglátogatunk a telefonunkon egy HTTPS-es weboldalt, az alábbi hibaüzenettel találkozunk:

cert-wp

Ahogy a hibaüzenetben egyértelműen olvasható, az a gond, hogy a tanúsítvány kiadójában nem bízik meg a telefon. Egy asztali böngésző segítségével könnyen kideríthetjük, hogy pontosan melyik tanúsítvánnyal is van gond:

cert-netlock-hiba

A View Certificates gombra kattintva megnézhetjük a teljes kiadói láncot:

cert-rootca

Ilyenkor a klasszikus megoldás, hogy ha tényleg megbízható a kiadó, akkor importáljuk a tanúsítványát. Netlock esetén például így:

Látogassunk el a telefonon a https://www.netlock.hu/html/cacrl.html oldalra. Mivel még a telefon nem bízik meg a kiadóban, ezért itt hibával fogunk találkozni, de a Continue to website (not recommended) segítségével továbbléphetünk (katt a teljes képért).

cert-wp-netlock1

Tappintsunk a telepíteni kívánt kiadó nevére:

cert-wp-netlock2

Nyomjunk rá a középen található Hitelesítés szolgáltató tanúsítvány gombra, aminek hatására a böngésző letölti a tanúsítvány és elindul az importáló varázsló:

cert-wp-netlock3

Install, mi más:

cert-wp-netlock4

Nálam még kellett egy böngésző újraindítás és máris hibaüzenet nélkül nyílt meg az oldal.

De mi a helyzet akkor, ha nem sikerül megtalálnunk a kiadó tanúsítványát vagy a Continue nem segít? Ez esetben exportálhatjuk a desktop gépünkről. Indítsunk egy Management Console-t (mmc.exe), majd töltsük be a Certificates snap-int. A Trusted Root Certification Authorities kategóriából keressük ki a tanúsítványt, majd a helyi menüből indítsuk el az export varázslót, amivel exportálhatjuk a tanúsítványt.

cert-mmc

A végeredmény .cer fájlt küldjük el magunknak e-mailben és a levél mellékletét nyissuk meg a telefonon, ami ugyanúgy elindítja az import varázslót. Persze kitehetjük webszerververre is a fájlt, de IIS esetén ne felejtsük el felvenni a MIME type-ok közé az application/x-x509-ca-cert típust, különben az IIS 404.3 hibával nem fogja leküldeni a fájlt:

cert-mime-type

 

Advertisements

Metros ikonkészletek

Aki igazán menő Windows Phone-os vagy Windows 8-as alkalmazást szeretne készíteni, annak szüksége lesz Metro stílusú ikonokra. Íme néhány tipp, hogy honnan lehet beszerezni őket. Mivel rengeteg ikon létezik már, a képeket csak ízelítőnek szánom, az adott oldalon érdemes megnézni a teljes készletet.

Windows Phone SDK

A Windows Phone SDK telepítése után a C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Icons mappában találunk egy adag ikont világos, sötés és vektoros formában:

icons-sdk

Segoe UI Symbol

Ha már a Microsoftos dolgoknál tartunk, létezik egy Segoe UI Symbol nevű betűkészlet, ami szintén számos hasznos ikont tartalmaz:

icons-segoe-ui-symbol

A Windows 8-nak biztosan része, de megtaláltam a Windows 7-es gépemen is. Tényleg jobb, mint a Wingdings 🙂

Syncfusion Metro Studio

A Syncfusion oldaláról ingyenesen letölthető Metro Studio alkalmazás azért izgalmas, mert nem csak hogy egy rakás ikont tartalmaz, de még könnyen testre is tudjuk szabni őket (katt a nagyobb képekért):

icons-metro-studio-1

icons-metro-studio-2

The Noun Project

A Noun Project weboldalán folyamatosan bővül az elérhető Metros ikonok készlete, kulcsszavak alapján keresgélhetünk közöttük:

icons-noun-project

Templarian Windows Phone Icons

Austin Andrews, alias @Templarian elhatározta, hogy rajzol pár Metros ikont, jelenleg 635-nél tart és a készlet folyamatosan bővül. Sőt, akár kérni is lehet tőle ikont! Érdekesség, hogy ő Expression Design-nal rajzolja az ikonokat, így aztán vektoros, sőt XAML formában is elérhetőek. Kedves tőle, hogy még egy step-by-step útmutatót is készített a rajzolásról, sőt egy Icons nevű alkalmazás segítségével akár WP7-es telefonunkról is böngészhetjük az ikonokat.

icons-templarian

Default Icon

Kommentár nélkül: 653 ikon.

Yanko Andreev: MetroStation Icons Pack v2

A Yankoa által közzétett MetroStation ikonkészletben hét kategóriában, fekete, fehér és kék színekben, ICO és PNG formátumban találunk 209 féle ikont. Ízelítő a System kategóriából:

icons-yankoa

dAKirby Metro UI Dock Icon Set

Szintén a deviantArt közösség tagja dAKirby, aki eddig 446 ikont készített és tett közzé a Metro UI Dock Icon Set csomagban. A készlet érdekessége, hogy egyrészt ritka tarka, másrészt, hogy az ICO fájlok 128×128, a PNG fájlok 512×512 felbontásban tölthetők le, így kiválóan alkalmasak akár csempe, akár piactér ikon alapanyagnak is.

icons-dock

Icons for Windows 8

Az iconsforwindows8.com oldalon számos ikonkészlet elérhető, de nem mindegyik Metros és nem mindegyik ingyenes. A Free Windows Metro Icons viszont úgy tűnik, hogy megfelel ezeknek a követelményeknek:

icons-free-windows-metro-icons-a

A demó letöltéssel azért érdemes óvatosan bánni, mert EXE-t tölt le a ZIP-ben.

WindowsWiki Metro Icons

A metro.windowswiki.info oldalról egy kisebb csomag tölthető le, mindössze 33 féle ikon, de gyakran kellőek közül és jó minőségben.

icons-windowswiki

Icons8.com

A icons8.com oldalról (ami nálam most éppen nem jön be) nem csak egy halom ikon tölthető le, de kérni is lehet újabb ikonokat, a Twitteren és a Facebookon pedig lehet követni az ikonkészlet fejlődését. (Azért itt nem mindegyikre mondanám azt, hogy tökéletesen Metros.)

icons-icons8-payment

Természetesen használat előtt az ikonok felhasználási feltételeit mindenképpen célszerű elolvasni!

Ismertek még hasonló jó forrásokat?

 

 

Technorati-címkék: ,,,

ASP.NET MVC 4: Reszponzív webdizájn

Az ASP.NET MVC 4 projekt sablonokkal készített weboldalak optimálisan jelennek meg asztali és mobil böngészőkön is, pedig nem tartalmaznak külön view-kat a különböző eszközökre. A trükk a viewport és a CSS media query használata, amelyet ebben a rövid videóban mutatok be:

A megtekintéshez teljes képernyős nézet, 720p ajánlott.

 

Egy nap Windows Phone fejlesztőként: Autópálya információk SMS-ben

Ez a blogbejegyzés 2 hete fekszik publikálatlanul, ha végigolvasod, kiderül, miért. Időközben Scott Hanselman publikált egy nagyon hasonló cikket, azt is érdemes elolvasni.

 

Az egész úgy kezdődött, hogy a tanszékünk január 25-én szervezett egy Windows Phone fejlesztői konferenciát (melynek az előadásai már megtekinthetők a devPortalon), én pedig elhatároztam, hogy azt a napot rászánom a Windows Phone fejlesztésre. A cél annak kiderítése volt, hogy a meglévő .NET, Silverlight, XAML tudásomat mennyire hatékonyan tudom alkalmazni WP környezetben. Mindezt azonban nem a konferencián akartam felmérni, hanem inkább egy Outlook-Skype-telefon-mentes napon, a saját bőrömön érezve, Visual Studioban kódolva. A végeredmény a cikk végén letölthető, addig pedig azt írom le, milyen úton sikerült odáig eljutni, hiszen a másodlagos cél ezeknek az első tapasztalatoknak a megosztása volt.

Adott volt tehát az 1 napnyi határidő, már csak egy konkrét cél kellett, ami értelmesebb alkalmazás, mint egy Hello World, de nem túl bonyolult. Egyszer régen, még a Windows Mobile idejében, készítettem egy .NET Compact Frameworkös programot, amely segítségével a magyarországi autópályákkal kapcsolatos forgalmi információkat lehet lekérni SMS-ben. Elképesztő GUI-t kapott:

Autópálya információk SMS-ben Windows Mobile-on

Mivel az alkalmazás bevált a régi Windows Mobile-os telefonomon és nagyon hamar elkezdtem hiányolni Windows Phone-on, kézenfekvő volt, hogy ez legyen az állatorvosi ló.

Ezzel indultam neki:

  • .NET tapasztalat, elsősorban webfejlesztési területen.
  • Tapasztalat .NET Compact Frameworkös mobil alkalmazás, Silverlight és XAML területen.
  • A Windows Phone-nal kapcsolatos hírek követése a termék életének kezdete óta.
  • Pár egyszerűbb fejlesztési demó és a devPortalon lévő Windows Phone-os előadássorozat végigmozizása.
  • Kéznél volt a devPortalos fiúk által írt WP7 könyv, amiben nagyon jól lehet CTRL+F-fel keresni.
  • Letöltöttem és kb. 15 perc alatt telepítettem a Windows Phone SDK-t.
  • Egy HTC HD7 készülék Mangoval a teszteléshez.

 

Első lépések

Ennyi elég is volt ahhoz, hogy Visual Studioban File – New – Project – Windows Phone Application varázslóval létrehozzam az első WP7-es alkalmazásomat. A sablon kiváló, azonnal futtatható, elindul az emulátor és máris kipróbálható. Pont ennyit tud:

Első WP7 appom

Nem tudom, ki hogy van vele, én új környezetben mindig először egy interaktív Hello Worldöt szoktam készíteni: egy szövegdobozba beírt szöveg gombnyomásra megjelenik egy címkén. Ez pont olyan egyszerűen ment, mint ahogyan előre elképzeltem, Toolboxról behúzhatók a vezérlők, vagy a WPF/Silverlightos XAML kód pont ugyanúgy írandó, sőt az eseménykezelőkkel kapcsolatban sincs igazán újdonság.

Szia Világ WP7-re

A tesztelés már egy kicsit furmányosabb, tudni kell, hogyan lehet a hoszt billentyűzetét használni az emulátorban: a kulcs a PageUp.

A WP7-es alkalmazások felhasználói felületének gyakori eleme az alsó Application Bar. A Studio által generált kódban erre is van minta, csak ki van kommentezve, és szinte kiált az uncomment után. A gombra persze ikont kell rakni, szerencsére van pár a C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Icons mappában. Elég a Dark ikont használni, ha a felhasználó átvált a telefonon világos témára, akkor ez az ikon automatikusan invertálódni fog. Az ikont bárhova be lehet rakni a forráskódba, de a megszokottal ellentétben a Build Actionjét nem Resource-ra, hanem Content-re kell állítani. Bevallom, ez meglepett. Az appbar eseménykezelői klasszikus gomb eseménykezelők, akár debuggerrel, akár MessageBox-szal könnyű kipróbálni őket.

Application Bar

Szerencsére nem ez az egyetlen WP7-es projekt sablon van a Studioban, érdemes végignézni mindet. A Windows Phone Databound Application már adatkötésre és navigációra is mutat példát. Van benne egy talán feleslegesen elbonyolított MVVM és példa az oldalak közötti navigálásra, ami ugyanúgy a NavigationService segítségével történik, mint WPF-ben. Ez a példa használ beépített Windows Phone-os stílusokat, amikről itt található bővebb információ: http://msdn.microsoft.com/en-us/library/ff769552(v=vs.92).aspx. Aki csinált már adatkötést, például WPF-ben vagy akár ASP.NET-ben, annak itt nem lesz újdonság.

wp7-masodik-start

Ezek után még létrehoztam egy Windows Phone Panorama Application és egy Pivot Application projektet. Kód szinten a Panorama és a Pivot is pont olyan, mint egy Tab control, futási időben viszont máshogy viselkednek. Érdemes megnézni a devPortalos videókat, ott kiderül, mikor melyiket célszerű használni.

wp7-harmadik-panorama wp7-negyedik-pivot

A projekt sablonok megismerése kb. 40 percbe telt, ideje volt nekiállni a saját alkalmazásomnak.

 

Tervezés

A Windows Mobile és a Windows Phone megjelenése közötti időben nagyon sokat változtak az alkalmazások és a felhasználói igények is, ezért kódolás előtt futottam egy kört azzal kapcsolatban, hogy mit kellene másként csinálni. Ami jó volt a régiben:

  • hálózati adatkapcsolat nélkül is tökéletesen működött, mert csak SMS-ben kommunikált
  • az egyszerű felhasználói felületnek köszönhetően akár vezetés közben is nagyon kényelmes volt a használata

Mivel a hálózati adatkapcsolat nélküli működés nagyon praktikus, maradtam az SMS-es megvalósításnál. Biztos voltam benne, hogy az SMS-t nagyon egyszerű lesz elküldeni, de voltak kételyeim afelől, hogy a válasz SMS-t meg tudom-e jeleníteni az alkalmazásban. Hosszas guglizás után arra jutottam, hogy WP7-en nemcsak hogy nem lehet elkapni a bejövő SMS-t, de még a kimenő SMS-ek elküldését sem lehet teljesen automatizálni. A kódból összerakott SMS-t csak a felhasználó tudja elküldeni az SMS szerkesztőből. Ez akár baj is lehetne, de mivel a válasz amúgy is ott fog megjelenni, ezért nem nagy gond. Sőt, mivel a szolgáltatás gyakran több SMS-ben válaszol és azok ott egyszerre lesznek láthatóak, úgy döntöttem, ezzel a kompromisszummal együtt lehet élni. Plusz egy tappintás, még belefér.

A második pont a felhasználói felület. A régi, egy képernyős, fix elrendezés tökéletesen működött az akkori kevés autópályára, de ma már sokkal több főútról lehet információkat kérni. Hogy pontosan melyekről, azt nem tudtam kideríteni. Az autopalya.hu oldalon találtam ugyan térképet, de az nem egészen fedte a Wikipedián található listát, és próbálgatás közben semmi logikát nem találtam abban, hogy melyikről jött válasz és melyikről nem. Így GUI tervezési szempontból arra jutottam, hogy akárhány elemű listát kell tudnom megjeleníteni.

A következő lépés a mockup rajzolás szokott lenni, amihez mi általában Balsamiqot használunk, amihez szerencsére lehet letölteni Windows Phone-os sablonokat. Nem volt türelmem az egész alkalmazást megrajzolni, de azt sikerült megsaccolni vele, hogy egy listában három egymás melletti ikon még elég nagy ahhoz, hogy ujjal pontosan megnyomható legyen. A mockupból kiderült az is, hogy a görgetés és a sok elem közötti keresgélés valószínűleg nem kényelmes például vezetés közben, ezért nem árt a programba egy Kedvencek lista egy másik Panorama képernyőn.

Ez a tervezgetés kicsit több, mint 45 percet vett el, de mindenképp megérte.

 

File – New – Project

A Studio projekt sablonjainak megismerése után gyerekjáték volt a projekt létrehozása és a felhasználói felület átszabása. Az egyetlen érdekesség az volt, hogy WP7-en alapból nincs WrapPanel, ahhoz már a Silverlight for Windows Phone Toolkit kell. Ez persze letölthető a CodePlexről is (mint ahogy sokan javasolják), de szerintem a NuGet csomag sokkal egyszerűbb.

Az adatmodellel már egy kicsit meggyűlt a bajom. Először is a template által generált view-modelben a PropertyChanged implementáció nem tetszett. Valami sokkal egyszerűbbet akartam, így átírtam az egészet singletonra. Annál viszont nem sikerült megoldanom, hogy dummy adatok megjelenjenek a dizájnerben, ha valaki tudja, hogyan kell, kérem írja meg. Egy óra kínlódás után vissza az egész.

Az SMS küldés gyerekjáték volt, meg is osztom veletek a hihetetlenül komplex üzleti titkot:

  SmsComposeTask sms = new SmsComposeTask
  {
    To = App.Settings.PhoneNumber,
    Body = speedwayDisplayName
  };
  sms.Show();

Délelőtt 10 órára készen is volt az alkalmazás első verziója, ami annyit tudott, mint a régi.

 

Első futtatás a telefonon

De jó, hogy megnéztem a devPortalos videókat arról, hogyan kell áttölteni egy alkalmazást a telefonra! Kösz, fiúk, sok időt spóroltatok meg! Hibaüzenetek ugyanis vannak, de nem éppen bőbeszédűek:

Failed to connect to device as it is pin locked.

Frászt! Csak épp bekapcsolt a képernyővédő. Bekapcs, felhúz és már megy is.

Failed to connect to device as it is developer locked. For details on developer unlock, visit http://go.microsoft.com/fwlink/?LinkId=195284.

Ez akár értelmes hibaüzenet is lehetne, ha nem az AppHub kezdőlapját hozná be, ahonnan fogalmam sincs, hogyan tovább, túl sok link van rajta. A megoldás a Start menüből a Windows Phone Developer Registration alkalmazás elindítása, ami az SDK-val kerül fel. Beírtam neki a Live ID-mat és a jelszavamat, és azonnal megvolt az unlock, pedig előtte nem is regisztráltam az AppHubra.

 

Hetességek

Feltűnt, hogy a telefon forgatására a program nem reagál. Azt hittem, hogy ez megy magától, hiszen a layout vezérlők ezt kezelhetnék. Szerencsére tényleg megy magától, amint azt engedélyeztük XAML-ben:

  <phone:PhoneApplicationPage 
    ...
    SupportedOrientations="PortraitOrLandscape"  
    Orientation="Portrait" 
    OrientationChanged="OnOrientationChanged"

Az eseménykezelő azért kellett, hogy fekvő helyzetben a Panorama címét el tudjam rejteni, mert nagyon sok helyet foglal. Erre csak ezt a megoldást találtam, vajon van egyszerűbb?

  Grid grid = (Grid) VisualTreeHelper.GetChild( this.panorama, 0 );
  FrameworkElement title = (FrameworkElement) grid.FindName( "TitleLayer" );
  title.Visibility = e.Orientation == PageOrientation.LandscapeLeft || 
                     e.Orientation == PageOrientation.LandscapeRight ? 
                     System.Windows.Visibility.Collapsed : 
                     System.Windows.Visibility.Visible;

Mindenképp ki akartam használni, hogy a Start képernyőre egyedi lapkák tűzhetők, mert így még egyszerűbben lehet a gyakran használt autópályához tartozó információkat lekérdezni. Mínusz egy tappintás. A lapkák elég furcsa lények, mielőtt az ember belecsap, mindenképp érdemes elolvasni, hogyan működnek és mire képesek. A könyvben nagyon jól össze van foglalva, tudom ajánlani. A lehetőségek megértése után a kód nagyon egyszerű:

  StandardTileData tile = new StandardTileData
  {
    Title = String.Format( CultureInfo.InvariantCulture, "{0} infó", speedway ),
    BackgroundImage = new Uri( "/ApplicationTileIcon.png", UriKind.Relative )
  };
  ShellTile.Create( 
    new Uri( "/MainPage.xaml?info=" + speedway, UriKind.Relative ), tile );

Ez az a pont, ahol az ember szembesül azzal, hogy ikont kell rajzolni az alkalmazáshoz, ami nem kimondottan programozónak való feladat. Azért "a maga módján" az is élmény. Mindezt rápakolni a Toolkitben található ContextMenu-re már semmiség volt.

Természetesen a program elmaradhatatlan része az About ablak, amin belül WP7-en szinte kötelező, hogy legyen link a Piactéren lévő oldalra, ahol értékelni lehet az alkalmazást. Ehhez mindössze ennyi kód kell. Jó, nem?

  MarketplaceReviewTask task = new MarketplaceReviewTask();
  task.Show();

Ugyanoda került egy e-mail küldési lehetőség is, amit szintén nem bonyolult elkészíteni:

  EmailComposeTask task = new EmailComposeTask
  {
    To = "balassy@aut.bme.hu",
    Subject = 
      "Visszajelzés az Autópályán Windows Phone alkalmazással kapcsolatban"
  };
  task.Show();

A főoldal és a névjegy oldal közötti váltás nagyon fapadosnak tűnt, ezért elhatároztam, hogy feldobom a Toolkitben lévő animációval. Ezzel kapcsolatban a legtöbb leírás arról szól, hogyan lehet egy A és egy B oldal között megcsinálni az animációt jó sok kód bemásolásával, de kis keresgélés után találtam egy WindowsPhoneGeek cikket arról, hogyan lehet ezt központosítani.

Kora délutánra el is készült a program. Nem maradt más hátra, mint publikálni.

 

Piactér élmények

Elindítottam a jól eldugott helyéről (Solution Explorerben a projekten jobb klikk) a Marketplace Test Kitet, majd eltöltöttem jó sok időt a sokféle felbontású és rendeltetésű kép megrajzolásával. Szerencsére az emulátorból nagyon egyszerű képernyőképeket készíteni, egy kattintás és már menthető is. Lefuttattam az automatizált  teszteket, és nagyjából átfutottam a 49 manuális tesztet (kinek van ehhez türelme?). Miután megfogalmaztam a programhoz tartozó leírást Wordben, minden készen volt ahhoz, hogy feltöltsem az alkalmazást a Piactérre.

Azt még tavaly sikerült elintéznem, hogy a Dreamspark program elfogadja a bme.hu végű e-mail címeket, így most simán regisztráltam magam Dreamspark tagként a create.msdn.com oldalon a Piactérre – természetesen ingyen. A “simán” persze egy kis túlzás, ha az embert “Balássy György”-nek hívják. Azt merte mondani a fránya regisztrációs űrlap, hogy ez a név már foglalt. Eeeeez? Nem hittem neki, de mit lehet tenni. Jól van, akkor legyen “György Balássy”. Abban meg nem megengedett karakterek vannak. Kérdem én, akkor a fordítottja hogy lehet foglalt, abban megengedettek ugyanazok a karakterek? Végül maradtam “Balassy Gyorgy”, de az e-mail cím megerősítő levélben valamilyen oknál fogva már így szerepeltem: Arc nagy mosollyal

wp7-registration-welcome

Bár az e-mailben lévő linkre azonnal rákattintottam, még sokáig “We are verifying your account” üzenet szerepelt a profil oldalamon, máshol meg az, hogy “Account Status: Active”. Hm. A Devices oldalon a korábban ugyanezzel a Live ID-val unlockolt készülék nem jelent meg azóta se, ami éppenséggel engem nem zavar, de érdekes anomália.

Szóval kicsit furcsa a Piactér a kofák oldaláról, de működik. Csont nélkül be tudtam küldeni az alkalmazásomat.

Két munkanap után jött meg az eredmény egy e-mail és egy PDF formájában (érdemes megnézni nagyban, milyen készülékeken tesztelték):

wp7-cert-failed

Marketplace certification test results Marketplace certification test results

Az egyetlen hiba pedig:

Fail 5.5.1 The product description and UI text of your application must be localized to each language the application supports.

Hát igen, a program magyarul beszél, de a publikálásnál ezt senki nem kérdezte! A megoldás: a Studioban a projekt tulajdonságai között az Assembly Information ablakban kell helyesen beállítani a Neutral Language értékét. A helyesen nagyon fontos, ugyanis csak “ország” formátumút szabad választani, “ország (nyelv)” formátumút a fórumok alapján ugyanúgy nem fogad el a Piactér. Így aztán kiválasztottam a Hungariant, majd ismét beküldtem az alkalmazást a Piactérre. Annyit változtattam még, hogy a leírásban a sortöréseket üres sorokra cseréltem, mert úgy tűnt, azokra nincs tekintettel a megjelenítő oldal. Utólag úgy tűnik, hogy a nyilvános oldal majd tekintettel lesz rá, mert az egész leírást egy HTML <pre> tag-ben jeleníti meg.

Azt tudni kell, hogy az összes beküldés olyan, mintha első lenne, tehát bármilyen apró módosítás esetén újra végigmegy a program a teljes tesztelési és jóváhagyási folyamaton. Ez ismét két munkanapba telt, és az eredmény ismét Certification Failed:

Marketplace certification test results Marketplace certification test results

Ez aztán a követelmény, próbáld csak meg magyarra lefordítani:

The title of the applications pin-to-start icon appears to be a generic title, "sdkLocalDatabase" and is not representative of the application named "1, 2, 3 Learn!"

Egyébként igaz, valóban nem teljesen egyéni ez az ikon:

ApplicationIcon (62x62)

De ez az előző tesztelőnek tényleg nem tűnt fel? Tényleg csak az első hibáig tesztelik a programot? Ez igazán bosszantó volt. Sok órányi rajzolgatás és az összes grafikusi képességem bevetése után ezt mind sikerült kihoznom belőle:

Application Icon (62x62)

Aki szívesen rajzolna nekem egy jobbat, jelentkezzen nálam a pályázatával Mosolygó arc

Ezzel a csoda ikonnal, amit persze négy méretben kellett megrajzolnom, ismét beküldtem az alkalmazást.

Két munkanap után ezúttal megtörtént a váratlan fordulat:

Sikeres publikálás

Mivel a beküldésnél a varázsló végén azt állítottam be, hogy jóváhagyás után azonnal jelenjen meg, a “publish” elvileg meg is volt. Még jó, hogy Bandi az egyik előadásában elmesélte a SurfCube kapcsán, hogy kell még pár óra, míg az alkalmazás megjelenik a kereshető katalógusban. Ez a pár óra nálam ismét másfél napba telt. Addig sokszor a közvetlen link sem működött, hol megtalálta a kereső autocomplete, hol nem, teljesen kaotikusan lehetett rátalálni a programra. Magyarul újabb másfél napig nem volt publikálva az alkalmazás, ezzel összesen 2+2+2+1,5 munkanapig tartott kitenni az appot a Piactérre, de persze legközelebb remélhetőleg csak a fele lesz.

Azóta az alkalmazást több készülékre is letöltöttem a Piactérről, mégis nulla maradt a Download Count a tulajdonosi oldalon. Így kicsit érdekes a Crash Count számláló is Mosolygó arc   Hasonló érdekességet találtam az értékelésekkel kapcsolatban is (arról majd egy későbbi cikkben írok), de ott szerencsére az AppTracker segítségével sikerült könnyen átlátni a visszajelzéseket.

 

A végeredmény

Small  Application Tile (99x99)A végeredmény az Autópályán nevű alkalmazás, amely immár letölthető a Piactérről (ugyanott találhatók képernyőképek is) az alábbi linkekre kattintva, vagy a QR kód szkennelésével:

Megnyitás a Piactéren böngészőben

Megnyitás Zune kliensben vagy telefonon

Az Autópályán alkalmazás megnyitása a Piactéren

Aki esetleg letölti és kipróbálja, kérem küldjön róla értékelést és visszajelzést.

Screenshot 1 - Informacio

 

Értékelés

Egy nap alatt persze nem lettem Windows Phone guru (ez nem is volt cél), de azt hiszem, sikerült alaposan belekóstolni az új mobil operációs rendszer programozásába. Aki látott már valaha XAML-t, annak egyáltalán nem fog gondot okozni ez a platform, a fejlesztőeszközök (emulátor, debugger stb.) is sokkal jobbak, mint a Windows Mobile idejében. Egy nap alatt sikerült eljutni az ötlettől a publikálásig, ami szerintem nem is rossz, és ez az egy napnyi tapasztalat elég ahhoz, hogy sokkal határozottabban tudjak nekifogni a következő alkalmazás fejlesztésének. A Piactérnek vannak sajátosságai, de ezek idővel biztosan meg fognak javulni (vagy megtanulunk együtt élni velük). Szerintem már csak két kihívás marad:

  • Kitalálni olyan alkalmazásokat, amik még nincsenek WP7-re, de valóban kellenek.
  • Olyan felhasználói felületet kialakítani, ami ergonomikus, és nem csak hogy passzol a WP7 Metro stílusához, de maximálisan ki is használja azt.

Ti mit gondoltok?

 

Az utolsó tipp: Így készül a Zune link

Az alkalmazás nyilvános Piactér oldalának URL-jéből ki kell másolni a GUID-ot és be kell tenni ennek a végére: http://social.zune.net/redirect?type=phoneApp&id=IDEJÖNAGUID

A wp7.hu-n olyan jól működő QR kódot pedig én itt generáltam: http://createqrcode.appspot.com/

 

 

 

Technorati-címkék: ,,

Adobe: Nincs több Flash Player, irány a HTML5!

Danny Winokur, az Adobe alelnöke nemrég bejelentette, hogy felhagynak a Flash Player fejlesztésével mobil eszközökre:

“Our future work with Flash on mobile devices will be focused on enabling Flash developers to package native apps with Adobe AIR for all the major app stores.  We will no longer continue to develop Flash Player in the browser to work with new mobile device configurations (chipset, browser, OS version, etc.)”

És a magyarázat:

“HTML5 is now universally supported on major mobile devices, in some cases exclusively.  This makes HTML5 the best solution for creating and deploying content in the browser across mobile platforms. We are excited about this, and will continue our work with key players in the HTML community, including Google, Apple, Microsoft and RIM, to drive HTML5 innovation they can use to advance their mobile browsers.”

Persze desktopon a helyzet változatlan, készül a Flash Player 12 és mindenki “super excited”.

Szerintetek ez mit jelent?

 

Technorati-címkék: ,,,,

Desktop alkalmazások futtatása Windows Phone 7-en

Az egyetemi lét egyik nagy előnye, hogy az ember legálisan szakíthat magának időt arra, hogy azzal foglalkozzon, ami érdekli. Tudományos körökben ezt kutatásnak hívják, ám aki nem a doktorija megszerzéséért csinálja, annál ez az a pont, ahol a programozás visszaalakulhat egy rövid időre hobbivá. Nálam ez a terület például a mobil alkalmazásfejlesztés, mostanában éppen Windows Phone 7-re.

Mivel legtöbbször webes alkalmazásokat készítek, ezért a WP7-es fejlesztés percenként hoz újdonságokat számomra. Na jó, bevallom, elég gyakran elakadok. Ilyenkor persze guglizok egy fél órát, meglesz a megoldás és már lépek is tovább. Mivel a net már elég “zajos”, sokszor futok bele olyan kódrészletekbe, amik egyáltalán nem is működnek, ezért rászoktam arra, hogy ész nélkül bemásolom a talált kóddarabkát a programomba, és ha működik, akkor rászánom az időt, hogy megértsem és kipofozzam a kódot. Így sikerült véletlenül rájönni arra, hogyan lehet desktop alkalmazásokat futtatni Windows Phone 7-en.

Történt ugyanis, hogy épp a hálózat paramétereit lekérdező kódra vadásztam a neten, találtam egyet, bemásoltam, működött is. Aztán amikor jobban megnéztem a kódot, nagyon meglepődtem:

RegistryKey root = Registry.LocalMachine;
string key = @"SYSTEM\CurrentControlSet\Services\Tcpip\Parameters";

RegistryKey dnsKey = root.OpenSubKey( key );
string server = (string) dnsKey.GetValue( "NameServer" );

Bizony, nem valamilyen API-n keresztül kéri le a DNS szervereket, hanem a registry-ből olvassa ki. Ezek szerint van registry WP7-en is! Sőt, jobban utána olvasva megtudtam, hogy mások már registry editort is írtak hozzá. Ezzel kiexportáltam a telefon registry-jét, áttöltöttem egy asztali gépre, ahol kényelmesebben tudtam körülnézni benne. Nem kellett sok hozzá és máris ismerős kulcsra leltem:

shell-explorer

Ez az a kulcs, ami alapján a Winlogon service elindítja azt a programot, ami shellként funkcionál. Eddig azt sem tudtam, hogy van Winlogon service a telefonon, azt meg végképp nem, hogy a shellt tulajdonképpen explorwp.exe-nek hívják. Vajon mi történik, ha ez a process meghal? Próbáljuk ki! Bele is írtam a saját programomba:

Process shell = Process.GetProcessesByName( "explorwp.exe" );
shell.Kill();

Látszólag nem történt semmi, de miután a programom kilépett, ez “jelent meg” az emulátorban:

Windows-Phone-7-black

Sehol egy hibaüzenet, a rendszer látszólag működik, csak épp nem mutat semmit. Na ezzel nem sokra megyek. De legalább van egy fél task managerem, már csak annyit kell hozzáírni, hogy indítsa újra a processt:

Process.Start( "exporer.exe" );

És ez is lefutott, annak ellenére, hogy megszokásból elírtam az exe nevét. Tehát nem csak explorwp.exe van a telefonon, hanem explorer.exe is! Ezt csinálja, amikor fut:

Windows-Phone-7-color

Ismét csak meglepő eredmény, ugyanúgy viselkedik, mint az asztali változat. Ezek után már megnéztem a laptopomon és a telefonomon lévő fájl méretét és mindkettő épp 2870272 bájt. Gyanús. Lehet, hogy teljesen ugyanaz a kettő?

Megint felderítő munka következett, ezúttal a \Windows mappában, ahol nagyon sok ismerős fájlra bukkantam. Közben eszembe jutott, hogy vajon mit kezdene ezzel a mappával a Windows Explorer. Meg is kérdeztem tőle:

Process.Start( "\Windows" );

A legszebb az egészben, hogy ezt nem lehet megtenni, amíg a gyári shell fut, mert AccessDeniedExceptiont eredményez. Most viszont, hogy nem állt az utunkba a mindenre vigyázó explorwp.exe, az operációs rendszer szó nélkül megette:

Windows-Phone-7-Windows-folder

Azt eddig is tudtam, hogy a Windows Phone készülékek nagyon izmosak, de azért ezt legmerészebb álmomban sem gondoltam volna. Innen már csak két lépés volt hátra, felmásolni néhány fájlt, és consumer eszközről lévén szó, elindítani egy érdekesebb processt:

Windows-Phone-7-WoW

Itt tartunk most, és egyelőre úgy néz ki, hogy a legtöbb asztali alkalmazás hiba nélkül fut ezen a kis eszközön, a remote desktop kliens éppúgy, mint a World of Warcraft. Eddig azokkal akadtunk csak el, amik közvetlenül próbálták olvasni a C: meghajtót, vagy nyomtatni próbáltak, a többivel nem volt gond. Kicsit szokatlan, hogy az ablakok úgy lógnak ki a képernyőről, hogy nincs scrollbar, de a gesztusok működnek, lehet ujjal tologatni a képernyőt.

A mobilos kollégák felvetették, hogy a következő lépés egy iPhone emulátor futtatása lehetne, így az alkalmazások portolása egy csapásra megoldódna és valóban működne magyar bankkártyával a vásárlás. Ez mindenképp érdekes kutatási terület, de a biztonság kedvéért felvettük a kapcsolatot a Microsofttal, hogy vajon jogilag megtehetjük-e.

Te milyen programot futtatnál szívesen a telefonodon?