strasti a slasti vývoje wp7 aplikací

32
STRASTI A SLASTI VÝVOJE WP7 APLIKACÍ. I MANGO CHUTNÁ HOŘKOSLADCE. René Stein http: //blog.renestein.net http://www.twitter.com/renestein

Upload: rene-stein

Post on 04-Jun-2015

11.288 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Strasti a slasti vývoje wp7 aplikací

STRASTI A SLASTI VÝVOJE WP7 APLIKACÍ. I MANGO CHUTNÁ HOŘKOSLADCE.

René Steinhttp://blog.renestein.nethttp://www.twitter.com/renestein

Page 2: Strasti a slasti vývoje wp7 aplikací

Windows Phone 7 Mango

Ať teď budu říkat cokoli, vězte, že technologie Microsoftu mám rád.

…Ale každý vztah projde krizí.

Page 3: Strasti a slasti vývoje wp7 aplikací

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).

Page 4: Strasti a slasti vývoje wp7 aplikací

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…

Page 5: Strasti a slasti vývoje wp7 aplikací

Dlaždice ve Windows Phone 7 si vývojář zamiluje

Page 6: Strasti a slasti vývoje wp7 aplikací

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.

Page 7: Strasti a slasti vývoje wp7 aplikací

Nativní kód nepotřebujeme - SygicZdroj: http://www.pocketgpsworld.com/

Sygic-Mobile-Maps-Becomes-Aura-and-loses-POI-support-8645.php

Page 8: Strasti a slasti vývoje wp7 aplikací

Nativní kód nikdo ve WP nepožaduje - TomTom

Zdroj: http://wmpoweruser.com/ifa-2011-tomtom-for-windows-phone-7/

Page 9: Strasti a slasti vývoje wp7 aplikací
Page 10: Strasti a slasti vývoje wp7 aplikací

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….

Page 11: Strasti a slasti vývoje wp7 aplikací

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

Page 12: Strasti a slasti vývoje wp7 aplikací

API pro zjištění detailního stavu baterie

WP7 nám nabízí jen tohle volání:

PowerSource.Text = DeviceStatus.PowerSource.ToString();

Page 13: Strasti a slasti vývoje wp7 aplikací

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...

Page 14: Strasti a slasti vývoje wp7 aplikací

Jak je na tom Android?•Gauge Battery Widget

•Autor: Tomáš Hubálek

https://market.android.com/details?id=net.hubalek.android.gaugebattwidget

Page 15: Strasti a slasti vývoje wp7 aplikací

API pro práci s WIFI

Page 16: Strasti a slasti vývoje wp7 aplikací

Co nám nabízejí WP7?

ConnectionSettingsTask connectionSettingsTask = new ConnectionSettingsTask();

connectionSettingsTask.ConnectionSettingsType = ConnectionSettingsType.WiFi;

connectionSettingsTask.Show();

Page 17: Strasti a slasti vývoje wp7 aplikací

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

Page 18: Strasti a slasti vývoje wp7 aplikací

Co umí Windows CE? Winsock Extensions socket (Bluetooth) bind (Bluetooth) getsockname (Bluetooth) getpeername (Bluetooth) connect (Bluetooth) accept (Bluetooth) getsockopt (Bluetooth) setsockopt (Bluetooth) ……

Page 19: Strasti a slasti vývoje wp7 aplikací

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);

Page 20: Strasti a slasti vývoje wp7 aplikací

Databáze a Linq2Sql

Page 21: Strasti a slasti vývoje wp7 aplikací

Výběr dalších věcí, na které můžete zapomenout RIL TAPI RAPI Multitasking

Page 22: Strasti a slasti vývoje wp7 aplikací

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)

Page 23: Strasti a slasti vývoje wp7 aplikací

Tipnete si, co dělá tento kód?

Page 24: Strasti a slasti vývoje wp7 aplikací

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

Page 25: Strasti a slasti vývoje wp7 aplikací

#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

Page 26: Strasti a slasti vývoje wp7 aplikací

Ukázka třídy WebRequest – pouze asynchronní volání v Silverlightu a WP7!

Page 27: Strasti a slasti vývoje wp7 aplikací

Abych jen nepomlouval-ve WP7 je dostupný RX Framework

Page 28: Strasti a slasti vývoje wp7 aplikací

RX Framework v akci

Page 29: Strasti a slasti vývoje wp7 aplikací

ELOPOCALYPSE NOW?

Page 30: Strasti a slasti vývoje wp7 aplikací
Page 31: Strasti a slasti vývoje wp7 aplikací
Page 32: Strasti a slasti vývoje wp7 aplikací

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