STRASTI A SLASTI VÝVOJE WP7 APLIKACÍ. I MANGO CHUTNÁ HOŘKOSLADCE.
René Steinhttp://blog.renestein.nethttp://www.twitter.com/renestein
Windows Phone 7 Mango
Ať teď budu říkat cokoli, vězte, že technologie Microsoftu mám rád.
…Ale každý vztah projde krizí.
Jak nejlépe popsat Windows Phone 7? Windows Phone 7 jsou
jako vstupenka do luxusně vybaveného exkluzivního bordelu, kterou jste zakoupili na podřadném slevovém serveru, a teprve na místě jste zjistili, že služby vám poskytne jen vrátný nebo tlustá kuchařka (ta ale až po výronu releasu Mango).
Windows Phone 7
Je něco, co vám při vývoji ve Windows Phone chybí?
Silverlight/XNA Windows Phone 7 nahrazují Compact .Net Framework ve WM. Nahrazují?
Já jsem si vždy myslel, že slovo pokrok (i COOL pokrok plný nadšených dlaždic s rozkošnými animacemi všude, kam se podíváte) znamená pro vývojáře progres , a ne v mnoha případech regres…
Dlaždice ve Windows Phone 7 si vývojář zamiluje
Bajka o nativním kódu a důslednosti Microsoftu Microsoft nedovoluje programovat
aplikace nativním kódu. Náročné hry Rychlé portování jádra navigace na WP7
Na konferenci Build se ale mluví o renesanci C++ a nativního kódu na desktopu, přesto na WP je vývojářům nativní kód upírán.
Nativní kód nepotřebujeme - SygicZdroj: http://www.pocketgpsworld.com/
Sygic-Mobile-Maps-Becomes-Aura-and-loses-POI-support-8645.php
Nativní kód nikdo ve WP nepožaduje - TomTom
Zdroj: http://wmpoweruser.com/ifa-2011-tomtom-for-windows-phone-7/
Velký útěk z „managed kódu“ do nativního kódu
• COM Bridge•Zpět k Windows CE
•Ale do market place nám potom nelez….
Jedno z pravidel vývoje na WP7 Dostanete nápad na skvělou aplikaci,
Uživatelé by z aplikace hýkali nadšením, jste si jisti UI máte rozmyšleno Řvete „startup“ i ze spaní Píšete si tiskové zprávy „nanečisto“ Bankovní konto připraveno na nadstandardní
příjem
…A poté zjistíte, že není k dispozici potřebné API
API pro zjištění detailního stavu baterie
WP7 nám nabízí jen tohle volání:
PowerSource.Text = DeviceStatus.PowerSource.ToString();
Hlas lidu vývojářského…
Zdroj: http://forums.create.msdn.com/forums/p/75863/542348.aspx
Also there are many completely useless apps in Marketplace (countless converters, "flashlights", calculators and other BS), so what? Streaming video player, unfortunately, "eating" battery too quickly. MS didn't provide a good system status bar with info (which can be displayed as overlay on top in landscape mode, semitransparent etc.), just an ugly hardcoded portrait mode status bar, what ruins the full screen layout! But if you in full screen mode, and watching a long movie, it's very important to know how much battery you have (for example, you've expecting an important call). I'm telling that from my own experience from my own working solution, not from usual forum's blah-blah-blah...
Jak je na tom Android?•Gauge Battery Widget
•Autor: Tomáš Hubálek
https://market.android.com/details?id=net.hubalek.android.gaugebattwidget
API pro práci s WIFI
Co nám nabízejí WP7?
ConnectionSettingsTask connectionSettingsTask = new ConnectionSettingsTask();
connectionSettingsTask.ConnectionSettingsType = ConnectionSettingsType.WiFi;
connectionSettingsTask.Show();
API pro práci s bluetooth – hlas lidu
Zdroj: http://forums.create.msdn.com/forums/t/77644.aspx
Zdroj: http://stackoverflow.com/questions/6067669/api-to-support-bluetooth-in-mango
Co umí Windows CE? Winsock Extensions socket (Bluetooth) bind (Bluetooth) getsockname (Bluetooth) getpeername (Bluetooth) connect (Bluetooth) accept (Bluetooth) getsockopt (Bluetooth) setsockopt (Bluetooth) ……
Služby, které se spustí po startu počítače?
PeriodicTask periodicTask = new PeriodicTask(„MyAppTask");
periodicTask.Description = „Moje služba";periodicTask.ExpirationTime = DateTime.Now.AddDays(10);
if (ScheduledActionService.Find(periodicTask.Name) != null){ StopBackgroundTask();}
ScheduledActionService.Add(periodicTask);
Databáze a Linq2Sql
Výběr dalších věcí, na které můžete zapomenout RIL TAPI RAPI Multitasking
A existující API – chyby jsou všude, ale:
Když vám přestane skrolovat listbox, máte přiliš složitý layout stránky.
AdControl shodí aplikacihttp://community.microsoftadvertising.com/forums/p/70419/103698.aspx
Ukázka nepříjemného API – WebBrowser.NavigateToString(html)
Tipnete si, co dělá tento kód?
Sdílení kódu mezi Silverlightem, WP7.x a NF? Sdílení soborů přes Add as link v
samostatných projektech pro každou platformu
#if !SILVERLIGHT #if WP #if !WP #if SILVERLIGHT
#if SILVERLIGHT
using System.Threading;using System.Windows;using System.Windows.Threading;
namespace RStein.Posterous.API{ public static class SilverlightSpecificHelper { public static bool IsUiThread() { return Deployment.Current.CheckAccess(); } } }#endif
Ukázka třídy WebRequest – pouze asynchronní volání v Silverlightu a WP7!
Abych jen nepomlouval-ve WP7 je dostupný RX Framework
RX Framework v akci
ELOPOCALYPSE NOW?
DOTAZY?A MOŽNÁ ODPOVĚDI?
René Stein
Vývoj aplikací, veřejné a inhouse kurzyhttp://www.renestein.net/nabidka.aspxhttp://blog.renestein.nethttp://www.twitter.com/renestein