Strasti a slasti vývoje wp7 aplikací

Preview:

Citation preview

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